@firela/api-types 0.0.0-canary.a4e21680 → 0.0.0-canary.a5198363
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 +1958 -1449
- package/dist/index.d.ts +1958 -1449
- package/dist/index.js +28 -2
- package/dist/index.mjs +28 -2
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +3432 -2910
- package/src/generated/services.gen.ts +1031 -814
- package/src/generated/types.gen.ts +2033 -1398
|
@@ -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,18 @@ import type {
|
|
|
97
99
|
CommodityControllerGetOrCreateResponse,
|
|
98
100
|
CommodityControllerBulkCreateData,
|
|
99
101
|
CommodityControllerBulkCreateResponse,
|
|
102
|
+
PriceControllerCreateData,
|
|
103
|
+
PriceControllerCreateResponse,
|
|
104
|
+
PriceControllerFindAllData,
|
|
105
|
+
PriceControllerFindAllResponse,
|
|
106
|
+
PriceControllerFindOneData,
|
|
107
|
+
PriceControllerFindOneResponse,
|
|
108
|
+
PriceControllerUpdateData,
|
|
109
|
+
PriceControllerUpdateResponse,
|
|
110
|
+
PriceControllerDeleteData,
|
|
111
|
+
PriceControllerDeleteResponse,
|
|
112
|
+
PriceControllerBulkCreateData,
|
|
113
|
+
PriceControllerBulkCreateResponse,
|
|
100
114
|
RecurringRuleControllerCreateData,
|
|
101
115
|
RecurringRuleControllerCreateResponse,
|
|
102
116
|
RecurringRuleControllerFindAllData,
|
|
@@ -129,26 +143,14 @@ import type {
|
|
|
129
143
|
ExpectedTransactionControllerEnterNowResponse,
|
|
130
144
|
ForecastControllerGetForecastData,
|
|
131
145
|
ForecastControllerGetForecastResponse,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
TransactionRuleControllerExportData,
|
|
141
|
-
TransactionRuleControllerExportResponse,
|
|
142
|
-
TransactionRuleControllerGetStatisticsData,
|
|
143
|
-
TransactionRuleControllerGetStatisticsResponse,
|
|
144
|
-
TransactionRuleControllerGetDetailData,
|
|
145
|
-
TransactionRuleControllerGetDetailResponse,
|
|
146
|
-
TransactionRuleControllerUpdateData,
|
|
147
|
-
TransactionRuleControllerUpdateResponse,
|
|
148
|
-
TransactionRuleControllerDeleteData,
|
|
149
|
-
TransactionRuleControllerDeleteResponse,
|
|
150
|
-
TransactionRuleControllerTestData,
|
|
151
|
-
TransactionRuleControllerTestResponse,
|
|
146
|
+
ReportingControllerGetPortfolioTrendsData,
|
|
147
|
+
ReportingControllerGetPortfolioTrendsResponse,
|
|
148
|
+
ReportingControllerGetCashFlowTrendsData,
|
|
149
|
+
ReportingControllerGetCashFlowTrendsResponse,
|
|
150
|
+
ReportingControllerGenerateSnapshotData,
|
|
151
|
+
ReportingControllerGenerateSnapshotResponse,
|
|
152
|
+
ReportingControllerBackfillSnapshotsData,
|
|
153
|
+
ReportingControllerBackfillSnapshotsResponse,
|
|
152
154
|
UserControllerDeleteOwnUserData,
|
|
153
155
|
UserControllerDeleteOwnUserResponse,
|
|
154
156
|
UserControllerGetUserData,
|
|
@@ -171,6 +173,26 @@ import type {
|
|
|
171
173
|
PropertyControllerUpdateResponse,
|
|
172
174
|
PropertyControllerDeleteData,
|
|
173
175
|
PropertyControllerDeleteResponse,
|
|
176
|
+
TransactionRuleControllerCreateData,
|
|
177
|
+
TransactionRuleControllerCreateResponse,
|
|
178
|
+
TransactionRuleControllerListData,
|
|
179
|
+
TransactionRuleControllerListResponse,
|
|
180
|
+
TransactionRuleControllerValidateData,
|
|
181
|
+
TransactionRuleControllerValidateResponse,
|
|
182
|
+
TransactionRuleControllerBulkCreateData,
|
|
183
|
+
TransactionRuleControllerBulkCreateResponse,
|
|
184
|
+
TransactionRuleControllerExportData,
|
|
185
|
+
TransactionRuleControllerExportResponse,
|
|
186
|
+
TransactionRuleControllerGetStatisticsData,
|
|
187
|
+
TransactionRuleControllerGetStatisticsResponse,
|
|
188
|
+
TransactionRuleControllerGetDetailData,
|
|
189
|
+
TransactionRuleControllerGetDetailResponse,
|
|
190
|
+
TransactionRuleControllerUpdateData,
|
|
191
|
+
TransactionRuleControllerUpdateResponse,
|
|
192
|
+
TransactionRuleControllerDeleteData,
|
|
193
|
+
TransactionRuleControllerDeleteResponse,
|
|
194
|
+
TransactionRuleControllerTestData,
|
|
195
|
+
TransactionRuleControllerTestResponse,
|
|
174
196
|
EventControllerCreateData,
|
|
175
197
|
EventControllerCreateResponse,
|
|
176
198
|
EventControllerFindAllData,
|
|
@@ -183,6 +205,8 @@ import type {
|
|
|
183
205
|
EventControllerDeleteResponse,
|
|
184
206
|
EventControllerGetSliceData,
|
|
185
207
|
EventControllerGetSliceResponse,
|
|
208
|
+
OnboardingControllerBootstrapData,
|
|
209
|
+
OnboardingControllerBootstrapResponse,
|
|
186
210
|
ReconciliationControllerComputeData,
|
|
187
211
|
ReconciliationControllerComputeResponse,
|
|
188
212
|
ReconciliationControllerAssertData,
|
|
@@ -204,22 +228,20 @@ import type {
|
|
|
204
228
|
ImporterConfigControllerUpdateConfigResponse,
|
|
205
229
|
ImporterConfigControllerResetConfigData,
|
|
206
230
|
ImporterConfigControllerResetConfigResponse,
|
|
207
|
-
PlatformControllerFindAllResponse,
|
|
208
|
-
PlatformControllerCreateData,
|
|
209
|
-
PlatformControllerCreateResponse,
|
|
210
|
-
PlatformControllerGetPlatformListResponse,
|
|
211
|
-
PlatformControllerMatchPlatformsData,
|
|
212
|
-
PlatformControllerMatchPlatformsResponse,
|
|
213
|
-
PlatformControllerUpdateData,
|
|
214
|
-
PlatformControllerUpdateResponse,
|
|
215
|
-
PlatformControllerDeleteData,
|
|
216
|
-
PlatformControllerDeleteResponse,
|
|
217
231
|
ProviderSyncControllerSyncData,
|
|
218
232
|
ProviderSyncControllerSyncResponse,
|
|
219
233
|
ProviderSyncControllerGetSupportedProvidersData,
|
|
220
234
|
ProviderSyncControllerGetSupportedProvidersResponse,
|
|
221
235
|
ProviderSyncControllerIsProviderSupportedData,
|
|
222
236
|
ProviderSyncControllerIsProviderSupportedResponse,
|
|
237
|
+
ExternalAccountLinkControllerCreateData,
|
|
238
|
+
ExternalAccountLinkControllerCreateResponse,
|
|
239
|
+
ExternalAccountLinkControllerFindAllData,
|
|
240
|
+
ExternalAccountLinkControllerFindAllResponse,
|
|
241
|
+
ExternalAccountLinkControllerFindOneData,
|
|
242
|
+
ExternalAccountLinkControllerFindOneResponse,
|
|
243
|
+
ExternalAccountLinkControllerRemoveData,
|
|
244
|
+
ExternalAccountLinkControllerRemoveResponse,
|
|
223
245
|
TelemetryControllerReportTelemetryData,
|
|
224
246
|
TelemetryControllerReportTelemetryResponse,
|
|
225
247
|
TelemetryControllerReportCoverageMissData,
|
|
@@ -232,6 +254,16 @@ import type {
|
|
|
232
254
|
NlpControllerClearSessionResponse,
|
|
233
255
|
NlpControllerGetSessionData,
|
|
234
256
|
NlpControllerGetSessionResponse,
|
|
257
|
+
PlatformControllerFindAllResponse,
|
|
258
|
+
PlatformControllerCreateData,
|
|
259
|
+
PlatformControllerCreateResponse,
|
|
260
|
+
PlatformControllerGetPlatformListResponse,
|
|
261
|
+
PlatformControllerMatchPlatformsData,
|
|
262
|
+
PlatformControllerMatchPlatformsResponse,
|
|
263
|
+
PlatformControllerUpdateData,
|
|
264
|
+
PlatformControllerUpdateResponse,
|
|
265
|
+
PlatformControllerDeleteData,
|
|
266
|
+
PlatformControllerDeleteResponse,
|
|
235
267
|
DashboardControllerGetNetWorthData,
|
|
236
268
|
DashboardControllerGetNetWorthResponse,
|
|
237
269
|
DashboardControllerGetAccountsData,
|
|
@@ -242,26 +274,6 @@ import type {
|
|
|
242
274
|
DashboardControllerGetExpensesResponse,
|
|
243
275
|
HoldingPnlControllerGetHoldingPnlData,
|
|
244
276
|
HoldingPnlControllerGetHoldingPnlResponse,
|
|
245
|
-
PriceControllerCreateData,
|
|
246
|
-
PriceControllerCreateResponse,
|
|
247
|
-
PriceControllerFindAllData,
|
|
248
|
-
PriceControllerFindAllResponse,
|
|
249
|
-
PriceControllerFindOneData,
|
|
250
|
-
PriceControllerFindOneResponse,
|
|
251
|
-
PriceControllerUpdateData,
|
|
252
|
-
PriceControllerUpdateResponse,
|
|
253
|
-
PriceControllerDeleteData,
|
|
254
|
-
PriceControllerDeleteResponse,
|
|
255
|
-
PriceControllerBulkCreateData,
|
|
256
|
-
PriceControllerBulkCreateResponse,
|
|
257
|
-
ReportingControllerGetPortfolioTrendsData,
|
|
258
|
-
ReportingControllerGetPortfolioTrendsResponse,
|
|
259
|
-
ReportingControllerGetCashFlowTrendsData,
|
|
260
|
-
ReportingControllerGetCashFlowTrendsResponse,
|
|
261
|
-
ReportingControllerGenerateSnapshotData,
|
|
262
|
-
ReportingControllerGenerateSnapshotResponse,
|
|
263
|
-
ReportingControllerBackfillSnapshotsData,
|
|
264
|
-
ReportingControllerBackfillSnapshotsResponse,
|
|
265
277
|
ApiKeysControllerCreateApiKeyResponse,
|
|
266
278
|
AuthControllerAccessTokenLoginData,
|
|
267
279
|
AuthControllerAccessTokenLoginResponse,
|
|
@@ -276,7 +288,11 @@ import type {
|
|
|
276
288
|
HealthControllerResetCircuitBreakerData,
|
|
277
289
|
HealthControllerResetCircuitBreakerResponse,
|
|
278
290
|
HealthControllerGetMetricsResponse,
|
|
279
|
-
InfoControllerGetInfoResponse
|
|
291
|
+
InfoControllerGetInfoResponse,
|
|
292
|
+
SymbolControllerSearchData,
|
|
293
|
+
SymbolControllerSearchResponse,
|
|
294
|
+
SymbolControllerGetQuoteData,
|
|
295
|
+
SymbolControllerGetQuoteResponse
|
|
280
296
|
} from './types.gen';
|
|
281
297
|
|
|
282
298
|
export class BeanAccountsService {
|
|
@@ -314,7 +330,7 @@ export class BeanAccountsService {
|
|
|
314
330
|
* @param data.type Filter by account type
|
|
315
331
|
* @param data.status Filter by status
|
|
316
332
|
* @param data.isCustom Filter by custom (user-created) accounts only
|
|
317
|
-
* @param data.search Search term for path
|
|
333
|
+
* @param data.search Search term for account path
|
|
318
334
|
* @param data.limit Maximum number of results
|
|
319
335
|
* @param data.offset Number of results to skip
|
|
320
336
|
* @returns AccountListResponseDto Accounts retrieved successfully
|
|
@@ -476,6 +492,35 @@ export class BeanAccountsService {
|
|
|
476
492
|
}
|
|
477
493
|
});
|
|
478
494
|
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Post an opening-balance transaction
|
|
498
|
+
* 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.
|
|
499
|
+
* @param data The data for the request.
|
|
500
|
+
* @param data.id Account UUID
|
|
501
|
+
* @param data.region Region code for tenant context
|
|
502
|
+
* @param data.requestBody
|
|
503
|
+
* @returns OpeningBalanceResultDto Opening-balance transaction created
|
|
504
|
+
* @throws ApiError
|
|
505
|
+
*/
|
|
506
|
+
public static accountControllerAddOpeningBalance(
|
|
507
|
+
data: AccountControllerAddOpeningBalanceData
|
|
508
|
+
): CancelablePromise<AccountControllerAddOpeningBalanceResponse> {
|
|
509
|
+
return __request(OpenAPI, {
|
|
510
|
+
method: 'POST',
|
|
511
|
+
url: '/api/v1/{region}/bean/accounts/{id}/opening-balance',
|
|
512
|
+
path: {
|
|
513
|
+
id: data.id,
|
|
514
|
+
region: data.region
|
|
515
|
+
},
|
|
516
|
+
body: data.requestBody,
|
|
517
|
+
mediaType: 'application/json',
|
|
518
|
+
errors: {
|
|
519
|
+
404: 'Account not found',
|
|
520
|
+
409: 'An opening balance already exists for this account'
|
|
521
|
+
}
|
|
522
|
+
});
|
|
523
|
+
}
|
|
479
524
|
}
|
|
480
525
|
|
|
481
526
|
export class BeanAccountStandardsService {
|
|
@@ -507,7 +552,7 @@ export class BeanAccountStandardsService {
|
|
|
507
552
|
|
|
508
553
|
/**
|
|
509
554
|
* Get template metadata for an account path
|
|
510
|
-
* Returns
|
|
555
|
+
* Returns root type for a template path.
|
|
511
556
|
* @param data The data for the request.
|
|
512
557
|
* @param data.region Region code for tenant context
|
|
513
558
|
* @param data.path Account path to check
|
|
@@ -802,7 +847,7 @@ export class BeanBalancesService {
|
|
|
802
847
|
* Query account balance
|
|
803
848
|
* Calculate account balance at a specific date for a single currency
|
|
804
849
|
* @param data The data for the request.
|
|
805
|
-
* @param data.account Account name (e.g., "Assets:
|
|
850
|
+
* @param data.account Account name (e.g., "Assets:Checking")
|
|
806
851
|
* @param data.region Region code for tenant context
|
|
807
852
|
* @param data.date Date to calculate balance at (ISO 8601 format)
|
|
808
853
|
* @param data.currency Currency to query (e.g., "USD", "CNY")
|
|
@@ -1523,153 +1568,320 @@ export class BeanCommoditiesService {
|
|
|
1523
1568
|
}
|
|
1524
1569
|
}
|
|
1525
1570
|
|
|
1526
|
-
export class
|
|
1571
|
+
export class BeanPricesService {
|
|
1527
1572
|
/**
|
|
1528
|
-
* Create a new
|
|
1529
|
-
* Creates a new
|
|
1573
|
+
* Create a new price
|
|
1574
|
+
* Creates a new price entry for the authenticated user
|
|
1530
1575
|
* @param data The data for the request.
|
|
1531
1576
|
* @param data.region Region code for tenant context
|
|
1532
1577
|
* @param data.requestBody
|
|
1533
|
-
* @returns
|
|
1578
|
+
* @returns PriceResponseDto Price created successfully
|
|
1534
1579
|
* @throws ApiError
|
|
1535
1580
|
*/
|
|
1536
|
-
public static
|
|
1537
|
-
data:
|
|
1538
|
-
): CancelablePromise<
|
|
1581
|
+
public static priceControllerCreate(
|
|
1582
|
+
data: PriceControllerCreateData
|
|
1583
|
+
): CancelablePromise<PriceControllerCreateResponse> {
|
|
1539
1584
|
return __request(OpenAPI, {
|
|
1540
1585
|
method: 'POST',
|
|
1541
|
-
url: '/api/v1/{region}/bean/
|
|
1586
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1542
1587
|
path: {
|
|
1543
1588
|
region: data.region
|
|
1544
1589
|
},
|
|
1545
1590
|
body: data.requestBody,
|
|
1546
1591
|
mediaType: 'application/json',
|
|
1547
1592
|
errors: {
|
|
1548
|
-
|
|
1549
|
-
409: '
|
|
1593
|
+
404: 'Currency or quoteCurrency commodity not found',
|
|
1594
|
+
409: 'Price already exists for this currency pair and date'
|
|
1550
1595
|
}
|
|
1551
1596
|
});
|
|
1552
1597
|
}
|
|
1553
1598
|
|
|
1554
1599
|
/**
|
|
1555
|
-
* List
|
|
1556
|
-
* Returns all
|
|
1600
|
+
* List user prices
|
|
1601
|
+
* Returns all price entries for the authenticated user with optional filtering
|
|
1557
1602
|
* @param data The data for the request.
|
|
1558
1603
|
* @param data.region Region code for tenant context
|
|
1559
|
-
* @param data.
|
|
1560
|
-
* @param data.
|
|
1561
|
-
* @param data.
|
|
1562
|
-
* @
|
|
1604
|
+
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
1605
|
+
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
1606
|
+
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
1607
|
+
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
1608
|
+
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
1609
|
+
* @param data.page Page number for pagination (default: 1)
|
|
1610
|
+
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
1611
|
+
* @returns PriceListResponseDto Prices retrieved successfully
|
|
1563
1612
|
* @throws ApiError
|
|
1564
1613
|
*/
|
|
1565
|
-
public static
|
|
1566
|
-
data:
|
|
1567
|
-
): CancelablePromise<
|
|
1614
|
+
public static priceControllerFindAll(
|
|
1615
|
+
data: PriceControllerFindAllData
|
|
1616
|
+
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
1568
1617
|
return __request(OpenAPI, {
|
|
1569
1618
|
method: 'GET',
|
|
1570
|
-
url: '/api/v1/{region}/bean/
|
|
1619
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1571
1620
|
path: {
|
|
1572
1621
|
region: data.region
|
|
1573
1622
|
},
|
|
1574
1623
|
query: {
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1624
|
+
currency: data.currency,
|
|
1625
|
+
quoteCurrency: data.quoteCurrency,
|
|
1626
|
+
dateFrom: data.dateFrom,
|
|
1627
|
+
dateTo: data.dateTo,
|
|
1628
|
+
search: data.search,
|
|
1629
|
+
page: data.page,
|
|
1630
|
+
limit: data.limit
|
|
1578
1631
|
}
|
|
1579
1632
|
});
|
|
1580
1633
|
}
|
|
1581
1634
|
|
|
1582
1635
|
/**
|
|
1583
|
-
*
|
|
1584
|
-
*
|
|
1636
|
+
* Get price by ID
|
|
1637
|
+
* Returns a single price entry by its ID
|
|
1585
1638
|
* @param data The data for the request.
|
|
1586
|
-
* @param data.
|
|
1639
|
+
* @param data.id Price ID
|
|
1587
1640
|
* @param data.region Region code for tenant context
|
|
1588
|
-
* @
|
|
1589
|
-
* @returns RecurringRuleResponseDto Rule created successfully
|
|
1641
|
+
* @returns PriceResponseDto Price retrieved successfully
|
|
1590
1642
|
* @throws ApiError
|
|
1591
1643
|
*/
|
|
1592
|
-
public static
|
|
1593
|
-
data:
|
|
1594
|
-
): CancelablePromise<
|
|
1644
|
+
public static priceControllerFindOne(
|
|
1645
|
+
data: PriceControllerFindOneData
|
|
1646
|
+
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
1595
1647
|
return __request(OpenAPI, {
|
|
1596
|
-
method: '
|
|
1597
|
-
url: '/api/v1/{region}/bean/
|
|
1648
|
+
method: 'GET',
|
|
1649
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1598
1650
|
path: {
|
|
1599
|
-
|
|
1651
|
+
id: data.id,
|
|
1600
1652
|
region: data.region
|
|
1601
1653
|
},
|
|
1602
|
-
body: data.requestBody,
|
|
1603
|
-
mediaType: 'application/json',
|
|
1604
1654
|
errors: {
|
|
1605
|
-
404: '
|
|
1606
|
-
409: 'Rule with same name already exists or transaction already linked'
|
|
1655
|
+
404: 'Price not found'
|
|
1607
1656
|
}
|
|
1608
1657
|
});
|
|
1609
1658
|
}
|
|
1610
1659
|
|
|
1611
1660
|
/**
|
|
1612
|
-
*
|
|
1613
|
-
*
|
|
1661
|
+
* Update a price
|
|
1662
|
+
* Updates an existing price entry
|
|
1614
1663
|
* @param data The data for the request.
|
|
1615
|
-
* @param data.id
|
|
1664
|
+
* @param data.id Price ID
|
|
1616
1665
|
* @param data.region Region code for tenant context
|
|
1617
|
-
* @
|
|
1666
|
+
* @param data.requestBody
|
|
1667
|
+
* @returns PriceResponseDto Price updated successfully
|
|
1618
1668
|
* @throws ApiError
|
|
1619
1669
|
*/
|
|
1620
|
-
public static
|
|
1621
|
-
data:
|
|
1622
|
-
): CancelablePromise<
|
|
1670
|
+
public static priceControllerUpdate(
|
|
1671
|
+
data: PriceControllerUpdateData
|
|
1672
|
+
): CancelablePromise<PriceControllerUpdateResponse> {
|
|
1623
1673
|
return __request(OpenAPI, {
|
|
1624
|
-
method: '
|
|
1625
|
-
url: '/api/v1/{region}/bean/
|
|
1674
|
+
method: 'PUT',
|
|
1675
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1626
1676
|
path: {
|
|
1627
1677
|
id: data.id,
|
|
1628
1678
|
region: data.region
|
|
1629
1679
|
},
|
|
1680
|
+
body: data.requestBody,
|
|
1681
|
+
mediaType: 'application/json',
|
|
1630
1682
|
errors: {
|
|
1631
|
-
404: '
|
|
1683
|
+
404: 'Price not found',
|
|
1684
|
+
409: 'Updated price conflicts with existing price'
|
|
1632
1685
|
}
|
|
1633
1686
|
});
|
|
1634
1687
|
}
|
|
1635
1688
|
|
|
1636
1689
|
/**
|
|
1637
|
-
*
|
|
1638
|
-
*
|
|
1690
|
+
* Delete a price
|
|
1691
|
+
* Deletes a price entry (hard delete)
|
|
1639
1692
|
* @param data The data for the request.
|
|
1640
|
-
* @param data.id
|
|
1693
|
+
* @param data.id Price ID
|
|
1641
1694
|
* @param data.region Region code for tenant context
|
|
1642
|
-
* @
|
|
1643
|
-
* @returns RecurringRuleResponseDto Rule updated successfully
|
|
1695
|
+
* @returns void Price deleted successfully
|
|
1644
1696
|
* @throws ApiError
|
|
1645
1697
|
*/
|
|
1646
|
-
public static
|
|
1647
|
-
data:
|
|
1648
|
-
): CancelablePromise<
|
|
1698
|
+
public static priceControllerDelete(
|
|
1699
|
+
data: PriceControllerDeleteData
|
|
1700
|
+
): CancelablePromise<PriceControllerDeleteResponse> {
|
|
1649
1701
|
return __request(OpenAPI, {
|
|
1650
|
-
method: '
|
|
1651
|
-
url: '/api/v1/{region}/bean/
|
|
1702
|
+
method: 'DELETE',
|
|
1703
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1652
1704
|
path: {
|
|
1653
1705
|
id: data.id,
|
|
1654
1706
|
region: data.region
|
|
1655
1707
|
},
|
|
1656
|
-
body: data.requestBody,
|
|
1657
|
-
mediaType: 'application/json',
|
|
1658
1708
|
errors: {
|
|
1659
|
-
|
|
1660
|
-
404: 'Rule not found'
|
|
1709
|
+
404: 'Price not found'
|
|
1661
1710
|
}
|
|
1662
1711
|
});
|
|
1663
1712
|
}
|
|
1664
1713
|
|
|
1665
1714
|
/**
|
|
1666
|
-
*
|
|
1667
|
-
*
|
|
1715
|
+
* Bulk create prices
|
|
1716
|
+
* Creates multiple price entries at once (skips duplicates)
|
|
1668
1717
|
* @param data The data for the request.
|
|
1669
|
-
* @param data.id Rule ID
|
|
1670
1718
|
* @param data.region Region code for tenant context
|
|
1671
|
-
* @
|
|
1672
|
-
* @
|
|
1719
|
+
* @param data.requestBody
|
|
1720
|
+
* @returns PriceResponseDto Prices created successfully
|
|
1721
|
+
* @throws ApiError
|
|
1722
|
+
*/
|
|
1723
|
+
public static priceControllerBulkCreate(
|
|
1724
|
+
data: PriceControllerBulkCreateData
|
|
1725
|
+
): CancelablePromise<PriceControllerBulkCreateResponse> {
|
|
1726
|
+
return __request(OpenAPI, {
|
|
1727
|
+
method: 'POST',
|
|
1728
|
+
url: '/api/v1/{region}/bean/prices/bulk',
|
|
1729
|
+
path: {
|
|
1730
|
+
region: data.region
|
|
1731
|
+
},
|
|
1732
|
+
body: data.requestBody,
|
|
1733
|
+
mediaType: 'application/json'
|
|
1734
|
+
});
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
export class RecurringRulesService {
|
|
1739
|
+
/**
|
|
1740
|
+
* Create a new recurring rule
|
|
1741
|
+
* Creates a new recurring transaction rule for the authenticated user
|
|
1742
|
+
* @param data The data for the request.
|
|
1743
|
+
* @param data.region Region code for tenant context
|
|
1744
|
+
* @param data.requestBody
|
|
1745
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
1746
|
+
* @throws ApiError
|
|
1747
|
+
*/
|
|
1748
|
+
public static recurringRuleControllerCreate(
|
|
1749
|
+
data: RecurringRuleControllerCreateData
|
|
1750
|
+
): CancelablePromise<RecurringRuleControllerCreateResponse> {
|
|
1751
|
+
return __request(OpenAPI, {
|
|
1752
|
+
method: 'POST',
|
|
1753
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
1754
|
+
path: {
|
|
1755
|
+
region: data.region
|
|
1756
|
+
},
|
|
1757
|
+
body: data.requestBody,
|
|
1758
|
+
mediaType: 'application/json',
|
|
1759
|
+
errors: {
|
|
1760
|
+
400: 'Invalid input data (e.g., autoCreate without accounts)',
|
|
1761
|
+
409: 'Rule with same name already exists'
|
|
1762
|
+
}
|
|
1763
|
+
});
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
/**
|
|
1767
|
+
* List recurring rules
|
|
1768
|
+
* Returns all recurring rules for the authenticated user with optional filtering
|
|
1769
|
+
* @param data The data for the request.
|
|
1770
|
+
* @param data.region Region code for tenant context
|
|
1771
|
+
* @param data.isActive Filter by active status
|
|
1772
|
+
* @param data.frequency Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
1773
|
+
* @param data.hasAutoCreate Filter by autoCreate enabled
|
|
1774
|
+
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
1775
|
+
* @throws ApiError
|
|
1776
|
+
*/
|
|
1777
|
+
public static recurringRuleControllerFindAll(
|
|
1778
|
+
data: RecurringRuleControllerFindAllData
|
|
1779
|
+
): CancelablePromise<RecurringRuleControllerFindAllResponse> {
|
|
1780
|
+
return __request(OpenAPI, {
|
|
1781
|
+
method: 'GET',
|
|
1782
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
1783
|
+
path: {
|
|
1784
|
+
region: data.region
|
|
1785
|
+
},
|
|
1786
|
+
query: {
|
|
1787
|
+
isActive: data.isActive,
|
|
1788
|
+
frequency: data.frequency,
|
|
1789
|
+
hasAutoCreate: data.hasAutoCreate
|
|
1790
|
+
}
|
|
1791
|
+
});
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
/**
|
|
1795
|
+
* Create recurring rule from transaction
|
|
1796
|
+
* Auto-creates a recurring rule using transaction data. User only confirms frequency.
|
|
1797
|
+
* @param data The data for the request.
|
|
1798
|
+
* @param data.transactionId Source transaction ID
|
|
1799
|
+
* @param data.region Region code for tenant context
|
|
1800
|
+
* @param data.requestBody
|
|
1801
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
1802
|
+
* @throws ApiError
|
|
1803
|
+
*/
|
|
1804
|
+
public static recurringRuleControllerCreateFromTransaction(
|
|
1805
|
+
data: RecurringRuleControllerCreateFromTransactionData
|
|
1806
|
+
): CancelablePromise<RecurringRuleControllerCreateFromTransactionResponse> {
|
|
1807
|
+
return __request(OpenAPI, {
|
|
1808
|
+
method: 'POST',
|
|
1809
|
+
url: '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}',
|
|
1810
|
+
path: {
|
|
1811
|
+
transactionId: data.transactionId,
|
|
1812
|
+
region: data.region
|
|
1813
|
+
},
|
|
1814
|
+
body: data.requestBody,
|
|
1815
|
+
mediaType: 'application/json',
|
|
1816
|
+
errors: {
|
|
1817
|
+
404: 'Transaction not found',
|
|
1818
|
+
409: 'Rule with same name already exists or transaction already linked'
|
|
1819
|
+
}
|
|
1820
|
+
});
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
/**
|
|
1824
|
+
* Get recurring rule by ID
|
|
1825
|
+
* Returns a specific recurring rule with its details
|
|
1826
|
+
* @param data The data for the request.
|
|
1827
|
+
* @param data.id Rule ID
|
|
1828
|
+
* @param data.region Region code for tenant context
|
|
1829
|
+
* @returns RecurringRuleResponseDto Rule retrieved successfully
|
|
1830
|
+
* @throws ApiError
|
|
1831
|
+
*/
|
|
1832
|
+
public static recurringRuleControllerFindOne(
|
|
1833
|
+
data: RecurringRuleControllerFindOneData
|
|
1834
|
+
): CancelablePromise<RecurringRuleControllerFindOneResponse> {
|
|
1835
|
+
return __request(OpenAPI, {
|
|
1836
|
+
method: 'GET',
|
|
1837
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
1838
|
+
path: {
|
|
1839
|
+
id: data.id,
|
|
1840
|
+
region: data.region
|
|
1841
|
+
},
|
|
1842
|
+
errors: {
|
|
1843
|
+
404: 'Rule not found'
|
|
1844
|
+
}
|
|
1845
|
+
});
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
/**
|
|
1849
|
+
* Update recurring rule
|
|
1850
|
+
* Updates an existing recurring rule
|
|
1851
|
+
* @param data The data for the request.
|
|
1852
|
+
* @param data.id Rule ID
|
|
1853
|
+
* @param data.region Region code for tenant context
|
|
1854
|
+
* @param data.requestBody
|
|
1855
|
+
* @returns RecurringRuleResponseDto Rule updated successfully
|
|
1856
|
+
* @throws ApiError
|
|
1857
|
+
*/
|
|
1858
|
+
public static recurringRuleControllerUpdate(
|
|
1859
|
+
data: RecurringRuleControllerUpdateData
|
|
1860
|
+
): CancelablePromise<RecurringRuleControllerUpdateResponse> {
|
|
1861
|
+
return __request(OpenAPI, {
|
|
1862
|
+
method: 'PATCH',
|
|
1863
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
1864
|
+
path: {
|
|
1865
|
+
id: data.id,
|
|
1866
|
+
region: data.region
|
|
1867
|
+
},
|
|
1868
|
+
body: data.requestBody,
|
|
1869
|
+
mediaType: 'application/json',
|
|
1870
|
+
errors: {
|
|
1871
|
+
400: 'Invalid input data',
|
|
1872
|
+
404: 'Rule not found'
|
|
1873
|
+
}
|
|
1874
|
+
});
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
/**
|
|
1878
|
+
* Delete recurring rule
|
|
1879
|
+
* Soft deletes a recurring rule (sets isActive to false)
|
|
1880
|
+
* @param data The data for the request.
|
|
1881
|
+
* @param data.id Rule ID
|
|
1882
|
+
* @param data.region Region code for tenant context
|
|
1883
|
+
* @returns void Rule deleted successfully
|
|
1884
|
+
* @throws ApiError
|
|
1673
1885
|
*/
|
|
1674
1886
|
public static recurringRuleControllerDelete(
|
|
1675
1887
|
data: RecurringRuleControllerDeleteData
|
|
@@ -1953,279 +2165,158 @@ export class RecurringForecastService {
|
|
|
1953
2165
|
}
|
|
1954
2166
|
}
|
|
1955
2167
|
|
|
1956
|
-
export class
|
|
2168
|
+
export class ReportingService {
|
|
1957
2169
|
/**
|
|
1958
|
-
*
|
|
1959
|
-
*
|
|
2170
|
+
* Get portfolio value trends
|
|
2171
|
+
*
|
|
2172
|
+
* Returns time series data of portfolio net worth.
|
|
2173
|
+
*
|
|
2174
|
+
* **Multi-currency Support:**
|
|
2175
|
+
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
2176
|
+
* - `byCurrency` - Separate time series grouped by currency
|
|
2177
|
+
* - `warnings` - Exchange rate warnings if conversion failed
|
|
2178
|
+
*
|
|
2179
|
+
* **Parameters:**
|
|
2180
|
+
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
2181
|
+
* - `granularity`: Data granularity (day, week, month)
|
|
2182
|
+
*
|
|
1960
2183
|
* @param data The data for the request.
|
|
1961
2184
|
* @param data.region Region code for tenant context
|
|
1962
|
-
* @param data.
|
|
1963
|
-
* @
|
|
2185
|
+
* @param data.period Time period
|
|
2186
|
+
* @param data.granularity Data granularity
|
|
2187
|
+
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
1964
2188
|
* @throws ApiError
|
|
1965
2189
|
*/
|
|
1966
|
-
public static
|
|
1967
|
-
data:
|
|
1968
|
-
): CancelablePromise<
|
|
2190
|
+
public static reportingControllerGetPortfolioTrends(
|
|
2191
|
+
data: ReportingControllerGetPortfolioTrendsData
|
|
2192
|
+
): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
|
|
1969
2193
|
return __request(OpenAPI, {
|
|
1970
|
-
method: '
|
|
1971
|
-
url: '/api/v1/{region}/
|
|
2194
|
+
method: 'GET',
|
|
2195
|
+
url: '/api/v1/{region}/reporting/portfolio/trends',
|
|
1972
2196
|
path: {
|
|
1973
2197
|
region: data.region
|
|
1974
2198
|
},
|
|
1975
|
-
|
|
1976
|
-
|
|
2199
|
+
query: {
|
|
2200
|
+
period: data.period,
|
|
2201
|
+
granularity: data.granularity
|
|
2202
|
+
},
|
|
1977
2203
|
errors: {
|
|
1978
|
-
|
|
1979
|
-
401: 'Unauthorized',
|
|
1980
|
-
409: 'Resource conflict - another process is updating this rule'
|
|
2204
|
+
401: 'User not authenticated'
|
|
1981
2205
|
}
|
|
1982
2206
|
});
|
|
1983
2207
|
}
|
|
1984
2208
|
|
|
1985
2209
|
/**
|
|
1986
|
-
* Get
|
|
2210
|
+
* Get cash-flow trends
|
|
2211
|
+
*
|
|
2212
|
+
* Monthly income / expense / netSavings over a fixed N-month window
|
|
2213
|
+
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
2214
|
+
*
|
|
2215
|
+
* **Parameters:**
|
|
2216
|
+
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
2217
|
+
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
2218
|
+
*
|
|
1987
2219
|
* @param data The data for the request.
|
|
1988
2220
|
* @param data.region Region code for tenant context
|
|
1989
|
-
* @param data.
|
|
1990
|
-
* @param data.
|
|
1991
|
-
* @
|
|
1992
|
-
* @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
|
|
1993
|
-
* @param data.autoApplyEnabled Filter by auto-apply status
|
|
1994
|
-
* @returns TransactionRuleListResponseDto List of rules
|
|
2221
|
+
* @param data.period Time period
|
|
2222
|
+
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
2223
|
+
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
1995
2224
|
* @throws ApiError
|
|
1996
2225
|
*/
|
|
1997
|
-
public static
|
|
1998
|
-
data:
|
|
1999
|
-
): CancelablePromise<
|
|
2226
|
+
public static reportingControllerGetCashFlowTrends(
|
|
2227
|
+
data: ReportingControllerGetCashFlowTrendsData
|
|
2228
|
+
): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
|
|
2000
2229
|
return __request(OpenAPI, {
|
|
2001
2230
|
method: 'GET',
|
|
2002
|
-
url: '/api/v1/{region}/
|
|
2231
|
+
url: '/api/v1/{region}/reporting/cash-flow/trends',
|
|
2003
2232
|
path: {
|
|
2004
2233
|
region: data.region
|
|
2005
2234
|
},
|
|
2006
2235
|
query: {
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
enabled: data.enabled,
|
|
2010
|
-
learningSource: data.learningSource,
|
|
2011
|
-
autoApplyEnabled: data.autoApplyEnabled
|
|
2236
|
+
period: data.period,
|
|
2237
|
+
granularity: data.granularity
|
|
2012
2238
|
},
|
|
2013
2239
|
errors: {
|
|
2014
|
-
401: '
|
|
2240
|
+
401: 'User not authenticated'
|
|
2015
2241
|
}
|
|
2016
2242
|
});
|
|
2017
2243
|
}
|
|
2018
2244
|
|
|
2019
2245
|
/**
|
|
2020
|
-
*
|
|
2021
|
-
*
|
|
2022
|
-
*
|
|
2023
|
-
*
|
|
2024
|
-
*
|
|
2025
|
-
*
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
region: data.region
|
|
2035
|
-
},
|
|
2036
|
-
body: data.requestBody,
|
|
2037
|
-
mediaType: 'application/json',
|
|
2038
|
-
errors: {
|
|
2039
|
-
400: 'Validation failed',
|
|
2040
|
-
401: 'Unauthorized'
|
|
2041
|
-
}
|
|
2042
|
-
});
|
|
2043
|
-
}
|
|
2044
|
-
|
|
2045
|
-
/**
|
|
2046
|
-
* Bulk create transaction rules
|
|
2246
|
+
* Generate portfolio snapshot
|
|
2247
|
+
*
|
|
2248
|
+
* Manually generate a portfolio snapshot for a specific date.
|
|
2249
|
+
*
|
|
2250
|
+
* **Multi-currency Support:**
|
|
2251
|
+
* - Fetches balances grouped by currency
|
|
2252
|
+
* - Uses user's baseCurrency setting for conversion
|
|
2253
|
+
* - Stores exchange rates and warnings
|
|
2254
|
+
*
|
|
2255
|
+
* **Use Cases:**
|
|
2256
|
+
* - Testing snapshot generation
|
|
2257
|
+
* - Force regeneration after data correction
|
|
2258
|
+
* - Initial setup for new users
|
|
2259
|
+
*
|
|
2047
2260
|
* @param data The data for the request.
|
|
2048
2261
|
* @param data.region Region code for tenant context
|
|
2049
|
-
* @param data.requestBody
|
|
2050
|
-
* @returns
|
|
2262
|
+
* @param data.requestBody Optional date (defaults to today)
|
|
2263
|
+
* @returns GenerateSnapshotResponse Snapshot generated successfully
|
|
2051
2264
|
* @throws ApiError
|
|
2052
2265
|
*/
|
|
2053
|
-
public static
|
|
2054
|
-
data:
|
|
2055
|
-
): CancelablePromise<
|
|
2266
|
+
public static reportingControllerGenerateSnapshot(
|
|
2267
|
+
data: ReportingControllerGenerateSnapshotData
|
|
2268
|
+
): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
|
|
2056
2269
|
return __request(OpenAPI, {
|
|
2057
2270
|
method: 'POST',
|
|
2058
|
-
url: '/api/v1/{region}/
|
|
2059
|
-
path: {
|
|
2060
|
-
region: data.region
|
|
2061
|
-
},
|
|
2062
|
-
body: data.requestBody,
|
|
2063
|
-
mediaType: 'application/json',
|
|
2064
|
-
errors: {
|
|
2065
|
-
400: 'Invalid bulk create data',
|
|
2066
|
-
401: 'Unauthorized'
|
|
2067
|
-
}
|
|
2068
|
-
});
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
/**
|
|
2072
|
-
* Export transaction rules
|
|
2073
|
-
* @param data The data for the request.
|
|
2074
|
-
* @param data.format Export format (currently only JSON supported)
|
|
2075
|
-
* @param data.region Region code for tenant context
|
|
2076
|
-
* @returns ExportRulesResponseDto Exported rules
|
|
2077
|
-
* @throws ApiError
|
|
2078
|
-
*/
|
|
2079
|
-
public static transactionRuleControllerExport(
|
|
2080
|
-
data: TransactionRuleControllerExportData
|
|
2081
|
-
): CancelablePromise<TransactionRuleControllerExportResponse> {
|
|
2082
|
-
return __request(OpenAPI, {
|
|
2083
|
-
method: 'GET',
|
|
2084
|
-
url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
|
|
2085
|
-
path: {
|
|
2086
|
-
format: data.format,
|
|
2087
|
-
region: data.region
|
|
2088
|
-
},
|
|
2089
|
-
errors: {
|
|
2090
|
-
400: 'Unsupported format',
|
|
2091
|
-
401: 'Unauthorized'
|
|
2092
|
-
}
|
|
2093
|
-
});
|
|
2094
|
-
}
|
|
2095
|
-
|
|
2096
|
-
/**
|
|
2097
|
-
* Get transaction rule statistics
|
|
2098
|
-
* @param data The data for the request.
|
|
2099
|
-
* @param data.period Statistics time period
|
|
2100
|
-
* @param data.region Region code for tenant context
|
|
2101
|
-
* @returns RuleStatisticsResponseDto Rule statistics
|
|
2102
|
-
* @throws ApiError
|
|
2103
|
-
*/
|
|
2104
|
-
public static transactionRuleControllerGetStatistics(
|
|
2105
|
-
data: TransactionRuleControllerGetStatisticsData
|
|
2106
|
-
): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
|
|
2107
|
-
return __request(OpenAPI, {
|
|
2108
|
-
method: 'GET',
|
|
2109
|
-
url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
|
|
2110
|
-
path: {
|
|
2111
|
-
period: data.period,
|
|
2112
|
-
region: data.region
|
|
2113
|
-
},
|
|
2114
|
-
errors: {
|
|
2115
|
-
401: 'Unauthorized'
|
|
2116
|
-
}
|
|
2117
|
-
});
|
|
2118
|
-
}
|
|
2119
|
-
|
|
2120
|
-
/**
|
|
2121
|
-
* Get transaction rule detail
|
|
2122
|
-
* @param data The data for the request.
|
|
2123
|
-
* @param data.ruleId Rule ID
|
|
2124
|
-
* @param data.region Region code for tenant context
|
|
2125
|
-
* @returns TransactionRuleResponseDto Rule details
|
|
2126
|
-
* @throws ApiError
|
|
2127
|
-
*/
|
|
2128
|
-
public static transactionRuleControllerGetDetail(
|
|
2129
|
-
data: TransactionRuleControllerGetDetailData
|
|
2130
|
-
): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
|
|
2131
|
-
return __request(OpenAPI, {
|
|
2132
|
-
method: 'GET',
|
|
2133
|
-
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2134
|
-
path: {
|
|
2135
|
-
ruleId: data.ruleId,
|
|
2136
|
-
region: data.region
|
|
2137
|
-
},
|
|
2138
|
-
errors: {
|
|
2139
|
-
401: 'Unauthorized',
|
|
2140
|
-
403: 'Forbidden - not owner of rule',
|
|
2141
|
-
404: 'Rule not found'
|
|
2142
|
-
}
|
|
2143
|
-
});
|
|
2144
|
-
}
|
|
2145
|
-
|
|
2146
|
-
/**
|
|
2147
|
-
* Update a transaction rule
|
|
2148
|
-
* @param data The data for the request.
|
|
2149
|
-
* @param data.ruleId Rule ID to update
|
|
2150
|
-
* @param data.region Region code for tenant context
|
|
2151
|
-
* @param data.requestBody
|
|
2152
|
-
* @returns TransactionRuleResponseDto Rule updated successfully
|
|
2153
|
-
* @throws ApiError
|
|
2154
|
-
*/
|
|
2155
|
-
public static transactionRuleControllerUpdate(
|
|
2156
|
-
data: TransactionRuleControllerUpdateData
|
|
2157
|
-
): CancelablePromise<TransactionRuleControllerUpdateResponse> {
|
|
2158
|
-
return __request(OpenAPI, {
|
|
2159
|
-
method: 'PUT',
|
|
2160
|
-
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2271
|
+
url: '/api/v1/{region}/reporting/snapshots/generate',
|
|
2161
2272
|
path: {
|
|
2162
|
-
ruleId: data.ruleId,
|
|
2163
2273
|
region: data.region
|
|
2164
2274
|
},
|
|
2165
2275
|
body: data.requestBody,
|
|
2166
2276
|
mediaType: 'application/json',
|
|
2167
2277
|
errors: {
|
|
2168
|
-
400: '
|
|
2169
|
-
401: '
|
|
2170
|
-
403: 'Forbidden - not owner of rule',
|
|
2171
|
-
404: 'Rule not found',
|
|
2172
|
-
409: 'Resource conflict - rule is being modified by another process'
|
|
2173
|
-
}
|
|
2174
|
-
});
|
|
2175
|
-
}
|
|
2176
|
-
|
|
2177
|
-
/**
|
|
2178
|
-
* Delete a transaction rule
|
|
2179
|
-
* @param data The data for the request.
|
|
2180
|
-
* @param data.ruleId Rule ID to delete
|
|
2181
|
-
* @param data.region Region code for tenant context
|
|
2182
|
-
* @returns void Rule deleted successfully
|
|
2183
|
-
* @throws ApiError
|
|
2184
|
-
*/
|
|
2185
|
-
public static transactionRuleControllerDelete(
|
|
2186
|
-
data: TransactionRuleControllerDeleteData
|
|
2187
|
-
): CancelablePromise<TransactionRuleControllerDeleteResponse> {
|
|
2188
|
-
return __request(OpenAPI, {
|
|
2189
|
-
method: 'DELETE',
|
|
2190
|
-
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2191
|
-
path: {
|
|
2192
|
-
ruleId: data.ruleId,
|
|
2193
|
-
region: data.region
|
|
2194
|
-
},
|
|
2195
|
-
errors: {
|
|
2196
|
-
401: 'Unauthorized',
|
|
2197
|
-
403: 'Forbidden - not owner of rule',
|
|
2198
|
-
404: 'Rule not found',
|
|
2199
|
-
409: 'Resource conflict - rule is being modified by another process'
|
|
2278
|
+
400: 'Invalid date format',
|
|
2279
|
+
401: 'User not authenticated'
|
|
2200
2280
|
}
|
|
2201
2281
|
});
|
|
2202
2282
|
}
|
|
2203
2283
|
|
|
2204
2284
|
/**
|
|
2205
|
-
*
|
|
2285
|
+
* Backfill portfolio snapshots
|
|
2286
|
+
*
|
|
2287
|
+
* Generate snapshots for a date range (historical data backfill).
|
|
2288
|
+
*
|
|
2289
|
+
* **Multi-currency Support:**
|
|
2290
|
+
* - Each snapshot includes multi-currency data
|
|
2291
|
+
* - Uses exchange rates available at generation time
|
|
2292
|
+
* - Warnings stored for missing exchange rates
|
|
2293
|
+
*
|
|
2294
|
+
* **Best Practices:**
|
|
2295
|
+
* - Use for initial setup after account configuration
|
|
2296
|
+
* - Run during low-traffic periods for large date ranges
|
|
2297
|
+
* - Existing snapshots are skipped (not regenerated)
|
|
2298
|
+
*
|
|
2206
2299
|
* @param data The data for the request.
|
|
2207
|
-
* @param data.ruleId Rule ID to test
|
|
2208
2300
|
* @param data.region Region code for tenant context
|
|
2209
2301
|
* @param data.requestBody
|
|
2210
|
-
* @returns
|
|
2302
|
+
* @returns BackfillSnapshotsResponse Backfill completed successfully
|
|
2211
2303
|
* @throws ApiError
|
|
2212
2304
|
*/
|
|
2213
|
-
public static
|
|
2214
|
-
data:
|
|
2215
|
-
): CancelablePromise<
|
|
2305
|
+
public static reportingControllerBackfillSnapshots(
|
|
2306
|
+
data: ReportingControllerBackfillSnapshotsData
|
|
2307
|
+
): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
|
|
2216
2308
|
return __request(OpenAPI, {
|
|
2217
2309
|
method: 'POST',
|
|
2218
|
-
url: '/api/v1/{region}/
|
|
2310
|
+
url: '/api/v1/{region}/reporting/snapshots/backfill',
|
|
2219
2311
|
path: {
|
|
2220
|
-
ruleId: data.ruleId,
|
|
2221
2312
|
region: data.region
|
|
2222
2313
|
},
|
|
2223
2314
|
body: data.requestBody,
|
|
2224
2315
|
mediaType: 'application/json',
|
|
2225
2316
|
errors: {
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2317
|
+
400: 'Invalid date format or range',
|
|
2318
|
+
401: 'User not authenticated',
|
|
2319
|
+
409: 'Backfill already in progress for this user'
|
|
2229
2320
|
}
|
|
2230
2321
|
});
|
|
2231
2322
|
}
|
|
@@ -2277,7 +2368,7 @@ export class UsersService {
|
|
|
2277
2368
|
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
2278
2369
|
* @param data The data for the request.
|
|
2279
2370
|
* @param data.requestBody
|
|
2280
|
-
* @returns
|
|
2371
|
+
* @returns SignupResponseDto User created successfully
|
|
2281
2372
|
* @throws ApiError
|
|
2282
2373
|
*/
|
|
2283
2374
|
public static userControllerSignupUser(
|
|
@@ -2486,52 +2577,330 @@ export class PropertiesService {
|
|
|
2486
2577
|
}
|
|
2487
2578
|
}
|
|
2488
2579
|
|
|
2489
|
-
export class
|
|
2580
|
+
export class BeanTransactionRulesService {
|
|
2490
2581
|
/**
|
|
2491
|
-
* Create a new
|
|
2492
|
-
* Creates a new
|
|
2582
|
+
* Create a new transaction rule (or upsert if upsertByPayee=true)
|
|
2583
|
+
* Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
|
|
2493
2584
|
* @param data The data for the request.
|
|
2494
|
-
* @param data.region Region code for tenant context
|
|
2585
|
+
* @param data.region Region code for tenant context
|
|
2495
2586
|
* @param data.requestBody
|
|
2496
|
-
* @returns
|
|
2587
|
+
* @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
|
|
2497
2588
|
* @throws ApiError
|
|
2498
2589
|
*/
|
|
2499
|
-
public static
|
|
2500
|
-
data:
|
|
2501
|
-
): CancelablePromise<
|
|
2590
|
+
public static transactionRuleControllerCreate(
|
|
2591
|
+
data: TransactionRuleControllerCreateData
|
|
2592
|
+
): CancelablePromise<TransactionRuleControllerCreateResponse> {
|
|
2502
2593
|
return __request(OpenAPI, {
|
|
2503
2594
|
method: 'POST',
|
|
2504
|
-
url: '/api/v1/{region}/bean/
|
|
2595
|
+
url: '/api/v1/{region}/bean/transaction-rules',
|
|
2505
2596
|
path: {
|
|
2506
2597
|
region: data.region
|
|
2507
2598
|
},
|
|
2508
2599
|
body: data.requestBody,
|
|
2509
2600
|
mediaType: 'application/json',
|
|
2510
2601
|
errors: {
|
|
2511
|
-
|
|
2602
|
+
400: 'Validation failed',
|
|
2603
|
+
401: 'Unauthorized',
|
|
2604
|
+
409: 'Resource conflict - another process is updating this rule'
|
|
2512
2605
|
}
|
|
2513
2606
|
});
|
|
2514
2607
|
}
|
|
2515
2608
|
|
|
2516
2609
|
/**
|
|
2517
|
-
*
|
|
2518
|
-
* Returns life events for the authenticated user with optional filtering by type, description search, and date range.
|
|
2610
|
+
* Get all transaction rules for user
|
|
2519
2611
|
* @param data The data for the request.
|
|
2520
|
-
* @param data.region Region code for tenant context
|
|
2521
|
-
* @param data.
|
|
2522
|
-
* @param data.
|
|
2523
|
-
* @param data.
|
|
2524
|
-
* @param data.
|
|
2525
|
-
* @param data.
|
|
2526
|
-
* @
|
|
2527
|
-
* @returns EventListResponseDto Life events retrieved successfully
|
|
2612
|
+
* @param data.region Region code for tenant context
|
|
2613
|
+
* @param data.limit Max results per page (default: 20, max: 100)
|
|
2614
|
+
* @param data.offset Pagination offset (default: 0)
|
|
2615
|
+
* @param data.enabled Filter by enabled status
|
|
2616
|
+
* @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
|
|
2617
|
+
* @param data.autoApplyEnabled Filter by auto-apply status
|
|
2618
|
+
* @returns TransactionRuleListResponseDto List of rules
|
|
2528
2619
|
* @throws ApiError
|
|
2529
2620
|
*/
|
|
2530
|
-
public static
|
|
2531
|
-
data:
|
|
2532
|
-
): CancelablePromise<
|
|
2533
|
-
return __request(OpenAPI, {
|
|
2534
|
-
method: 'GET',
|
|
2621
|
+
public static transactionRuleControllerList(
|
|
2622
|
+
data: TransactionRuleControllerListData
|
|
2623
|
+
): CancelablePromise<TransactionRuleControllerListResponse> {
|
|
2624
|
+
return __request(OpenAPI, {
|
|
2625
|
+
method: 'GET',
|
|
2626
|
+
url: '/api/v1/{region}/bean/transaction-rules',
|
|
2627
|
+
path: {
|
|
2628
|
+
region: data.region
|
|
2629
|
+
},
|
|
2630
|
+
query: {
|
|
2631
|
+
limit: data.limit,
|
|
2632
|
+
offset: data.offset,
|
|
2633
|
+
enabled: data.enabled,
|
|
2634
|
+
learningSource: data.learningSource,
|
|
2635
|
+
autoApplyEnabled: data.autoApplyEnabled
|
|
2636
|
+
},
|
|
2637
|
+
errors: {
|
|
2638
|
+
401: 'Unauthorized'
|
|
2639
|
+
}
|
|
2640
|
+
});
|
|
2641
|
+
}
|
|
2642
|
+
|
|
2643
|
+
/**
|
|
2644
|
+
* Validate transaction rule configuration
|
|
2645
|
+
* @param data The data for the request.
|
|
2646
|
+
* @param data.region Region code for tenant context
|
|
2647
|
+
* @param data.requestBody
|
|
2648
|
+
* @returns ValidateRuleResponseDto Validation result
|
|
2649
|
+
* @throws ApiError
|
|
2650
|
+
*/
|
|
2651
|
+
public static transactionRuleControllerValidate(
|
|
2652
|
+
data: TransactionRuleControllerValidateData
|
|
2653
|
+
): CancelablePromise<TransactionRuleControllerValidateResponse> {
|
|
2654
|
+
return __request(OpenAPI, {
|
|
2655
|
+
method: 'POST',
|
|
2656
|
+
url: '/api/v1/{region}/bean/transaction-rules/validate',
|
|
2657
|
+
path: {
|
|
2658
|
+
region: data.region
|
|
2659
|
+
},
|
|
2660
|
+
body: data.requestBody,
|
|
2661
|
+
mediaType: 'application/json',
|
|
2662
|
+
errors: {
|
|
2663
|
+
400: 'Validation failed',
|
|
2664
|
+
401: 'Unauthorized'
|
|
2665
|
+
}
|
|
2666
|
+
});
|
|
2667
|
+
}
|
|
2668
|
+
|
|
2669
|
+
/**
|
|
2670
|
+
* Bulk create transaction rules
|
|
2671
|
+
* @param data The data for the request.
|
|
2672
|
+
* @param data.region Region code for tenant context
|
|
2673
|
+
* @param data.requestBody
|
|
2674
|
+
* @returns BulkCreateRulesResponseDto Bulk create completed
|
|
2675
|
+
* @throws ApiError
|
|
2676
|
+
*/
|
|
2677
|
+
public static transactionRuleControllerBulkCreate(
|
|
2678
|
+
data: TransactionRuleControllerBulkCreateData
|
|
2679
|
+
): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
|
|
2680
|
+
return __request(OpenAPI, {
|
|
2681
|
+
method: 'POST',
|
|
2682
|
+
url: '/api/v1/{region}/bean/transaction-rules/bulk',
|
|
2683
|
+
path: {
|
|
2684
|
+
region: data.region
|
|
2685
|
+
},
|
|
2686
|
+
body: data.requestBody,
|
|
2687
|
+
mediaType: 'application/json',
|
|
2688
|
+
errors: {
|
|
2689
|
+
400: 'Invalid bulk create data',
|
|
2690
|
+
401: 'Unauthorized'
|
|
2691
|
+
}
|
|
2692
|
+
});
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
/**
|
|
2696
|
+
* Export transaction rules
|
|
2697
|
+
* @param data The data for the request.
|
|
2698
|
+
* @param data.format Export format (currently only JSON supported)
|
|
2699
|
+
* @param data.region Region code for tenant context
|
|
2700
|
+
* @returns ExportRulesResponseDto Exported rules
|
|
2701
|
+
* @throws ApiError
|
|
2702
|
+
*/
|
|
2703
|
+
public static transactionRuleControllerExport(
|
|
2704
|
+
data: TransactionRuleControllerExportData
|
|
2705
|
+
): CancelablePromise<TransactionRuleControllerExportResponse> {
|
|
2706
|
+
return __request(OpenAPI, {
|
|
2707
|
+
method: 'GET',
|
|
2708
|
+
url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
|
|
2709
|
+
path: {
|
|
2710
|
+
format: data.format,
|
|
2711
|
+
region: data.region
|
|
2712
|
+
},
|
|
2713
|
+
errors: {
|
|
2714
|
+
400: 'Unsupported format',
|
|
2715
|
+
401: 'Unauthorized'
|
|
2716
|
+
}
|
|
2717
|
+
});
|
|
2718
|
+
}
|
|
2719
|
+
|
|
2720
|
+
/**
|
|
2721
|
+
* Get transaction rule statistics
|
|
2722
|
+
* @param data The data for the request.
|
|
2723
|
+
* @param data.period Statistics time period
|
|
2724
|
+
* @param data.region Region code for tenant context
|
|
2725
|
+
* @returns RuleStatisticsResponseDto Rule statistics
|
|
2726
|
+
* @throws ApiError
|
|
2727
|
+
*/
|
|
2728
|
+
public static transactionRuleControllerGetStatistics(
|
|
2729
|
+
data: TransactionRuleControllerGetStatisticsData
|
|
2730
|
+
): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
|
|
2731
|
+
return __request(OpenAPI, {
|
|
2732
|
+
method: 'GET',
|
|
2733
|
+
url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
|
|
2734
|
+
path: {
|
|
2735
|
+
period: data.period,
|
|
2736
|
+
region: data.region
|
|
2737
|
+
},
|
|
2738
|
+
errors: {
|
|
2739
|
+
401: 'Unauthorized'
|
|
2740
|
+
}
|
|
2741
|
+
});
|
|
2742
|
+
}
|
|
2743
|
+
|
|
2744
|
+
/**
|
|
2745
|
+
* Get transaction rule detail
|
|
2746
|
+
* @param data The data for the request.
|
|
2747
|
+
* @param data.ruleId Rule ID
|
|
2748
|
+
* @param data.region Region code for tenant context
|
|
2749
|
+
* @returns TransactionRuleResponseDto Rule details
|
|
2750
|
+
* @throws ApiError
|
|
2751
|
+
*/
|
|
2752
|
+
public static transactionRuleControllerGetDetail(
|
|
2753
|
+
data: TransactionRuleControllerGetDetailData
|
|
2754
|
+
): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
|
|
2755
|
+
return __request(OpenAPI, {
|
|
2756
|
+
method: 'GET',
|
|
2757
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2758
|
+
path: {
|
|
2759
|
+
ruleId: data.ruleId,
|
|
2760
|
+
region: data.region
|
|
2761
|
+
},
|
|
2762
|
+
errors: {
|
|
2763
|
+
401: 'Unauthorized',
|
|
2764
|
+
403: 'Forbidden - not owner of rule',
|
|
2765
|
+
404: 'Rule not found'
|
|
2766
|
+
}
|
|
2767
|
+
});
|
|
2768
|
+
}
|
|
2769
|
+
|
|
2770
|
+
/**
|
|
2771
|
+
* Update a transaction rule
|
|
2772
|
+
* @param data The data for the request.
|
|
2773
|
+
* @param data.ruleId Rule ID to update
|
|
2774
|
+
* @param data.region Region code for tenant context
|
|
2775
|
+
* @param data.requestBody
|
|
2776
|
+
* @returns TransactionRuleResponseDto Rule updated successfully
|
|
2777
|
+
* @throws ApiError
|
|
2778
|
+
*/
|
|
2779
|
+
public static transactionRuleControllerUpdate(
|
|
2780
|
+
data: TransactionRuleControllerUpdateData
|
|
2781
|
+
): CancelablePromise<TransactionRuleControllerUpdateResponse> {
|
|
2782
|
+
return __request(OpenAPI, {
|
|
2783
|
+
method: 'PUT',
|
|
2784
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2785
|
+
path: {
|
|
2786
|
+
ruleId: data.ruleId,
|
|
2787
|
+
region: data.region
|
|
2788
|
+
},
|
|
2789
|
+
body: data.requestBody,
|
|
2790
|
+
mediaType: 'application/json',
|
|
2791
|
+
errors: {
|
|
2792
|
+
400: 'Validation failed',
|
|
2793
|
+
401: 'Unauthorized',
|
|
2794
|
+
403: 'Forbidden - not owner of rule',
|
|
2795
|
+
404: 'Rule not found',
|
|
2796
|
+
409: 'Resource conflict - rule is being modified by another process'
|
|
2797
|
+
}
|
|
2798
|
+
});
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2801
|
+
/**
|
|
2802
|
+
* Delete a transaction rule
|
|
2803
|
+
* @param data The data for the request.
|
|
2804
|
+
* @param data.ruleId Rule ID to delete
|
|
2805
|
+
* @param data.region Region code for tenant context
|
|
2806
|
+
* @returns void Rule deleted successfully
|
|
2807
|
+
* @throws ApiError
|
|
2808
|
+
*/
|
|
2809
|
+
public static transactionRuleControllerDelete(
|
|
2810
|
+
data: TransactionRuleControllerDeleteData
|
|
2811
|
+
): CancelablePromise<TransactionRuleControllerDeleteResponse> {
|
|
2812
|
+
return __request(OpenAPI, {
|
|
2813
|
+
method: 'DELETE',
|
|
2814
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
2815
|
+
path: {
|
|
2816
|
+
ruleId: data.ruleId,
|
|
2817
|
+
region: data.region
|
|
2818
|
+
},
|
|
2819
|
+
errors: {
|
|
2820
|
+
401: 'Unauthorized',
|
|
2821
|
+
403: 'Forbidden - not owner of rule',
|
|
2822
|
+
404: 'Rule not found',
|
|
2823
|
+
409: 'Resource conflict - rule is being modified by another process'
|
|
2824
|
+
}
|
|
2825
|
+
});
|
|
2826
|
+
}
|
|
2827
|
+
|
|
2828
|
+
/**
|
|
2829
|
+
* Test rule matching
|
|
2830
|
+
* @param data The data for the request.
|
|
2831
|
+
* @param data.ruleId Rule ID to test
|
|
2832
|
+
* @param data.region Region code for tenant context
|
|
2833
|
+
* @param data.requestBody
|
|
2834
|
+
* @returns TestRuleResponseDto Test result
|
|
2835
|
+
* @throws ApiError
|
|
2836
|
+
*/
|
|
2837
|
+
public static transactionRuleControllerTest(
|
|
2838
|
+
data: TransactionRuleControllerTestData
|
|
2839
|
+
): CancelablePromise<TransactionRuleControllerTestResponse> {
|
|
2840
|
+
return __request(OpenAPI, {
|
|
2841
|
+
method: 'POST',
|
|
2842
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
|
|
2843
|
+
path: {
|
|
2844
|
+
ruleId: data.ruleId,
|
|
2845
|
+
region: data.region
|
|
2846
|
+
},
|
|
2847
|
+
body: data.requestBody,
|
|
2848
|
+
mediaType: 'application/json',
|
|
2849
|
+
errors: {
|
|
2850
|
+
401: 'Unauthorized',
|
|
2851
|
+
403: 'Forbidden - not owner of rule',
|
|
2852
|
+
404: 'Rule not found'
|
|
2853
|
+
}
|
|
2854
|
+
});
|
|
2855
|
+
}
|
|
2856
|
+
}
|
|
2857
|
+
|
|
2858
|
+
export class LifeEventsService {
|
|
2859
|
+
/**
|
|
2860
|
+
* Create a new life event
|
|
2861
|
+
* Creates a new life event entry for the authenticated user. Returns ETag header carrying the row updatedAt.
|
|
2862
|
+
* @param data The data for the request.
|
|
2863
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
2864
|
+
* @param data.requestBody
|
|
2865
|
+
* @returns EventResponseDto Life event created successfully
|
|
2866
|
+
* @throws ApiError
|
|
2867
|
+
*/
|
|
2868
|
+
public static eventControllerCreate(
|
|
2869
|
+
data: EventControllerCreateData
|
|
2870
|
+
): CancelablePromise<EventControllerCreateResponse> {
|
|
2871
|
+
return __request(OpenAPI, {
|
|
2872
|
+
method: 'POST',
|
|
2873
|
+
url: '/api/v1/{region}/bean/events',
|
|
2874
|
+
path: {
|
|
2875
|
+
region: data.region
|
|
2876
|
+
},
|
|
2877
|
+
body: data.requestBody,
|
|
2878
|
+
mediaType: 'application/json',
|
|
2879
|
+
errors: {
|
|
2880
|
+
409: 'Life event already exists for this (userId, type, date) combination'
|
|
2881
|
+
}
|
|
2882
|
+
});
|
|
2883
|
+
}
|
|
2884
|
+
|
|
2885
|
+
/**
|
|
2886
|
+
* List user life events
|
|
2887
|
+
* Returns life events for the authenticated user with optional filtering by type, description search, and date range.
|
|
2888
|
+
* @param data The data for the request.
|
|
2889
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
2890
|
+
* @param data.type Filter by life event type (exact match)
|
|
2891
|
+
* @param data.q Search term for description (case-insensitive partial match)
|
|
2892
|
+
* @param data.from Filter life events from this date (ISO 8601 format)
|
|
2893
|
+
* @param data.to Filter life events to this date (ISO 8601 format)
|
|
2894
|
+
* @param data.page Page number for pagination (default: 1)
|
|
2895
|
+
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
2896
|
+
* @returns EventListResponseDto Life events retrieved successfully
|
|
2897
|
+
* @throws ApiError
|
|
2898
|
+
*/
|
|
2899
|
+
public static eventControllerFindAll(
|
|
2900
|
+
data: EventControllerFindAllData
|
|
2901
|
+
): CancelablePromise<EventControllerFindAllResponse> {
|
|
2902
|
+
return __request(OpenAPI, {
|
|
2903
|
+
method: 'GET',
|
|
2535
2904
|
url: '/api/v1/{region}/bean/events',
|
|
2536
2905
|
path: {
|
|
2537
2906
|
region: data.region
|
|
@@ -2661,6 +3030,33 @@ export class LifeEventsService {
|
|
|
2661
3030
|
}
|
|
2662
3031
|
}
|
|
2663
3032
|
|
|
3033
|
+
export class OnboardingService {
|
|
3034
|
+
/**
|
|
3035
|
+
* Bootstrap core accounts + register asset accounts with opening balances (ADR-0113)
|
|
3036
|
+
* @param data The data for the request.
|
|
3037
|
+
* @param data.region Region code for tenant context
|
|
3038
|
+
* @param data.requestBody
|
|
3039
|
+
* @returns unknown Onboarding bootstrap result.
|
|
3040
|
+
* @throws ApiError
|
|
3041
|
+
*/
|
|
3042
|
+
public static onboardingControllerBootstrap(
|
|
3043
|
+
data: OnboardingControllerBootstrapData
|
|
3044
|
+
): CancelablePromise<OnboardingControllerBootstrapResponse> {
|
|
3045
|
+
return __request(OpenAPI, {
|
|
3046
|
+
method: 'POST',
|
|
3047
|
+
url: '/api/v1/{region}/bean/onboarding',
|
|
3048
|
+
path: {
|
|
3049
|
+
region: data.region
|
|
3050
|
+
},
|
|
3051
|
+
body: data.requestBody,
|
|
3052
|
+
mediaType: 'application/json',
|
|
3053
|
+
errors: {
|
|
3054
|
+
422: 'Invalid region/account path/duplicate paths.'
|
|
3055
|
+
}
|
|
3056
|
+
});
|
|
3057
|
+
}
|
|
3058
|
+
}
|
|
3059
|
+
|
|
2664
3060
|
export class BalanceReconciliationService {
|
|
2665
3061
|
/**
|
|
2666
3062
|
* Preview reconciliation (book vs actual)
|
|
@@ -2945,216 +3341,196 @@ export class BeanImportService {
|
|
|
2945
3341
|
}
|
|
2946
3342
|
}
|
|
2947
3343
|
|
|
2948
|
-
export class
|
|
2949
|
-
/**
|
|
2950
|
-
* Get all platforms with statistics
|
|
2951
|
-
* @returns unknown List of platforms with binding and account counts
|
|
2952
|
-
* @throws ApiError
|
|
2953
|
-
*/
|
|
2954
|
-
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
2955
|
-
return __request(OpenAPI, {
|
|
2956
|
-
method: 'GET',
|
|
2957
|
-
url: '/api/v1/bean/platforms'
|
|
2958
|
-
});
|
|
2959
|
-
}
|
|
2960
|
-
|
|
3344
|
+
export class ProviderSyncService {
|
|
2961
3345
|
/**
|
|
2962
|
-
*
|
|
3346
|
+
* Sync transactions from financial data provider
|
|
3347
|
+
*
|
|
3348
|
+
* Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
|
|
3349
|
+
*
|
|
3350
|
+
* **Supported Providers:**
|
|
3351
|
+
* - **plaid**: Plaid API (US, Canada, Europe)
|
|
3352
|
+
* - **teller**: Teller API (US)
|
|
3353
|
+
* - **truelayer**: TrueLayer Open Banking (UK, Europe)
|
|
3354
|
+
* - **gocardless**: GoCardless Bank Account Data (Europe)
|
|
3355
|
+
* - **simplefin**: SimpleFIN (Self-hosted)
|
|
3356
|
+
* - **yodlee**: Yodlee (Global)
|
|
3357
|
+
* - **beancount-direct**: Beancount format transactions
|
|
3358
|
+
* - **parsed-bill**: Client-side parsed bill transactions
|
|
3359
|
+
*
|
|
3360
|
+
* **Processing Flow:**
|
|
3361
|
+
* 1. Transform raw data via provider adapter
|
|
3362
|
+
* 2. Validate transaction format
|
|
3363
|
+
* 3. Deduplicate using originalId
|
|
3364
|
+
* 4. Classify using rule engine
|
|
3365
|
+
* 5. Route low-confidence to Review Center
|
|
3366
|
+
* 6. Persist validated transactions
|
|
3367
|
+
*
|
|
2963
3368
|
* @param data The data for the request.
|
|
3369
|
+
* @param data.providerName Provider name
|
|
3370
|
+
* @param data.region Region code for tenant context
|
|
2964
3371
|
* @param data.requestBody
|
|
2965
|
-
* @returns
|
|
3372
|
+
* @returns ProviderSyncResponseDto Sync completed successfully
|
|
2966
3373
|
* @throws ApiError
|
|
2967
3374
|
*/
|
|
2968
|
-
public static
|
|
2969
|
-
data:
|
|
2970
|
-
): CancelablePromise<
|
|
3375
|
+
public static providerSyncControllerSync(
|
|
3376
|
+
data: ProviderSyncControllerSyncData
|
|
3377
|
+
): CancelablePromise<ProviderSyncControllerSyncResponse> {
|
|
2971
3378
|
return __request(OpenAPI, {
|
|
2972
3379
|
method: 'POST',
|
|
2973
|
-
url: '/api/v1/bean/
|
|
3380
|
+
url: '/api/v1/{region}/bean/import/provider/{providerName}/sync',
|
|
3381
|
+
path: {
|
|
3382
|
+
providerName: data.providerName,
|
|
3383
|
+
region: data.region
|
|
3384
|
+
},
|
|
2974
3385
|
body: data.requestBody,
|
|
2975
3386
|
mediaType: 'application/json',
|
|
2976
3387
|
errors: {
|
|
2977
|
-
|
|
3388
|
+
400: 'Invalid request data',
|
|
3389
|
+
401: 'Missing or invalid authentication',
|
|
3390
|
+
404: 'Provider not supported'
|
|
2978
3391
|
}
|
|
2979
3392
|
});
|
|
2980
3393
|
}
|
|
2981
3394
|
|
|
2982
3395
|
/**
|
|
2983
|
-
* Get
|
|
2984
|
-
*
|
|
2985
|
-
* @throws ApiError
|
|
2986
|
-
*/
|
|
2987
|
-
public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
2988
|
-
return __request(OpenAPI, {
|
|
2989
|
-
method: 'GET',
|
|
2990
|
-
url: '/api/v1/bean/platforms/list'
|
|
2991
|
-
});
|
|
2992
|
-
}
|
|
2993
|
-
|
|
2994
|
-
/**
|
|
2995
|
-
* Match platforms by name or alias
|
|
3396
|
+
* Get supported providers
|
|
3397
|
+
* Returns a list of all providers supported by the sync endpoint.
|
|
2996
3398
|
* @param data The data for the request.
|
|
2997
|
-
* @param data.
|
|
2998
|
-
* @
|
|
2999
|
-
* @returns unknown List of matching platforms with suggested segment names
|
|
3399
|
+
* @param data.region Region code for tenant context
|
|
3400
|
+
* @returns SupportedProvidersResponseDto List of supported providers
|
|
3000
3401
|
* @throws ApiError
|
|
3001
3402
|
*/
|
|
3002
|
-
public static
|
|
3003
|
-
data:
|
|
3004
|
-
): CancelablePromise<
|
|
3403
|
+
public static providerSyncControllerGetSupportedProviders(
|
|
3404
|
+
data: ProviderSyncControllerGetSupportedProvidersData
|
|
3405
|
+
): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse> {
|
|
3005
3406
|
return __request(OpenAPI, {
|
|
3006
3407
|
method: 'GET',
|
|
3007
|
-
url: '/api/v1/bean/
|
|
3008
|
-
|
|
3009
|
-
q: data.q,
|
|
3408
|
+
url: '/api/v1/{region}/bean/import/provider/supported',
|
|
3409
|
+
path: {
|
|
3010
3410
|
region: data.region
|
|
3411
|
+
},
|
|
3412
|
+
errors: {
|
|
3413
|
+
401: 'Missing or invalid authentication'
|
|
3011
3414
|
}
|
|
3012
3415
|
});
|
|
3013
3416
|
}
|
|
3014
3417
|
|
|
3015
3418
|
/**
|
|
3016
|
-
*
|
|
3419
|
+
* Check if provider is supported
|
|
3420
|
+
* Returns whether a specific provider is supported.
|
|
3017
3421
|
* @param data The data for the request.
|
|
3018
|
-
* @param data.
|
|
3019
|
-
* @param data.
|
|
3020
|
-
* @returns unknown
|
|
3422
|
+
* @param data.providerName Provider name to check
|
|
3423
|
+
* @param data.region Region code for tenant context
|
|
3424
|
+
* @returns unknown Provider support status
|
|
3021
3425
|
* @throws ApiError
|
|
3022
3426
|
*/
|
|
3023
|
-
public static
|
|
3024
|
-
data:
|
|
3025
|
-
): CancelablePromise<
|
|
3427
|
+
public static providerSyncControllerIsProviderSupported(
|
|
3428
|
+
data: ProviderSyncControllerIsProviderSupportedData
|
|
3429
|
+
): CancelablePromise<ProviderSyncControllerIsProviderSupportedResponse> {
|
|
3026
3430
|
return __request(OpenAPI, {
|
|
3027
|
-
method: '
|
|
3028
|
-
url: '/api/v1/bean/
|
|
3431
|
+
method: 'GET',
|
|
3432
|
+
url: '/api/v1/{region}/bean/import/provider/{providerName}/supported',
|
|
3029
3433
|
path: {
|
|
3030
|
-
|
|
3434
|
+
providerName: data.providerName,
|
|
3435
|
+
region: data.region
|
|
3031
3436
|
},
|
|
3032
|
-
body: data.requestBody,
|
|
3033
|
-
mediaType: 'application/json',
|
|
3034
3437
|
errors: {
|
|
3035
|
-
|
|
3438
|
+
401: 'Missing or invalid authentication'
|
|
3036
3439
|
}
|
|
3037
3440
|
});
|
|
3038
3441
|
}
|
|
3442
|
+
}
|
|
3039
3443
|
|
|
3444
|
+
export class ExternalAccountLinksService {
|
|
3040
3445
|
/**
|
|
3041
|
-
*
|
|
3446
|
+
* Create an external account → BeanAccount mapping (ADR-0113)
|
|
3042
3447
|
* @param data The data for the request.
|
|
3043
|
-
* @param data.
|
|
3044
|
-
* @
|
|
3448
|
+
* @param data.region Region code for tenant context
|
|
3449
|
+
* @param data.requestBody
|
|
3450
|
+
* @returns ExternalAccountLinkResponseDto Link created.
|
|
3045
3451
|
* @throws ApiError
|
|
3046
3452
|
*/
|
|
3047
|
-
public static
|
|
3048
|
-
data:
|
|
3049
|
-
): CancelablePromise<
|
|
3453
|
+
public static externalAccountLinkControllerCreate(
|
|
3454
|
+
data: ExternalAccountLinkControllerCreateData
|
|
3455
|
+
): CancelablePromise<ExternalAccountLinkControllerCreateResponse> {
|
|
3050
3456
|
return __request(OpenAPI, {
|
|
3051
|
-
method: '
|
|
3052
|
-
url: '/api/v1/bean/
|
|
3457
|
+
method: 'POST',
|
|
3458
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3053
3459
|
path: {
|
|
3054
|
-
|
|
3460
|
+
region: data.region
|
|
3055
3461
|
},
|
|
3462
|
+
body: data.requestBody,
|
|
3463
|
+
mediaType: 'application/json',
|
|
3056
3464
|
errors: {
|
|
3057
|
-
|
|
3465
|
+
422: 'beanAccountId not owned, or an active link already exists.'
|
|
3058
3466
|
}
|
|
3059
3467
|
});
|
|
3060
3468
|
}
|
|
3061
|
-
}
|
|
3062
3469
|
|
|
3063
|
-
export class ProviderSyncService {
|
|
3064
3470
|
/**
|
|
3065
|
-
*
|
|
3066
|
-
*
|
|
3067
|
-
* Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
|
|
3068
|
-
*
|
|
3069
|
-
* **Supported Providers:**
|
|
3070
|
-
* - **plaid**: Plaid API (US, Canada, Europe)
|
|
3071
|
-
* - **teller**: Teller API (US)
|
|
3072
|
-
* - **truelayer**: TrueLayer Open Banking (UK, Europe)
|
|
3073
|
-
* - **gocardless**: GoCardless Bank Account Data (Europe)
|
|
3074
|
-
* - **simplefin**: SimpleFIN (Self-hosted)
|
|
3075
|
-
* - **yodlee**: Yodlee (Global)
|
|
3076
|
-
* - **beancount-direct**: Beancount format transactions
|
|
3077
|
-
* - **parsed-bill**: Client-side parsed bill transactions
|
|
3078
|
-
*
|
|
3079
|
-
* **Processing Flow:**
|
|
3080
|
-
* 1. Transform raw data via provider adapter
|
|
3081
|
-
* 2. Validate transaction format
|
|
3082
|
-
* 3. Deduplicate using originalId
|
|
3083
|
-
* 4. Classify using rule engine
|
|
3084
|
-
* 5. Route low-confidence to Review Center
|
|
3085
|
-
* 6. Persist validated transactions
|
|
3086
|
-
*
|
|
3471
|
+
* List the user's active external account links
|
|
3087
3472
|
* @param data The data for the request.
|
|
3088
|
-
* @param data.
|
|
3473
|
+
* @param data.provider
|
|
3089
3474
|
* @param data.region Region code for tenant context
|
|
3090
|
-
* @
|
|
3091
|
-
* @returns ProviderSyncResponseDto Sync completed successfully
|
|
3475
|
+
* @returns ExternalAccountLinkListResponseDto Links retrieved.
|
|
3092
3476
|
* @throws ApiError
|
|
3093
3477
|
*/
|
|
3094
|
-
public static
|
|
3095
|
-
data:
|
|
3096
|
-
): CancelablePromise<
|
|
3478
|
+
public static externalAccountLinkControllerFindAll(
|
|
3479
|
+
data: ExternalAccountLinkControllerFindAllData
|
|
3480
|
+
): CancelablePromise<ExternalAccountLinkControllerFindAllResponse> {
|
|
3097
3481
|
return __request(OpenAPI, {
|
|
3098
|
-
method: '
|
|
3099
|
-
url: '/api/v1/{region}/bean/
|
|
3482
|
+
method: 'GET',
|
|
3483
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3100
3484
|
path: {
|
|
3101
|
-
providerName: data.providerName,
|
|
3102
3485
|
region: data.region
|
|
3103
3486
|
},
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
errors: {
|
|
3107
|
-
400: 'Invalid request data',
|
|
3108
|
-
401: 'Missing or invalid authentication',
|
|
3109
|
-
404: 'Provider not supported'
|
|
3487
|
+
query: {
|
|
3488
|
+
provider: data.provider
|
|
3110
3489
|
}
|
|
3111
3490
|
});
|
|
3112
3491
|
}
|
|
3113
3492
|
|
|
3114
3493
|
/**
|
|
3115
|
-
* Get
|
|
3116
|
-
* Returns a list of all providers supported by the sync endpoint.
|
|
3494
|
+
* Get a single external account link
|
|
3117
3495
|
* @param data The data for the request.
|
|
3496
|
+
* @param data.id
|
|
3118
3497
|
* @param data.region Region code for tenant context
|
|
3119
|
-
* @returns
|
|
3498
|
+
* @returns ExternalAccountLinkResponseDto Link retrieved.
|
|
3120
3499
|
* @throws ApiError
|
|
3121
3500
|
*/
|
|
3122
|
-
public static
|
|
3123
|
-
data:
|
|
3124
|
-
): CancelablePromise<
|
|
3501
|
+
public static externalAccountLinkControllerFindOne(
|
|
3502
|
+
data: ExternalAccountLinkControllerFindOneData
|
|
3503
|
+
): CancelablePromise<ExternalAccountLinkControllerFindOneResponse> {
|
|
3125
3504
|
return __request(OpenAPI, {
|
|
3126
3505
|
method: 'GET',
|
|
3127
|
-
url: '/api/v1/{region}/bean/
|
|
3506
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3128
3507
|
path: {
|
|
3508
|
+
id: data.id,
|
|
3129
3509
|
region: data.region
|
|
3130
3510
|
},
|
|
3131
3511
|
errors: {
|
|
3132
|
-
|
|
3512
|
+
422: 'Link not found or not owned by the user.'
|
|
3133
3513
|
}
|
|
3134
3514
|
});
|
|
3135
3515
|
}
|
|
3136
3516
|
|
|
3137
3517
|
/**
|
|
3138
|
-
*
|
|
3139
|
-
* Returns whether a specific provider is supported.
|
|
3518
|
+
* Soft-delete (disconnect) an external account link
|
|
3140
3519
|
* @param data The data for the request.
|
|
3141
|
-
* @param data.
|
|
3520
|
+
* @param data.id
|
|
3142
3521
|
* @param data.region Region code for tenant context
|
|
3143
|
-
* @returns
|
|
3522
|
+
* @returns void Link soft-deleted; historical transactions are unaffected.
|
|
3144
3523
|
* @throws ApiError
|
|
3145
3524
|
*/
|
|
3146
|
-
public static
|
|
3147
|
-
data:
|
|
3148
|
-
): CancelablePromise<
|
|
3525
|
+
public static externalAccountLinkControllerRemove(
|
|
3526
|
+
data: ExternalAccountLinkControllerRemoveData
|
|
3527
|
+
): CancelablePromise<ExternalAccountLinkControllerRemoveResponse> {
|
|
3149
3528
|
return __request(OpenAPI, {
|
|
3150
|
-
method: '
|
|
3151
|
-
url: '/api/v1/{region}/bean/
|
|
3529
|
+
method: 'DELETE',
|
|
3530
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3152
3531
|
path: {
|
|
3153
|
-
|
|
3532
|
+
id: data.id,
|
|
3154
3533
|
region: data.region
|
|
3155
|
-
},
|
|
3156
|
-
errors: {
|
|
3157
|
-
401: 'Missing or invalid authentication'
|
|
3158
3534
|
}
|
|
3159
3535
|
});
|
|
3160
3536
|
}
|
|
@@ -3318,361 +3694,173 @@ export class BeanNlpService {
|
|
|
3318
3694
|
}
|
|
3319
3695
|
}
|
|
3320
3696
|
|
|
3321
|
-
export class
|
|
3322
|
-
/**
|
|
3323
|
-
* Get net worth overview
|
|
3324
|
-
* Returns total net worth with breakdown of assets and liabilities
|
|
3325
|
-
* @param data The data for the request.
|
|
3326
|
-
* @param data.region Region code for tenant context
|
|
3327
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3328
|
-
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3329
|
-
* @throws ApiError
|
|
3330
|
-
*/
|
|
3331
|
-
public static dashboardControllerGetNetWorth(
|
|
3332
|
-
data: DashboardControllerGetNetWorthData
|
|
3333
|
-
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3334
|
-
return __request(OpenAPI, {
|
|
3335
|
-
method: 'GET',
|
|
3336
|
-
url: '/api/v1/{region}/dashboard/net-worth',
|
|
3337
|
-
path: {
|
|
3338
|
-
region: data.region
|
|
3339
|
-
},
|
|
3340
|
-
query: {
|
|
3341
|
-
date: data.date
|
|
3342
|
-
},
|
|
3343
|
-
errors: {
|
|
3344
|
-
401: 'User not authenticated'
|
|
3345
|
-
}
|
|
3346
|
-
});
|
|
3347
|
-
}
|
|
3348
|
-
|
|
3349
|
-
/**
|
|
3350
|
-
* Get accounts grouped by platform
|
|
3351
|
-
* Returns accounts with balances grouped by financial platform
|
|
3352
|
-
* @param data The data for the request.
|
|
3353
|
-
* @param data.region Region code for tenant context
|
|
3354
|
-
* @param data.groupBy Grouping strategy
|
|
3355
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3356
|
-
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3357
|
-
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3358
|
-
* @throws ApiError
|
|
3359
|
-
*/
|
|
3360
|
-
public static dashboardControllerGetAccounts(
|
|
3361
|
-
data: DashboardControllerGetAccountsData
|
|
3362
|
-
): CancelablePromise<DashboardControllerGetAccountsResponse> {
|
|
3363
|
-
return __request(OpenAPI, {
|
|
3364
|
-
method: 'GET',
|
|
3365
|
-
url: '/api/v1/{region}/dashboard/accounts',
|
|
3366
|
-
path: {
|
|
3367
|
-
region: data.region
|
|
3368
|
-
},
|
|
3369
|
-
query: {
|
|
3370
|
-
groupBy: data.groupBy,
|
|
3371
|
-
date: data.date,
|
|
3372
|
-
accountId: data.accountId
|
|
3373
|
-
},
|
|
3374
|
-
errors: {
|
|
3375
|
-
401: 'User not authenticated'
|
|
3376
|
-
}
|
|
3377
|
-
});
|
|
3378
|
-
}
|
|
3379
|
-
|
|
3380
|
-
/**
|
|
3381
|
-
* Get cash flow summary
|
|
3382
|
-
* Returns income, expenses, and savings for a monthly period
|
|
3383
|
-
* @param data The data for the request.
|
|
3384
|
-
* @param data.period Period in YYYY-MM format
|
|
3385
|
-
* @param data.region Region code for tenant context
|
|
3386
|
-
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3387
|
-
* @throws ApiError
|
|
3388
|
-
*/
|
|
3389
|
-
public static dashboardControllerGetCashFlow(
|
|
3390
|
-
data: DashboardControllerGetCashFlowData
|
|
3391
|
-
): CancelablePromise<DashboardControllerGetCashFlowResponse> {
|
|
3392
|
-
return __request(OpenAPI, {
|
|
3393
|
-
method: 'GET',
|
|
3394
|
-
url: '/api/v1/{region}/dashboard/cash-flow',
|
|
3395
|
-
path: {
|
|
3396
|
-
region: data.region
|
|
3397
|
-
},
|
|
3398
|
-
query: {
|
|
3399
|
-
period: data.period
|
|
3400
|
-
},
|
|
3401
|
-
errors: {
|
|
3402
|
-
400: 'Invalid period format',
|
|
3403
|
-
401: 'User not authenticated'
|
|
3404
|
-
}
|
|
3405
|
-
});
|
|
3406
|
-
}
|
|
3407
|
-
|
|
3408
|
-
/**
|
|
3409
|
-
* Get expenses/income grouped by functional category
|
|
3410
|
-
* 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)
|
|
3411
|
-
* @param data The data for the request.
|
|
3412
|
-
* @param data.region Region code for tenant context
|
|
3413
|
-
* @param data.groupBy Grouping strategy
|
|
3414
|
-
* @param data.period Time window (1m = current calendar month)
|
|
3415
|
-
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
3416
|
-
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3417
|
-
* @throws ApiError
|
|
3418
|
-
*/
|
|
3419
|
-
public static dashboardControllerGetExpenses(
|
|
3420
|
-
data: DashboardControllerGetExpensesData
|
|
3421
|
-
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3422
|
-
return __request(OpenAPI, {
|
|
3423
|
-
method: 'GET',
|
|
3424
|
-
url: '/api/v1/{region}/dashboard/expenses',
|
|
3425
|
-
path: {
|
|
3426
|
-
region: data.region
|
|
3427
|
-
},
|
|
3428
|
-
query: {
|
|
3429
|
-
groupBy: data.groupBy,
|
|
3430
|
-
period: data.period,
|
|
3431
|
-
flow: data.flow
|
|
3432
|
-
},
|
|
3433
|
-
errors: {
|
|
3434
|
-
400: 'Invalid groupBy or period',
|
|
3435
|
-
401: 'User not authenticated'
|
|
3436
|
-
}
|
|
3437
|
-
});
|
|
3438
|
-
}
|
|
3439
|
-
}
|
|
3440
|
-
|
|
3441
|
-
export class InvestmentService {
|
|
3697
|
+
export class BeanPlatformsService {
|
|
3442
3698
|
/**
|
|
3443
|
-
* Get
|
|
3444
|
-
*
|
|
3445
|
-
* @param data The data for the request.
|
|
3446
|
-
* @param data.region Region code for tenant context
|
|
3447
|
-
* @param data.asOf As-of date (ISO 8601), defaults to today
|
|
3448
|
-
* @param data.accountId Scope to a single account
|
|
3449
|
-
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
3450
|
-
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3699
|
+
* Get all platforms with statistics
|
|
3700
|
+
* @returns unknown List of platforms with binding and account counts
|
|
3451
3701
|
* @throws ApiError
|
|
3452
3702
|
*/
|
|
3453
|
-
public static
|
|
3454
|
-
data: HoldingPnlControllerGetHoldingPnlData
|
|
3455
|
-
): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
|
|
3703
|
+
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
3456
3704
|
return __request(OpenAPI, {
|
|
3457
3705
|
method: 'GET',
|
|
3458
|
-
url: '/api/v1/
|
|
3459
|
-
path: {
|
|
3460
|
-
region: data.region
|
|
3461
|
-
},
|
|
3462
|
-
query: {
|
|
3463
|
-
asOf: data.asOf,
|
|
3464
|
-
accountId: data.accountId,
|
|
3465
|
-
method: data.method
|
|
3466
|
-
},
|
|
3467
|
-
errors: {
|
|
3468
|
-
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
3469
|
-
401: 'User not authenticated'
|
|
3470
|
-
}
|
|
3706
|
+
url: '/api/v1/bean/platforms'
|
|
3471
3707
|
});
|
|
3472
3708
|
}
|
|
3473
|
-
}
|
|
3474
3709
|
|
|
3475
|
-
export class BeanPricesService {
|
|
3476
3710
|
/**
|
|
3477
|
-
* Create a new
|
|
3478
|
-
* Creates a new price entry for the authenticated user
|
|
3711
|
+
* Create a new platform
|
|
3479
3712
|
* @param data The data for the request.
|
|
3480
|
-
* @param data.region Region code for tenant context
|
|
3481
3713
|
* @param data.requestBody
|
|
3482
|
-
* @returns
|
|
3714
|
+
* @returns unknown Platform created successfully
|
|
3483
3715
|
* @throws ApiError
|
|
3484
3716
|
*/
|
|
3485
|
-
public static
|
|
3486
|
-
data:
|
|
3487
|
-
): CancelablePromise<
|
|
3717
|
+
public static platformControllerCreate(
|
|
3718
|
+
data: PlatformControllerCreateData
|
|
3719
|
+
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
3488
3720
|
return __request(OpenAPI, {
|
|
3489
3721
|
method: 'POST',
|
|
3490
|
-
url: '/api/v1/
|
|
3491
|
-
path: {
|
|
3492
|
-
region: data.region
|
|
3493
|
-
},
|
|
3722
|
+
url: '/api/v1/bean/platforms',
|
|
3494
3723
|
body: data.requestBody,
|
|
3495
3724
|
mediaType: 'application/json',
|
|
3496
3725
|
errors: {
|
|
3497
|
-
|
|
3498
|
-
409: 'Price already exists for this currency pair and date'
|
|
3726
|
+
409: 'Platform already exists'
|
|
3499
3727
|
}
|
|
3500
3728
|
});
|
|
3501
3729
|
}
|
|
3502
3730
|
|
|
3503
3731
|
/**
|
|
3504
|
-
*
|
|
3505
|
-
*
|
|
3506
|
-
* @param data The data for the request.
|
|
3507
|
-
* @param data.region Region code for tenant context
|
|
3508
|
-
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
3509
|
-
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
3510
|
-
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
3511
|
-
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
3512
|
-
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
3513
|
-
* @param data.page Page number for pagination (default: 1)
|
|
3514
|
-
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
3515
|
-
* @returns PriceListResponseDto Prices retrieved successfully
|
|
3732
|
+
* Get platform list for current user
|
|
3733
|
+
* @returns PlatformListItemDto List of platforms with user binding status
|
|
3516
3734
|
* @throws ApiError
|
|
3517
3735
|
*/
|
|
3518
|
-
public static
|
|
3519
|
-
data: PriceControllerFindAllData
|
|
3520
|
-
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
3736
|
+
public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
3521
3737
|
return __request(OpenAPI, {
|
|
3522
3738
|
method: 'GET',
|
|
3523
|
-
url: '/api/v1/
|
|
3524
|
-
path: {
|
|
3525
|
-
region: data.region
|
|
3526
|
-
},
|
|
3527
|
-
query: {
|
|
3528
|
-
currency: data.currency,
|
|
3529
|
-
quoteCurrency: data.quoteCurrency,
|
|
3530
|
-
dateFrom: data.dateFrom,
|
|
3531
|
-
dateTo: data.dateTo,
|
|
3532
|
-
search: data.search,
|
|
3533
|
-
page: data.page,
|
|
3534
|
-
limit: data.limit
|
|
3535
|
-
}
|
|
3739
|
+
url: '/api/v1/bean/platforms/list'
|
|
3536
3740
|
});
|
|
3537
3741
|
}
|
|
3538
3742
|
|
|
3539
3743
|
/**
|
|
3540
|
-
*
|
|
3541
|
-
* Returns a single price entry by its ID
|
|
3744
|
+
* Match platforms by name or alias
|
|
3542
3745
|
* @param data The data for the request.
|
|
3543
|
-
* @param data.
|
|
3544
|
-
* @param data.region Region code for
|
|
3545
|
-
* @returns
|
|
3746
|
+
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
3747
|
+
* @param data.region Region code for category override lookup
|
|
3748
|
+
* @returns PlatformMatchResponseDto Matching platforms with overall match type and truncation flag
|
|
3546
3749
|
* @throws ApiError
|
|
3547
3750
|
*/
|
|
3548
|
-
public static
|
|
3549
|
-
data:
|
|
3550
|
-
): CancelablePromise<
|
|
3751
|
+
public static platformControllerMatchPlatforms(
|
|
3752
|
+
data: PlatformControllerMatchPlatformsData
|
|
3753
|
+
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
3551
3754
|
return __request(OpenAPI, {
|
|
3552
3755
|
method: 'GET',
|
|
3553
|
-
url: '/api/v1/
|
|
3554
|
-
|
|
3555
|
-
|
|
3756
|
+
url: '/api/v1/bean/platforms/match',
|
|
3757
|
+
query: {
|
|
3758
|
+
q: data.q,
|
|
3556
3759
|
region: data.region
|
|
3557
|
-
},
|
|
3558
|
-
errors: {
|
|
3559
|
-
404: 'Price not found'
|
|
3560
3760
|
}
|
|
3561
3761
|
});
|
|
3562
3762
|
}
|
|
3563
3763
|
|
|
3564
3764
|
/**
|
|
3565
|
-
* Update a
|
|
3566
|
-
* Updates an existing price entry
|
|
3765
|
+
* Update a platform
|
|
3567
3766
|
* @param data The data for the request.
|
|
3568
|
-
* @param data.id
|
|
3569
|
-
* @param data.region Region code for tenant context
|
|
3767
|
+
* @param data.id Platform ID
|
|
3570
3768
|
* @param data.requestBody
|
|
3571
|
-
* @returns
|
|
3769
|
+
* @returns unknown Platform updated successfully
|
|
3572
3770
|
* @throws ApiError
|
|
3573
3771
|
*/
|
|
3574
|
-
public static
|
|
3575
|
-
data:
|
|
3576
|
-
): CancelablePromise<
|
|
3772
|
+
public static platformControllerUpdate(
|
|
3773
|
+
data: PlatformControllerUpdateData
|
|
3774
|
+
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
3577
3775
|
return __request(OpenAPI, {
|
|
3578
3776
|
method: 'PUT',
|
|
3579
|
-
url: '/api/v1/
|
|
3777
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3580
3778
|
path: {
|
|
3581
|
-
id: data.id
|
|
3582
|
-
region: data.region
|
|
3779
|
+
id: data.id
|
|
3583
3780
|
},
|
|
3584
3781
|
body: data.requestBody,
|
|
3585
3782
|
mediaType: 'application/json',
|
|
3586
3783
|
errors: {
|
|
3587
|
-
404: '
|
|
3588
|
-
409: 'Updated price conflicts with existing price'
|
|
3784
|
+
404: 'Platform not found'
|
|
3589
3785
|
}
|
|
3590
3786
|
});
|
|
3591
3787
|
}
|
|
3592
3788
|
|
|
3593
3789
|
/**
|
|
3594
|
-
* Delete a
|
|
3595
|
-
* Deletes a price entry (hard delete)
|
|
3790
|
+
* Delete a platform
|
|
3596
3791
|
* @param data The data for the request.
|
|
3597
|
-
* @param data.id
|
|
3598
|
-
* @
|
|
3599
|
-
* @returns void Price deleted successfully
|
|
3792
|
+
* @param data.id Platform ID
|
|
3793
|
+
* @returns void Platform deleted successfully
|
|
3600
3794
|
* @throws ApiError
|
|
3601
3795
|
*/
|
|
3602
|
-
public static
|
|
3603
|
-
data:
|
|
3604
|
-
): CancelablePromise<
|
|
3796
|
+
public static platformControllerDelete(
|
|
3797
|
+
data: PlatformControllerDeleteData
|
|
3798
|
+
): CancelablePromise<PlatformControllerDeleteResponse> {
|
|
3605
3799
|
return __request(OpenAPI, {
|
|
3606
3800
|
method: 'DELETE',
|
|
3607
|
-
url: '/api/v1/
|
|
3801
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3608
3802
|
path: {
|
|
3609
|
-
id: data.id
|
|
3610
|
-
region: data.region
|
|
3803
|
+
id: data.id
|
|
3611
3804
|
},
|
|
3612
3805
|
errors: {
|
|
3613
|
-
404: '
|
|
3806
|
+
404: 'Platform not found'
|
|
3614
3807
|
}
|
|
3615
3808
|
});
|
|
3616
3809
|
}
|
|
3810
|
+
}
|
|
3617
3811
|
|
|
3812
|
+
export class DashboardService {
|
|
3618
3813
|
/**
|
|
3619
|
-
*
|
|
3620
|
-
*
|
|
3814
|
+
* Get net worth overview
|
|
3815
|
+
* Returns total net worth with breakdown of assets and liabilities
|
|
3621
3816
|
* @param data The data for the request.
|
|
3622
3817
|
* @param data.region Region code for tenant context
|
|
3623
|
-
* @param data.
|
|
3624
|
-
* @returns
|
|
3818
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3819
|
+
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3625
3820
|
* @throws ApiError
|
|
3626
3821
|
*/
|
|
3627
|
-
public static
|
|
3628
|
-
data:
|
|
3629
|
-
): CancelablePromise<
|
|
3822
|
+
public static dashboardControllerGetNetWorth(
|
|
3823
|
+
data: DashboardControllerGetNetWorthData
|
|
3824
|
+
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3630
3825
|
return __request(OpenAPI, {
|
|
3631
|
-
method: '
|
|
3632
|
-
url: '/api/v1/{region}/
|
|
3826
|
+
method: 'GET',
|
|
3827
|
+
url: '/api/v1/{region}/dashboard/net-worth',
|
|
3633
3828
|
path: {
|
|
3634
3829
|
region: data.region
|
|
3635
3830
|
},
|
|
3636
|
-
|
|
3637
|
-
|
|
3831
|
+
query: {
|
|
3832
|
+
date: data.date
|
|
3833
|
+
},
|
|
3834
|
+
errors: {
|
|
3835
|
+
401: 'User not authenticated'
|
|
3836
|
+
}
|
|
3638
3837
|
});
|
|
3639
3838
|
}
|
|
3640
|
-
}
|
|
3641
3839
|
|
|
3642
|
-
export class ReportingService {
|
|
3643
3840
|
/**
|
|
3644
|
-
* Get
|
|
3645
|
-
*
|
|
3646
|
-
* Returns time series data of portfolio net worth.
|
|
3647
|
-
*
|
|
3648
|
-
* **Multi-currency Support:**
|
|
3649
|
-
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
3650
|
-
* - `byCurrency` - Separate time series grouped by currency
|
|
3651
|
-
* - `warnings` - Exchange rate warnings if conversion failed
|
|
3652
|
-
*
|
|
3653
|
-
* **Parameters:**
|
|
3654
|
-
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
3655
|
-
* - `granularity`: Data granularity (day, week, month)
|
|
3656
|
-
*
|
|
3841
|
+
* Get accounts grouped by platform
|
|
3842
|
+
* Returns accounts with balances grouped by financial platform
|
|
3657
3843
|
* @param data The data for the request.
|
|
3658
3844
|
* @param data.region Region code for tenant context
|
|
3659
|
-
* @param data.
|
|
3660
|
-
* @param data.
|
|
3661
|
-
* @
|
|
3845
|
+
* @param data.groupBy Grouping strategy
|
|
3846
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3847
|
+
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3848
|
+
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3662
3849
|
* @throws ApiError
|
|
3663
3850
|
*/
|
|
3664
|
-
public static
|
|
3665
|
-
data:
|
|
3666
|
-
): CancelablePromise<
|
|
3851
|
+
public static dashboardControllerGetAccounts(
|
|
3852
|
+
data: DashboardControllerGetAccountsData
|
|
3853
|
+
): CancelablePromise<DashboardControllerGetAccountsResponse> {
|
|
3667
3854
|
return __request(OpenAPI, {
|
|
3668
3855
|
method: 'GET',
|
|
3669
|
-
url: '/api/v1/{region}/
|
|
3856
|
+
url: '/api/v1/{region}/dashboard/accounts',
|
|
3670
3857
|
path: {
|
|
3671
3858
|
region: data.region
|
|
3672
3859
|
},
|
|
3673
3860
|
query: {
|
|
3674
|
-
|
|
3675
|
-
|
|
3861
|
+
groupBy: data.groupBy,
|
|
3862
|
+
date: data.date,
|
|
3863
|
+
accountId: data.accountId
|
|
3676
3864
|
},
|
|
3677
3865
|
errors: {
|
|
3678
3866
|
401: 'User not authenticated'
|
|
@@ -3681,116 +3869,95 @@ export class ReportingService {
|
|
|
3681
3869
|
}
|
|
3682
3870
|
|
|
3683
3871
|
/**
|
|
3684
|
-
* Get cash
|
|
3685
|
-
*
|
|
3686
|
-
* Monthly income / expense / netSavings over a fixed N-month window
|
|
3687
|
-
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
3688
|
-
*
|
|
3689
|
-
* **Parameters:**
|
|
3690
|
-
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
3691
|
-
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
3692
|
-
*
|
|
3872
|
+
* Get cash flow summary
|
|
3873
|
+
* Returns income, expenses, and savings for a monthly period
|
|
3693
3874
|
* @param data The data for the request.
|
|
3875
|
+
* @param data.period Period in YYYY-MM format
|
|
3694
3876
|
* @param data.region Region code for tenant context
|
|
3695
|
-
* @
|
|
3696
|
-
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
3697
|
-
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
3877
|
+
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3698
3878
|
* @throws ApiError
|
|
3699
3879
|
*/
|
|
3700
|
-
public static
|
|
3701
|
-
data:
|
|
3702
|
-
): CancelablePromise<
|
|
3880
|
+
public static dashboardControllerGetCashFlow(
|
|
3881
|
+
data: DashboardControllerGetCashFlowData
|
|
3882
|
+
): CancelablePromise<DashboardControllerGetCashFlowResponse> {
|
|
3703
3883
|
return __request(OpenAPI, {
|
|
3704
3884
|
method: 'GET',
|
|
3705
|
-
url: '/api/v1/{region}/
|
|
3885
|
+
url: '/api/v1/{region}/dashboard/cash-flow',
|
|
3706
3886
|
path: {
|
|
3707
3887
|
region: data.region
|
|
3708
3888
|
},
|
|
3709
3889
|
query: {
|
|
3710
|
-
period: data.period
|
|
3711
|
-
granularity: data.granularity
|
|
3890
|
+
period: data.period
|
|
3712
3891
|
},
|
|
3713
3892
|
errors: {
|
|
3893
|
+
400: 'Invalid period format',
|
|
3714
3894
|
401: 'User not authenticated'
|
|
3715
3895
|
}
|
|
3716
3896
|
});
|
|
3717
3897
|
}
|
|
3718
3898
|
|
|
3719
3899
|
/**
|
|
3720
|
-
*
|
|
3721
|
-
*
|
|
3722
|
-
* Manually generate a portfolio snapshot for a specific date.
|
|
3723
|
-
*
|
|
3724
|
-
* **Multi-currency Support:**
|
|
3725
|
-
* - Fetches balances grouped by currency
|
|
3726
|
-
* - Uses user's baseCurrency setting for conversion
|
|
3727
|
-
* - Stores exchange rates and warnings
|
|
3728
|
-
*
|
|
3729
|
-
* **Use Cases:**
|
|
3730
|
-
* - Testing snapshot generation
|
|
3731
|
-
* - Force regeneration after data correction
|
|
3732
|
-
* - Initial setup for new users
|
|
3733
|
-
*
|
|
3900
|
+
* Get expenses/income grouped by functional category
|
|
3901
|
+
* 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)
|
|
3734
3902
|
* @param data The data for the request.
|
|
3735
3903
|
* @param data.region Region code for tenant context
|
|
3736
|
-
* @param data.
|
|
3737
|
-
* @
|
|
3904
|
+
* @param data.groupBy Grouping strategy
|
|
3905
|
+
* @param data.period Time window (1m = current calendar month)
|
|
3906
|
+
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
3907
|
+
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3738
3908
|
* @throws ApiError
|
|
3739
3909
|
*/
|
|
3740
|
-
public static
|
|
3741
|
-
data:
|
|
3742
|
-
): CancelablePromise<
|
|
3910
|
+
public static dashboardControllerGetExpenses(
|
|
3911
|
+
data: DashboardControllerGetExpensesData
|
|
3912
|
+
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3743
3913
|
return __request(OpenAPI, {
|
|
3744
|
-
method: '
|
|
3745
|
-
url: '/api/v1/{region}/
|
|
3914
|
+
method: 'GET',
|
|
3915
|
+
url: '/api/v1/{region}/dashboard/expenses',
|
|
3746
3916
|
path: {
|
|
3747
3917
|
region: data.region
|
|
3748
3918
|
},
|
|
3749
|
-
|
|
3750
|
-
|
|
3919
|
+
query: {
|
|
3920
|
+
groupBy: data.groupBy,
|
|
3921
|
+
period: data.period,
|
|
3922
|
+
flow: data.flow
|
|
3923
|
+
},
|
|
3751
3924
|
errors: {
|
|
3752
|
-
400: 'Invalid
|
|
3925
|
+
400: 'Invalid groupBy or period',
|
|
3753
3926
|
401: 'User not authenticated'
|
|
3754
3927
|
}
|
|
3755
3928
|
});
|
|
3756
3929
|
}
|
|
3930
|
+
}
|
|
3757
3931
|
|
|
3932
|
+
export class InvestmentService {
|
|
3758
3933
|
/**
|
|
3759
|
-
*
|
|
3760
|
-
*
|
|
3761
|
-
* Generate snapshots for a date range (historical data backfill).
|
|
3762
|
-
*
|
|
3763
|
-
* **Multi-currency Support:**
|
|
3764
|
-
* - Each snapshot includes multi-currency data
|
|
3765
|
-
* - Uses exchange rates available at generation time
|
|
3766
|
-
* - Warnings stored for missing exchange rates
|
|
3767
|
-
*
|
|
3768
|
-
* **Best Practices:**
|
|
3769
|
-
* - Use for initial setup after account configuration
|
|
3770
|
-
* - Run during low-traffic periods for large date ranges
|
|
3771
|
-
* - Existing snapshots are skipped (not regenerated)
|
|
3772
|
-
*
|
|
3934
|
+
* Get per-holding unrealized + realized P&L
|
|
3935
|
+
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3773
3936
|
* @param data The data for the request.
|
|
3774
3937
|
* @param data.region Region code for tenant context
|
|
3775
|
-
* @param data.
|
|
3776
|
-
* @
|
|
3938
|
+
* @param data.asOf As-of date (ISO 8601), defaults to today
|
|
3939
|
+
* @param data.accountId Scope to a single account
|
|
3940
|
+
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
3941
|
+
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3777
3942
|
* @throws ApiError
|
|
3778
3943
|
*/
|
|
3779
|
-
public static
|
|
3780
|
-
data:
|
|
3781
|
-
): CancelablePromise<
|
|
3944
|
+
public static holdingPnlControllerGetHoldingPnl(
|
|
3945
|
+
data: HoldingPnlControllerGetHoldingPnlData
|
|
3946
|
+
): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
|
|
3782
3947
|
return __request(OpenAPI, {
|
|
3783
|
-
method: '
|
|
3784
|
-
url: '/api/v1/{region}/
|
|
3948
|
+
method: 'GET',
|
|
3949
|
+
url: '/api/v1/{region}/investment/holdings/pnl',
|
|
3785
3950
|
path: {
|
|
3786
3951
|
region: data.region
|
|
3787
3952
|
},
|
|
3788
|
-
|
|
3789
|
-
|
|
3953
|
+
query: {
|
|
3954
|
+
asOf: data.asOf,
|
|
3955
|
+
accountId: data.accountId,
|
|
3956
|
+
method: data.method
|
|
3957
|
+
},
|
|
3790
3958
|
errors: {
|
|
3791
|
-
400: 'Invalid date format or
|
|
3792
|
-
401: 'User not authenticated'
|
|
3793
|
-
409: 'Backfill already in progress for this user'
|
|
3959
|
+
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
3960
|
+
401: 'User not authenticated'
|
|
3794
3961
|
}
|
|
3795
3962
|
});
|
|
3796
3963
|
}
|
|
@@ -3819,7 +3986,7 @@ export class AuthService {
|
|
|
3819
3986
|
* Anonymous login with access token
|
|
3820
3987
|
* @param data The data for the request.
|
|
3821
3988
|
* @param data.requestBody
|
|
3822
|
-
* @returns
|
|
3989
|
+
* @returns AnonymousLoginResponseDto Login successful
|
|
3823
3990
|
* @throws ApiError
|
|
3824
3991
|
*/
|
|
3825
3992
|
public static authControllerAccessTokenLogin(
|
|
@@ -4006,3 +4173,53 @@ export class InfoService {
|
|
|
4006
4173
|
});
|
|
4007
4174
|
}
|
|
4008
4175
|
}
|
|
4176
|
+
|
|
4177
|
+
export class MarketDataService {
|
|
4178
|
+
/**
|
|
4179
|
+
* Search market symbols by name or code
|
|
4180
|
+
* Ranked search over the openbb catalog. Empty `q` returns [].
|
|
4181
|
+
* @param data The data for the request.
|
|
4182
|
+
* @param data.q Search term — matched against symbol and instrument name. Empty string returns [].
|
|
4183
|
+
* @param data.limit Maximum number of results (clamped 1..50)
|
|
4184
|
+
* @param data.exchange Filter by exchange code (e.g. US, HK, SS, SZ)
|
|
4185
|
+
* @param data.assetType Filter by OpenBB asset_type (e.g. stock, etf)
|
|
4186
|
+
* @returns SymbolSearchResultDto Ranked search results
|
|
4187
|
+
* @throws ApiError
|
|
4188
|
+
*/
|
|
4189
|
+
public static symbolControllerSearch(
|
|
4190
|
+
data: SymbolControllerSearchData
|
|
4191
|
+
): CancelablePromise<SymbolControllerSearchResponse> {
|
|
4192
|
+
return __request(OpenAPI, {
|
|
4193
|
+
method: 'GET',
|
|
4194
|
+
url: '/api/v1/market/symbols/search',
|
|
4195
|
+
query: {
|
|
4196
|
+
q: data.q,
|
|
4197
|
+
limit: data.limit,
|
|
4198
|
+
exchange: data.exchange,
|
|
4199
|
+
assetType: data.assetType
|
|
4200
|
+
}
|
|
4201
|
+
});
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
/**
|
|
4205
|
+
* Get a market symbol quote
|
|
4206
|
+
* @param data The data for the request.
|
|
4207
|
+
* @param data.symbol
|
|
4208
|
+
* @returns SymbolQuoteDto Symbol quote
|
|
4209
|
+
* @throws ApiError
|
|
4210
|
+
*/
|
|
4211
|
+
public static symbolControllerGetQuote(
|
|
4212
|
+
data: SymbolControllerGetQuoteData
|
|
4213
|
+
): CancelablePromise<SymbolControllerGetQuoteResponse> {
|
|
4214
|
+
return __request(OpenAPI, {
|
|
4215
|
+
method: 'GET',
|
|
4216
|
+
url: '/api/v1/market/symbols/{symbol}/quote',
|
|
4217
|
+
path: {
|
|
4218
|
+
symbol: data.symbol
|
|
4219
|
+
},
|
|
4220
|
+
errors: {
|
|
4221
|
+
404: 'Symbol not found in the openbb catalog'
|
|
4222
|
+
}
|
|
4223
|
+
});
|
|
4224
|
+
}
|
|
4225
|
+
}
|