@firela/api-types 0.0.0-canary.7cd70834 → 0.0.0-canary.830b29d0

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.
@@ -17,23 +17,31 @@ import type {
17
17
  AccountControllerCloseResponse,
18
18
  AccountControllerReopenData,
19
19
  AccountControllerReopenResponse,
20
+ AccountStandardsControllerGetTemplatesData,
21
+ AccountStandardsControllerGetTemplatesResponse,
22
+ AccountStandardsControllerGetTemplateMetadataData,
23
+ AccountStandardsControllerGetTemplateMetadataResponse,
24
+ AccountStandardsControllerGetRegionsData,
25
+ AccountStandardsControllerGetRegionsResponse,
20
26
  TransactionControllerCreateData,
21
27
  TransactionControllerCreateResponse,
22
28
  TransactionControllerListData,
23
29
  TransactionControllerListResponse,
24
- TransactionControllerData,
25
- TransactionControllerResponse,
30
+ TransactionControllerCreateBatchData,
31
+ TransactionControllerCreateBatchResponse,
32
+ TransactionControllerCorrectData,
33
+ TransactionControllerCorrectResponse,
34
+ TransactionControllerSuggestTagsData,
35
+ TransactionControllerSuggestTagsResponse,
26
36
  TransactionControllerGetDetailData,
27
37
  TransactionControllerGetDetailResponse,
28
38
  TransactionControllerUpdateData,
29
39
  TransactionControllerUpdateResponse,
30
- TransactionController1Data,
31
- TransactionController1Response,
32
- AccountStandardsControllerGetTemplatesData,
33
- AccountStandardsControllerGetTemplatesResponse,
34
- AccountStandardsControllerGetRegionsResponse,
40
+ TransactionControllerDeleteData,
41
+ TransactionControllerDeleteResponse,
35
42
  BalanceControllerGetBalanceData,
36
43
  BalanceControllerGetBalanceResponse,
44
+ BalanceControllerGetMultiCurrencyBalanceData,
37
45
  BalanceControllerGetMultiCurrencyBalanceResponse,
38
46
  ReviewControllerFindAllData,
39
47
  ReviewControllerFindAllResponse,
@@ -41,13 +49,14 @@ import type {
41
49
  ReviewControllerGetStatsResponse,
42
50
  ReviewControllerFindOneData,
43
51
  ReviewControllerFindOneResponse,
44
- ReviewControllerData,
45
- ReviewControllerResponse,
46
- ReviewController1Data,
47
- ReviewController1Response,
48
- ReviewController2Data,
49
- ReviewController2Response,
50
- PayeeControllerResponse,
52
+ ReviewControllerResolveData,
53
+ ReviewControllerResolveResponse,
54
+ ReviewControllerUndoData,
55
+ ReviewControllerUndoResponse,
56
+ ReviewControllerBatchResolveData,
57
+ ReviewControllerBatchResolveResponse,
58
+ PayeeControllerCreateData,
59
+ PayeeControllerCreateResponse,
51
60
  PayeeControllerFindAllData,
52
61
  PayeeControllerFindAllResponse,
53
62
  PayeeControllerAutocompleteData,
@@ -56,43 +65,50 @@ import type {
56
65
  PayeeControllerGetTopPayeesResponse,
57
66
  PayeeControllerFindOneData,
58
67
  PayeeControllerFindOneResponse,
59
- PayeeController1Response,
60
- PayeeController2Response,
61
- PayeeProfileAdminControllerResponse,
68
+ PayeeControllerUpdateData,
69
+ PayeeControllerUpdateResponse,
70
+ PayeeControllerDeleteData,
71
+ PayeeControllerDeleteResponse,
72
+ PayeeProfileAdminControllerCreateData,
73
+ PayeeProfileAdminControllerCreateResponse,
62
74
  PayeeProfileAdminControllerFindAllData,
63
75
  PayeeProfileAdminControllerFindAllResponse,
64
76
  PayeeProfileAdminControllerFindOneData,
65
77
  PayeeProfileAdminControllerFindOneResponse,
66
- PayeeProfileAdminController1Response,
67
- PayeeProfileAdminController2Response,
68
- PayeeProfileAdminController3Response,
69
- PayeeProfileAdminController4Response,
70
- CommodityControllerData,
71
- CommodityControllerResponse,
78
+ PayeeProfileAdminControllerUpdateData,
79
+ PayeeProfileAdminControllerUpdateResponse,
80
+ PayeeProfileAdminControllerDeleteData,
81
+ PayeeProfileAdminControllerDeleteResponse,
82
+ PayeeProfileAdminControllerVerifyData,
83
+ PayeeProfileAdminControllerVerifyResponse,
84
+ PayeeProfileAdminControllerUnverifyData,
85
+ PayeeProfileAdminControllerUnverifyResponse,
86
+ CommodityControllerCreateData,
87
+ CommodityControllerCreateResponse,
72
88
  CommodityControllerFindAllData,
73
89
  CommodityControllerFindAllResponse,
74
90
  CommodityControllerFindOneData,
75
91
  CommodityControllerFindOneResponse,
76
- CommodityController1Data,
77
- CommodityController1Response,
78
- CommodityController2Data,
79
- CommodityController2Response,
80
- CommodityController3Data,
81
- CommodityController3Response,
82
- CommodityController4Data,
83
- CommodityController4Response,
84
- RecurringRuleControllerData,
85
- RecurringRuleControllerResponse,
92
+ CommodityControllerUpdateData,
93
+ CommodityControllerUpdateResponse,
94
+ CommodityControllerDeleteData,
95
+ CommodityControllerDeleteResponse,
96
+ CommodityControllerGetOrCreateData,
97
+ CommodityControllerGetOrCreateResponse,
98
+ CommodityControllerBulkCreateData,
99
+ CommodityControllerBulkCreateResponse,
100
+ RecurringRuleControllerCreateData,
101
+ RecurringRuleControllerCreateResponse,
86
102
  RecurringRuleControllerFindAllData,
87
103
  RecurringRuleControllerFindAllResponse,
88
- RecurringRuleController1Data,
89
- RecurringRuleController1Response,
104
+ RecurringRuleControllerCreateFromTransactionData,
105
+ RecurringRuleControllerCreateFromTransactionResponse,
90
106
  RecurringRuleControllerFindOneData,
91
107
  RecurringRuleControllerFindOneResponse,
92
- RecurringRuleController2Data,
93
- RecurringRuleController2Response,
94
- RecurringRuleController3Data,
95
- RecurringRuleController3Response,
108
+ RecurringRuleControllerUpdateData,
109
+ RecurringRuleControllerUpdateResponse,
110
+ RecurringRuleControllerDeleteData,
111
+ RecurringRuleControllerDeleteResponse,
96
112
  RecurringRuleControllerGetWithStatsData,
97
113
  RecurringRuleControllerGetWithStatsResponse,
98
114
  ExpectedTransactionControllerFindAllData,
@@ -101,36 +117,36 @@ import type {
101
117
  ExpectedTransactionControllerFindOverdueResponse,
102
118
  ExpectedTransactionControllerFindOneData,
103
119
  ExpectedTransactionControllerFindOneResponse,
104
- ExpectedTransactionControllerData,
105
- ExpectedTransactionControllerResponse,
106
- ExpectedTransactionController1Data,
107
- ExpectedTransactionController1Response,
108
- ExpectedTransactionController2Data,
109
- ExpectedTransactionController2Response,
110
- ExpectedTransactionController3Data,
111
- ExpectedTransactionController3Response,
112
- ExpectedTransactionController4Data,
113
- ExpectedTransactionController4Response,
120
+ ExpectedTransactionControllerSkipData,
121
+ ExpectedTransactionControllerSkipResponse,
122
+ ExpectedTransactionControllerUndoSkipData,
123
+ ExpectedTransactionControllerUndoSkipResponse,
124
+ ExpectedTransactionControllerConfirmMatchData,
125
+ ExpectedTransactionControllerConfirmMatchResponse,
126
+ ExpectedTransactionControllerUnmatchData,
127
+ ExpectedTransactionControllerUnmatchResponse,
128
+ ExpectedTransactionControllerEnterNowData,
129
+ ExpectedTransactionControllerEnterNowResponse,
114
130
  ForecastControllerGetForecastData,
115
131
  ForecastControllerGetForecastResponse,
116
- TransactionRuleControllerData,
117
- TransactionRuleControllerResponse,
132
+ TransactionRuleControllerCreateData,
133
+ TransactionRuleControllerCreateResponse,
118
134
  TransactionRuleControllerListData,
119
135
  TransactionRuleControllerListResponse,
120
136
  TransactionRuleControllerValidateData,
121
137
  TransactionRuleControllerValidateResponse,
122
- TransactionRuleController1Data,
123
- TransactionRuleController1Response,
138
+ TransactionRuleControllerBulkCreateData,
139
+ TransactionRuleControllerBulkCreateResponse,
124
140
  TransactionRuleControllerExportData,
125
141
  TransactionRuleControllerExportResponse,
126
142
  TransactionRuleControllerGetStatisticsData,
127
143
  TransactionRuleControllerGetStatisticsResponse,
128
144
  TransactionRuleControllerGetDetailData,
129
145
  TransactionRuleControllerGetDetailResponse,
130
- TransactionRuleController2Data,
131
- TransactionRuleController2Response,
132
- TransactionRuleController3Data,
133
- TransactionRuleController3Response,
146
+ TransactionRuleControllerUpdateData,
147
+ TransactionRuleControllerUpdateResponse,
148
+ TransactionRuleControllerDeleteData,
149
+ TransactionRuleControllerDeleteResponse,
134
150
  TransactionRuleControllerTestData,
135
151
  TransactionRuleControllerTestResponse,
136
152
  UserControllerDeleteOwnUserData,
@@ -151,81 +167,92 @@ import type {
151
167
  PropertyControllerGetAllResponse,
152
168
  PropertyControllerGetByKeyData,
153
169
  PropertyControllerGetByKeyResponse,
154
- PropertyControllerResponse,
155
- PropertyController1Response,
170
+ PropertyControllerUpdateData,
171
+ PropertyControllerUpdateResponse,
172
+ PropertyControllerDeleteData,
173
+ PropertyControllerDeleteResponse,
174
+ ExportControllerExportBeancountResponse,
156
175
  FileImportControllerImportFileData,
157
176
  FileImportControllerImportFileResponse,
158
177
  FileImportControllerIdentifyFileData,
159
178
  FileImportControllerIdentifyFileResponse,
179
+ FileImportControllerImportBeancountData,
180
+ FileImportControllerImportBeancountResponse,
160
181
  ImporterConfigControllerGetConfigData,
161
182
  ImporterConfigControllerGetConfigResponse,
162
- ImporterConfigControllerData,
163
- ImporterConfigControllerResponse,
164
- ImporterConfigController1Data,
165
- ImporterConfigController1Response,
183
+ ImporterConfigControllerUpdateConfigData,
184
+ ImporterConfigControllerUpdateConfigResponse,
185
+ ImporterConfigControllerResetConfigData,
186
+ ImporterConfigControllerResetConfigResponse,
187
+ PlatformControllerFindAllResponse,
188
+ PlatformControllerCreateData,
189
+ PlatformControllerCreateResponse,
190
+ PlatformControllerGetPlatformListResponse,
191
+ PlatformControllerMatchPlatformsData,
192
+ PlatformControllerMatchPlatformsResponse,
193
+ PlatformControllerUpdateData,
194
+ PlatformControllerUpdateResponse,
195
+ PlatformControllerDeleteData,
196
+ PlatformControllerDeleteResponse,
166
197
  ProviderSyncControllerSyncData,
167
198
  ProviderSyncControllerSyncResponse,
199
+ ProviderSyncControllerGetSupportedProvidersData,
168
200
  ProviderSyncControllerGetSupportedProvidersResponse,
169
201
  ProviderSyncControllerIsProviderSupportedData,
170
202
  ProviderSyncControllerIsProviderSupportedResponse,
171
203
  TelemetryControllerReportTelemetryData,
172
204
  TelemetryControllerReportTelemetryResponse,
205
+ TelemetryControllerReportCoverageMissData,
206
+ TelemetryControllerReportCoverageMissResponse,
207
+ TelemetryControllerGetCoverageMetricsData,
208
+ TelemetryControllerGetCoverageMetricsResponse,
173
209
  NlpControllerProcessNaturalLanguageData,
174
210
  NlpControllerProcessNaturalLanguageResponse,
175
211
  NlpControllerClearSessionData,
176
212
  NlpControllerClearSessionResponse,
177
213
  NlpControllerGetSessionData,
178
214
  NlpControllerGetSessionResponse,
179
- PlatformControllerFindAllResponse,
180
- PlatformControllerResponse,
181
- PlatformControllerGetPlatformListResponse,
182
- PlatformController1Response,
183
- PlatformController2Response,
184
- SymbolControllerLookupSymbolData,
185
- SymbolControllerLookupSymbolResponse,
186
- SymbolControllerGetSymbolDataData,
187
- SymbolControllerGetSymbolDataResponse,
188
- SymbolControllerGatherSymbolForDateData,
189
- SymbolControllerGatherSymbolForDateResponse,
190
- SymbolControllerResponse,
191
- CacheControllerFlushCacheResponse,
192
215
  DashboardControllerGetNetWorthData,
193
216
  DashboardControllerGetNetWorthResponse,
194
217
  DashboardControllerGetAccountsData,
195
218
  DashboardControllerGetAccountsResponse,
196
219
  DashboardControllerGetCashFlowData,
197
220
  DashboardControllerGetCashFlowResponse,
221
+ HoldingPnlControllerGetHoldingPnlData,
222
+ HoldingPnlControllerGetHoldingPnlResponse,
223
+ PriceControllerCreateData,
224
+ PriceControllerCreateResponse,
225
+ PriceControllerFindAllData,
226
+ PriceControllerFindAllResponse,
227
+ PriceControllerFindOneData,
228
+ PriceControllerFindOneResponse,
229
+ PriceControllerUpdateData,
230
+ PriceControllerUpdateResponse,
231
+ PriceControllerDeleteData,
232
+ PriceControllerDeleteResponse,
233
+ PriceControllerBulkCreateData,
234
+ PriceControllerBulkCreateResponse,
198
235
  ReportingControllerGetPortfolioTrendsData,
199
236
  ReportingControllerGetPortfolioTrendsResponse,
200
237
  ReportingControllerGenerateSnapshotData,
201
238
  ReportingControllerGenerateSnapshotResponse,
202
239
  ReportingControllerBackfillSnapshotsData,
203
240
  ReportingControllerBackfillSnapshotsResponse,
204
- ApiKeysControllerResponse,
241
+ ApiKeysControllerCreateApiKeyResponse,
205
242
  AuthControllerAccessTokenLoginData,
206
243
  AuthControllerAccessTokenLoginResponse,
244
+ CacheControllerFlushCacheResponse,
207
245
  ExchangeRateControllerGetExchangeRateData,
208
246
  ExchangeRateControllerGetExchangeRateResponse,
209
247
  HealthControllerGetHealthResponse,
210
248
  HealthControllerCheckDatabaseResponse,
249
+ HealthControllerCheckOpenBbResponse,
211
250
  HealthControllerCheckRedisResponse,
212
251
  HealthControllerGetCircuitBreakersHealthResponse,
213
252
  HealthControllerResetCircuitBreakerData,
214
253
  HealthControllerResetCircuitBreakerResponse,
215
254
  HealthControllerGetMetricsResponse,
216
- HealthControllerGetHealthOfDataEnhancerData,
217
- HealthControllerGetHealthOfDataEnhancerResponse,
218
- HealthControllerCheckDataProvidersResponse,
219
- HealthControllerGetHealthOfDataProviderData,
220
- HealthControllerGetHealthOfDataProviderResponse,
221
- InfoControllerGetInfoResponse,
222
- LogoControllerGetLogoByDataSourceAndSymbolData,
223
- LogoControllerGetLogoByDataSourceAndSymbolResponse,
224
- LogoControllerGetLogoByUrlData,
225
- LogoControllerGetLogoByUrlResponse,
226
- MarketDataControllerGetMarketDataBySymbolData,
227
- MarketDataControllerGetMarketDataBySymbolResponse,
228
- MarketDataControllerResponse
255
+ InfoControllerGetInfoResponse
229
256
  } from './types.gen';
230
257
 
231
258
  export class BeanAccountsService {
@@ -427,6 +454,78 @@ export class BeanAccountsService {
427
454
  }
428
455
  }
429
456
 
457
+ export class BeanAccountStandardsService {
458
+ /**
459
+ * Get account templates
460
+ * Returns predefined account templates for a region. Supports filtering by account type and search term.
461
+ * @param data The data for the request.
462
+ * @param data.region Region code (cn, us, de)
463
+ * @param data.type Filter by account type
464
+ * @param data.search Search term for path or description
465
+ * @returns AccountStandardListResponseDto Account templates retrieved successfully
466
+ * @throws ApiError
467
+ */
468
+ public static accountStandardsControllerGetTemplates(
469
+ data: AccountStandardsControllerGetTemplatesData
470
+ ): CancelablePromise<AccountStandardsControllerGetTemplatesResponse> {
471
+ return __request(OpenAPI, {
472
+ method: 'GET',
473
+ url: '/api/v1/{region}/bean/account-standards',
474
+ path: {
475
+ region: data.region
476
+ },
477
+ query: {
478
+ type: data.type,
479
+ search: data.search
480
+ }
481
+ });
482
+ }
483
+
484
+ /**
485
+ * Get template metadata for an account path
486
+ * Returns extendable status and root type for a template path.
487
+ * @param data The data for the request.
488
+ * @param data.region Region code for tenant context
489
+ * @param data.path Account path to check
490
+ * @returns TemplateMetadataResponseDto Template metadata retrieved successfully
491
+ * @throws ApiError
492
+ */
493
+ public static accountStandardsControllerGetTemplateMetadata(
494
+ data: AccountStandardsControllerGetTemplateMetadataData
495
+ ): CancelablePromise<AccountStandardsControllerGetTemplateMetadataResponse> {
496
+ return __request(OpenAPI, {
497
+ method: 'GET',
498
+ url: '/api/v1/{region}/bean/account-standards/template-metadata',
499
+ path: {
500
+ region: data.region
501
+ },
502
+ query: {
503
+ path: data.path
504
+ }
505
+ });
506
+ }
507
+
508
+ /**
509
+ * Get available regions with hierarchy
510
+ * Returns supported regions with inheritance metadata
511
+ * @param data The data for the request.
512
+ * @param data.region Region code for tenant context
513
+ * @returns RegionsMetadataResponseDto Regions metadata retrieved successfully
514
+ * @throws ApiError
515
+ */
516
+ public static accountStandardsControllerGetRegions(
517
+ data: AccountStandardsControllerGetRegionsData
518
+ ): CancelablePromise<AccountStandardsControllerGetRegionsResponse> {
519
+ return __request(OpenAPI, {
520
+ method: 'GET',
521
+ url: '/api/v1/{region}/bean/account-standards/regions',
522
+ path: {
523
+ region: data.region
524
+ }
525
+ });
526
+ }
527
+ }
528
+
430
529
  export class BeanTransactionsService {
431
530
  /**
432
531
  * @deprecated
@@ -492,25 +591,98 @@ export class BeanTransactionsService {
492
591
  accountId: data.accountId
493
592
  },
494
593
  errors: {
594
+ 400: 'Validation failed',
495
595
  401: 'Authentication required'
496
596
  }
497
597
  });
498
598
  }
499
599
 
500
600
  /**
601
+ * @deprecated
602
+ * Batch create transactions (DEPRECATED)
603
+ * DEPRECATED: Use POST /:region/bean/import/provider/:name/sync instead. This endpoint skips dedup, rule matching, and review branching.
501
604
  * @param data The data for the request.
502
605
  * @param data.region Region code for tenant context
503
- * @returns unknown
606
+ * @param data.requestBody
607
+ * @returns BatchTransactionResponseDto Transactions processed
504
608
  * @throws ApiError
505
609
  */
506
- public static transactionController(
507
- data: TransactionControllerData
508
- ): CancelablePromise<TransactionControllerResponse> {
610
+ public static transactionControllerCreateBatch(
611
+ data: TransactionControllerCreateBatchData
612
+ ): CancelablePromise<TransactionControllerCreateBatchResponse> {
509
613
  return __request(OpenAPI, {
510
614
  method: 'POST',
511
615
  url: '/api/v1/{region}/bean/transactions/batch',
512
616
  path: {
513
617
  region: data.region
618
+ },
619
+ body: data.requestBody,
620
+ mediaType: 'application/json',
621
+ errors: {
622
+ 400: 'Invalid input',
623
+ 401: 'Authentication required'
624
+ }
625
+ });
626
+ }
627
+
628
+ /**
629
+ * Correct (supersede) a transaction
630
+ * Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
631
+ * @param data The data for the request.
632
+ * @param data.id Original transaction ID to correct
633
+ * @param data.region Region code for tenant context
634
+ * @param data.requestBody
635
+ * @returns TransactionDetailDto Corrected transaction created
636
+ * @throws ApiError
637
+ */
638
+ public static transactionControllerCorrect(
639
+ data: TransactionControllerCorrectData
640
+ ): CancelablePromise<TransactionControllerCorrectResponse> {
641
+ return __request(OpenAPI, {
642
+ method: 'POST',
643
+ url: '/api/v1/{region}/bean/transactions/{id}/correct',
644
+ path: {
645
+ id: data.id,
646
+ region: data.region
647
+ },
648
+ body: data.requestBody,
649
+ mediaType: 'application/json',
650
+ errors: {
651
+ 404: 'Original transaction not found',
652
+ 409: 'Original no longer ACTIVE (concurrent modification)',
653
+ 422: 'Pipeline validation failed (does not balance, invalid accounts)'
654
+ }
655
+ });
656
+ }
657
+
658
+ /**
659
+ * Suggest transaction tags
660
+ * Returns distinct tags from the user ACTIVE transactions, sorted by usage, for autocomplete. Optional q performs a case-insensitive prefix match.
661
+ * @param data The data for the request.
662
+ * @param data.region Region code for tenant context
663
+ * @param data.q Prefix match, case-insensitive (max 50 chars)
664
+ * @param data.sort usage (default) or name
665
+ * @param data.limit Max suggestions (1-100, default 10)
666
+ * @returns TagSuggestionsResponseDto Tag suggestions
667
+ * @throws ApiError
668
+ */
669
+ public static transactionControllerSuggestTags(
670
+ data: TransactionControllerSuggestTagsData
671
+ ): CancelablePromise<TransactionControllerSuggestTagsResponse> {
672
+ return __request(OpenAPI, {
673
+ method: 'GET',
674
+ url: '/api/v1/{region}/bean/transactions/tags',
675
+ path: {
676
+ region: data.region
677
+ },
678
+ query: {
679
+ q: data.q,
680
+ sort: data.sort,
681
+ limit: data.limit
682
+ },
683
+ errors: {
684
+ 400: 'Validation failed',
685
+ 401: 'Authentication required'
514
686
  }
515
687
  });
516
688
  }
@@ -572,63 +744,31 @@ export class BeanTransactionsService {
572
744
  }
573
745
 
574
746
  /**
747
+ * Void transaction
748
+ * Soft-deletes a transaction by marking it as VOIDED
575
749
  * @param data The data for the request.
750
+ * @param data.id Transaction ID
576
751
  * @param data.region Region code for tenant context
577
- * @returns void
752
+ * @returns void Transaction voided successfully
578
753
  * @throws ApiError
579
754
  */
580
- public static transactionController1(
581
- data: TransactionController1Data
582
- ): CancelablePromise<TransactionController1Response> {
755
+ public static transactionControllerDelete(
756
+ data: TransactionControllerDeleteData
757
+ ): CancelablePromise<TransactionControllerDeleteResponse> {
583
758
  return __request(OpenAPI, {
584
759
  method: 'DELETE',
585
760
  url: '/api/v1/{region}/bean/transactions/{id}',
586
761
  path: {
587
- region: data.region
588
- }
589
- });
590
- }
591
- }
592
-
593
- export class BeanAccountStandardsService {
594
- /**
595
- * Get account templates
596
- * Returns predefined account templates for a region. Supports filtering by account type and search term.
597
- * @param data The data for the request.
598
- * @param data.region Region code (cn, us, de)
599
- * @param data.type Filter by account type
600
- * @param data.search Search term for path or description
601
- * @returns AccountStandardListResponseDto Account templates retrieved successfully
602
- * @throws ApiError
603
- */
604
- public static accountStandardsControllerGetTemplates(
605
- data: AccountStandardsControllerGetTemplatesData
606
- ): CancelablePromise<AccountStandardsControllerGetTemplatesResponse> {
607
- return __request(OpenAPI, {
608
- method: 'GET',
609
- url: '/api/v1/{region}/bean/account-standards',
610
- path: {
762
+ id: data.id,
611
763
  region: data.region
612
764
  },
613
- query: {
614
- type: data.type,
615
- search: data.search
765
+ errors: {
766
+ 400: 'Transaction already voided',
767
+ 401: 'Authentication required',
768
+ 404: 'Transaction not found'
616
769
  }
617
770
  });
618
771
  }
619
-
620
- /**
621
- * Get available regions with hierarchy
622
- * Returns supported regions with inheritance metadata
623
- * @returns RegionsMetadataResponseDto Regions metadata retrieved successfully
624
- * @throws ApiError
625
- */
626
- public static accountStandardsControllerGetRegions(): CancelablePromise<AccountStandardsControllerGetRegionsResponse> {
627
- return __request(OpenAPI, {
628
- method: 'GET',
629
- url: '/api/v1/{region}/bean/account-standards/regions'
630
- });
631
- }
632
772
  }
633
773
 
634
774
  export class BeanBalancesService {
@@ -637,6 +777,7 @@ export class BeanBalancesService {
637
777
  * Calculate account balance at a specific date for a single currency
638
778
  * @param data The data for the request.
639
779
  * @param data.account Account name (e.g., "Assets:Bank:Checking")
780
+ * @param data.region Region code for tenant context
640
781
  * @param data.date Date to calculate balance at (ISO 8601 format)
641
782
  * @param data.currency Currency to query (e.g., "USD", "CNY")
642
783
  * @returns BalanceResponseDto Balance calculated successfully
@@ -648,6 +789,9 @@ export class BeanBalancesService {
648
789
  return __request(OpenAPI, {
649
790
  method: 'GET',
650
791
  url: '/api/v1/{region}/bean/balances',
792
+ path: {
793
+ region: data.region
794
+ },
651
795
  query: {
652
796
  account: data.account,
653
797
  date: data.date,
@@ -663,13 +807,20 @@ export class BeanBalancesService {
663
807
  /**
664
808
  * Query multi-currency account balance
665
809
  * Calculate account balances for all currencies at a specific date
810
+ * @param data The data for the request.
811
+ * @param data.region Region code for tenant context
666
812
  * @returns MultiCurrencyBalanceResponseDto Balances calculated successfully
667
813
  * @throws ApiError
668
814
  */
669
- public static balanceControllerGetMultiCurrencyBalance(): CancelablePromise<BalanceControllerGetMultiCurrencyBalanceResponse> {
815
+ public static balanceControllerGetMultiCurrencyBalance(
816
+ data: BalanceControllerGetMultiCurrencyBalanceData
817
+ ): CancelablePromise<BalanceControllerGetMultiCurrencyBalanceResponse> {
670
818
  return __request(OpenAPI, {
671
819
  method: 'GET',
672
820
  url: '/api/v1/{region}/bean/balances/multi-currency',
821
+ path: {
822
+ region: data.region
823
+ },
673
824
  errors: {
674
825
  400: 'Invalid query parameters',
675
826
  401: 'User not authenticated'
@@ -751,69 +902,94 @@ export class BeanReviewsService {
751
902
  }
752
903
 
753
904
  /**
905
+ * Resolve a review item
754
906
  * @param data The data for the request.
907
+ * @param data.id Review ID
755
908
  * @param data.region Region code for tenant context
756
- * @returns unknown
909
+ * @param data.requestBody
910
+ * @returns ResolveResultDto
757
911
  * @throws ApiError
758
912
  */
759
- public static reviewController(
760
- data: ReviewControllerData
761
- ): CancelablePromise<ReviewControllerResponse> {
913
+ public static reviewControllerResolve(
914
+ data: ReviewControllerResolveData
915
+ ): CancelablePromise<ReviewControllerResolveResponse> {
762
916
  return __request(OpenAPI, {
763
917
  method: 'POST',
764
918
  url: '/api/v1/{region}/bean/reviews/{id}/resolve',
765
919
  path: {
920
+ id: data.id,
766
921
  region: data.region
767
- }
922
+ },
923
+ body: data.requestBody,
924
+ mediaType: 'application/json'
768
925
  });
769
926
  }
770
927
 
771
928
  /**
929
+ * Undo a resolution (within 24h)
772
930
  * @param data The data for the request.
931
+ * @param data.id Review ID
773
932
  * @param data.region Region code for tenant context
774
- * @returns unknown
933
+ * @returns UndoResultDto
775
934
  * @throws ApiError
776
935
  */
777
- public static reviewController1(
778
- data: ReviewController1Data
779
- ): CancelablePromise<ReviewController1Response> {
936
+ public static reviewControllerUndo(
937
+ data: ReviewControllerUndoData
938
+ ): CancelablePromise<ReviewControllerUndoResponse> {
780
939
  return __request(OpenAPI, {
781
940
  method: 'POST',
782
941
  url: '/api/v1/{region}/bean/reviews/{id}/undo',
783
942
  path: {
943
+ id: data.id,
784
944
  region: data.region
785
945
  }
786
946
  });
787
947
  }
788
948
 
789
949
  /**
950
+ * Batch resolve multiple reviews
790
951
  * @param data The data for the request.
791
952
  * @param data.region Region code for tenant context
792
- * @returns unknown
953
+ * @param data.requestBody Batch resolution request containing review IDs and action
954
+ * @returns BatchResolveResultDto
793
955
  * @throws ApiError
794
956
  */
795
- public static reviewController2(
796
- data: ReviewController2Data
797
- ): CancelablePromise<ReviewController2Response> {
957
+ public static reviewControllerBatchResolve(
958
+ data: ReviewControllerBatchResolveData
959
+ ): CancelablePromise<ReviewControllerBatchResolveResponse> {
798
960
  return __request(OpenAPI, {
799
961
  method: 'POST',
800
962
  url: '/api/v1/{region}/bean/reviews/batch-resolve',
801
963
  path: {
802
964
  region: data.region
803
- }
965
+ },
966
+ body: data.requestBody,
967
+ mediaType: 'application/json'
804
968
  });
805
969
  }
806
970
  }
807
971
 
808
972
  export class BeanPayeesService {
809
973
  /**
810
- * @returns unknown
974
+ * Create a new payee
975
+ * Creates a new payee mapping for the authenticated user. The payee name must be unique within the user's account.
976
+ * @param data The data for the request.
977
+ * @param data.requestBody
978
+ * @returns PayeeResponseDto Payee created successfully
811
979
  * @throws ApiError
812
980
  */
813
- public static payeeController(): CancelablePromise<PayeeControllerResponse> {
981
+ public static payeeControllerCreate(
982
+ data: PayeeControllerCreateData
983
+ ): CancelablePromise<PayeeControllerCreateResponse> {
814
984
  return __request(OpenAPI, {
815
985
  method: 'POST',
816
- url: '/api/v1/bean/payees'
986
+ url: '/api/v1/bean/payees',
987
+ body: data.requestBody,
988
+ mediaType: 'application/json',
989
+ errors: {
990
+ 400: 'Invalid input data',
991
+ 409: 'Payee already exists'
992
+ }
817
993
  });
818
994
  }
819
995
 
@@ -912,37 +1088,78 @@ export class BeanPayeesService {
912
1088
  }
913
1089
 
914
1090
  /**
915
- * @returns unknown
1091
+ * Update payee
1092
+ * Updates a payee mapping. The payee name cannot be changed after creation.
1093
+ * @param data The data for the request.
1094
+ * @param data.id Payee UUID
1095
+ * @param data.requestBody
1096
+ * @returns PayeeResponseDto Payee updated successfully
916
1097
  * @throws ApiError
917
1098
  */
918
- public static payeeController1(): CancelablePromise<PayeeController1Response> {
1099
+ public static payeeControllerUpdate(
1100
+ data: PayeeControllerUpdateData
1101
+ ): CancelablePromise<PayeeControllerUpdateResponse> {
919
1102
  return __request(OpenAPI, {
920
1103
  method: 'PUT',
921
- url: '/api/v1/bean/payees/{id}'
1104
+ url: '/api/v1/bean/payees/{id}',
1105
+ path: {
1106
+ id: data.id
1107
+ },
1108
+ body: data.requestBody,
1109
+ mediaType: 'application/json',
1110
+ errors: {
1111
+ 400: 'Invalid input data',
1112
+ 404: 'Payee not found'
1113
+ }
922
1114
  });
923
1115
  }
924
1116
 
925
1117
  /**
926
- * @returns void
1118
+ * Delete payee
1119
+ * Soft deletes a payee by marking it as inactive. Inactive payees will not appear in autocomplete suggestions.
1120
+ * @param data The data for the request.
1121
+ * @param data.id Payee UUID
1122
+ * @returns void Payee deleted successfully
927
1123
  * @throws ApiError
928
1124
  */
929
- public static payeeController2(): CancelablePromise<PayeeController2Response> {
1125
+ public static payeeControllerDelete(
1126
+ data: PayeeControllerDeleteData
1127
+ ): CancelablePromise<PayeeControllerDeleteResponse> {
930
1128
  return __request(OpenAPI, {
931
1129
  method: 'DELETE',
932
- url: '/api/v1/bean/payees/{id}'
1130
+ url: '/api/v1/bean/payees/{id}',
1131
+ path: {
1132
+ id: data.id
1133
+ },
1134
+ errors: {
1135
+ 404: 'Payee not found'
1136
+ }
933
1137
  });
934
1138
  }
935
1139
  }
936
1140
 
937
1141
  export class AdminPayeeProfilesService {
938
1142
  /**
939
- * @returns unknown
1143
+ * Create payee profile (Admin only)
1144
+ * Creates a new global payee profile. The canonical name must be unique (case-insensitive).
1145
+ * @param data The data for the request.
1146
+ * @param data.requestBody
1147
+ * @returns PayeeProfileResponseDto Payee profile created successfully
940
1148
  * @throws ApiError
941
1149
  */
942
- public static payeeProfileAdminController(): CancelablePromise<PayeeProfileAdminControllerResponse> {
1150
+ public static payeeProfileAdminControllerCreate(
1151
+ data: PayeeProfileAdminControllerCreateData
1152
+ ): CancelablePromise<PayeeProfileAdminControllerCreateResponse> {
943
1153
  return __request(OpenAPI, {
944
1154
  method: 'POST',
945
- url: '/api/v1/admin/payee-profiles'
1155
+ url: '/api/v1/admin/payee-profiles',
1156
+ body: data.requestBody,
1157
+ mediaType: 'application/json',
1158
+ errors: {
1159
+ 400: 'Validation failed',
1160
+ 403: 'Admin access required',
1161
+ 409: 'Payee profile already exists'
1162
+ }
946
1163
  });
947
1164
  }
948
1165
 
@@ -1004,65 +1221,130 @@ export class AdminPayeeProfilesService {
1004
1221
  }
1005
1222
 
1006
1223
  /**
1007
- * @returns unknown
1224
+ * Update payee profile (Admin only)
1225
+ * Updates an existing payee profile. The canonical name cannot be changed.
1226
+ * @param data The data for the request.
1227
+ * @param data.id Payee profile ID (UUID)
1228
+ * @param data.requestBody
1229
+ * @returns PayeeProfileResponseDto Payee profile updated successfully
1008
1230
  * @throws ApiError
1009
1231
  */
1010
- public static payeeProfileAdminController1(): CancelablePromise<PayeeProfileAdminController1Response> {
1232
+ public static payeeProfileAdminControllerUpdate(
1233
+ data: PayeeProfileAdminControllerUpdateData
1234
+ ): CancelablePromise<PayeeProfileAdminControllerUpdateResponse> {
1011
1235
  return __request(OpenAPI, {
1012
1236
  method: 'PUT',
1013
- url: '/api/v1/admin/payee-profiles/{id}'
1237
+ url: '/api/v1/admin/payee-profiles/{id}',
1238
+ path: {
1239
+ id: data.id
1240
+ },
1241
+ body: data.requestBody,
1242
+ mediaType: 'application/json',
1243
+ errors: {
1244
+ 403: 'Admin access required',
1245
+ 404: 'Payee profile not found'
1246
+ }
1014
1247
  });
1015
1248
  }
1016
1249
 
1017
1250
  /**
1018
- * @returns void
1251
+ * Soft delete payee profile (Admin only)
1252
+ * Marks a payee profile as inactive (soft delete). The profile cannot be deleted if it is referenced by user payees.
1253
+ * @param data The data for the request.
1254
+ * @param data.id Payee profile ID (UUID)
1255
+ * @returns void Payee profile deleted successfully
1019
1256
  * @throws ApiError
1020
1257
  */
1021
- public static payeeProfileAdminController2(): CancelablePromise<PayeeProfileAdminController2Response> {
1258
+ public static payeeProfileAdminControllerDelete(
1259
+ data: PayeeProfileAdminControllerDeleteData
1260
+ ): CancelablePromise<PayeeProfileAdminControllerDeleteResponse> {
1022
1261
  return __request(OpenAPI, {
1023
1262
  method: 'DELETE',
1024
- url: '/api/v1/admin/payee-profiles/{id}'
1263
+ url: '/api/v1/admin/payee-profiles/{id}',
1264
+ path: {
1265
+ id: data.id
1266
+ },
1267
+ errors: {
1268
+ 403: 'Admin access required',
1269
+ 404: 'Payee profile not found',
1270
+ 409: 'Payee profile is in use and cannot be deleted'
1271
+ }
1025
1272
  });
1026
1273
  }
1027
1274
 
1028
1275
  /**
1029
- * @returns unknown
1276
+ * Verify payee profile (Admin only)
1277
+ * Marks a payee profile as verified by setting verifiedAt to current timestamp.
1278
+ * @param data The data for the request.
1279
+ * @param data.id Payee profile ID (UUID)
1280
+ * @returns PayeeProfileResponseDto Payee profile verified successfully
1030
1281
  * @throws ApiError
1031
1282
  */
1032
- public static payeeProfileAdminController3(): CancelablePromise<PayeeProfileAdminController3Response> {
1283
+ public static payeeProfileAdminControllerVerify(
1284
+ data: PayeeProfileAdminControllerVerifyData
1285
+ ): CancelablePromise<PayeeProfileAdminControllerVerifyResponse> {
1033
1286
  return __request(OpenAPI, {
1034
1287
  method: 'POST',
1035
- url: '/api/v1/admin/payee-profiles/{id}/verify'
1036
- });
1037
- }
1288
+ url: '/api/v1/admin/payee-profiles/{id}/verify',
1289
+ path: {
1290
+ id: data.id
1291
+ },
1292
+ errors: {
1293
+ 403: 'Admin access required',
1294
+ 404: 'Payee profile not found'
1295
+ }
1296
+ });
1297
+ }
1038
1298
 
1039
1299
  /**
1040
- * @returns unknown
1300
+ * Unverify payee profile (Admin only)
1301
+ * Removes verification status by setting verifiedAt to null.
1302
+ * @param data The data for the request.
1303
+ * @param data.id Payee profile ID (UUID)
1304
+ * @returns PayeeProfileResponseDto Payee profile unverified successfully
1041
1305
  * @throws ApiError
1042
1306
  */
1043
- public static payeeProfileAdminController4(): CancelablePromise<PayeeProfileAdminController4Response> {
1307
+ public static payeeProfileAdminControllerUnverify(
1308
+ data: PayeeProfileAdminControllerUnverifyData
1309
+ ): CancelablePromise<PayeeProfileAdminControllerUnverifyResponse> {
1044
1310
  return __request(OpenAPI, {
1045
1311
  method: 'DELETE',
1046
- url: '/api/v1/admin/payee-profiles/{id}/verify'
1312
+ url: '/api/v1/admin/payee-profiles/{id}/verify',
1313
+ path: {
1314
+ id: data.id
1315
+ },
1316
+ errors: {
1317
+ 403: 'Admin access required',
1318
+ 404: 'Payee profile not found'
1319
+ }
1047
1320
  });
1048
1321
  }
1049
1322
  }
1050
1323
 
1051
1324
  export class BeanCommoditiesService {
1052
1325
  /**
1326
+ * Create a new commodity
1327
+ * Creates a new commodity definition for the authenticated user
1053
1328
  * @param data The data for the request.
1054
1329
  * @param data.region Region code for tenant context
1055
- * @returns unknown
1330
+ * @param data.requestBody
1331
+ * @returns CommodityResponseDto Commodity created successfully
1056
1332
  * @throws ApiError
1057
1333
  */
1058
- public static commodityController(
1059
- data: CommodityControllerData
1060
- ): CancelablePromise<CommodityControllerResponse> {
1334
+ public static commodityControllerCreate(
1335
+ data: CommodityControllerCreateData
1336
+ ): CancelablePromise<CommodityControllerCreateResponse> {
1061
1337
  return __request(OpenAPI, {
1062
1338
  method: 'POST',
1063
1339
  url: '/api/v1/{region}/bean/commodities',
1064
1340
  path: {
1065
1341
  region: data.region
1342
+ },
1343
+ body: data.requestBody,
1344
+ mediaType: 'application/json',
1345
+ errors: {
1346
+ 400: 'Invalid input data',
1347
+ 409: 'Commodity already exists'
1066
1348
  }
1067
1349
  });
1068
1350
  }
@@ -1119,68 +1401,92 @@ export class BeanCommoditiesService {
1119
1401
  }
1120
1402
 
1121
1403
  /**
1404
+ * Update commodity
1405
+ * Updates an existing commodity definition. Symbol cannot be changed.
1122
1406
  * @param data The data for the request.
1407
+ * @param data.symbol Commodity symbol
1123
1408
  * @param data.region Region code for tenant context
1124
- * @returns unknown
1409
+ * @param data.requestBody
1410
+ * @returns CommodityResponseDto Commodity updated successfully
1125
1411
  * @throws ApiError
1126
1412
  */
1127
- public static commodityController1(
1128
- data: CommodityController1Data
1129
- ): CancelablePromise<CommodityController1Response> {
1413
+ public static commodityControllerUpdate(
1414
+ data: CommodityControllerUpdateData
1415
+ ): CancelablePromise<CommodityControllerUpdateResponse> {
1130
1416
  return __request(OpenAPI, {
1131
1417
  method: 'PUT',
1132
1418
  url: '/api/v1/{region}/bean/commodities/{symbol}',
1133
1419
  path: {
1420
+ symbol: data.symbol,
1134
1421
  region: data.region
1422
+ },
1423
+ body: data.requestBody,
1424
+ mediaType: 'application/json',
1425
+ errors: {
1426
+ 400: 'Invalid input data',
1427
+ 404: 'Commodity not found'
1135
1428
  }
1136
1429
  });
1137
1430
  }
1138
1431
 
1139
1432
  /**
1433
+ * Delete commodity
1434
+ * Deletes a commodity definition
1140
1435
  * @param data The data for the request.
1436
+ * @param data.symbol Commodity symbol
1141
1437
  * @param data.region Region code for tenant context
1142
- * @returns void
1438
+ * @returns void Commodity deleted successfully
1143
1439
  * @throws ApiError
1144
1440
  */
1145
- public static commodityController2(
1146
- data: CommodityController2Data
1147
- ): CancelablePromise<CommodityController2Response> {
1441
+ public static commodityControllerDelete(
1442
+ data: CommodityControllerDeleteData
1443
+ ): CancelablePromise<CommodityControllerDeleteResponse> {
1148
1444
  return __request(OpenAPI, {
1149
1445
  method: 'DELETE',
1150
1446
  url: '/api/v1/{region}/bean/commodities/{symbol}',
1151
1447
  path: {
1448
+ symbol: data.symbol,
1152
1449
  region: data.region
1450
+ },
1451
+ errors: {
1452
+ 404: 'Commodity not found'
1153
1453
  }
1154
1454
  });
1155
1455
  }
1156
1456
 
1157
1457
  /**
1458
+ * Ensure commodity exists
1459
+ * Gets existing commodity or creates it with automatic initialization from OpenBB
1158
1460
  * @param data The data for the request.
1461
+ * @param data.symbol Commodity symbol
1159
1462
  * @param data.region Region code for tenant context
1160
- * @returns unknown
1463
+ * @returns CommodityResponseDto Commodity retrieved or created
1161
1464
  * @throws ApiError
1162
1465
  */
1163
- public static commodityController3(
1164
- data: CommodityController3Data
1165
- ): CancelablePromise<CommodityController3Response> {
1466
+ public static commodityControllerGetOrCreate(
1467
+ data: CommodityControllerGetOrCreateData
1468
+ ): CancelablePromise<CommodityControllerGetOrCreateResponse> {
1166
1469
  return __request(OpenAPI, {
1167
1470
  method: 'POST',
1168
1471
  url: '/api/v1/{region}/bean/commodities/{symbol}/ensure',
1169
1472
  path: {
1473
+ symbol: data.symbol,
1170
1474
  region: data.region
1171
1475
  }
1172
1476
  });
1173
1477
  }
1174
1478
 
1175
1479
  /**
1480
+ * Bulk create commodities
1481
+ * Creates multiple commodities from a list of symbols, useful for initialization
1176
1482
  * @param data The data for the request.
1177
1483
  * @param data.region Region code for tenant context
1178
- * @returns unknown
1484
+ * @returns CommodityResponseDto Commodities created successfully
1179
1485
  * @throws ApiError
1180
1486
  */
1181
- public static commodityController4(
1182
- data: CommodityController4Data
1183
- ): CancelablePromise<CommodityController4Response> {
1487
+ public static commodityControllerBulkCreate(
1488
+ data: CommodityControllerBulkCreateData
1489
+ ): CancelablePromise<CommodityControllerBulkCreateResponse> {
1184
1490
  return __request(OpenAPI, {
1185
1491
  method: 'POST',
1186
1492
  url: '/api/v1/{region}/bean/commodities/bulk',
@@ -1193,19 +1499,28 @@ export class BeanCommoditiesService {
1193
1499
 
1194
1500
  export class RecurringRulesService {
1195
1501
  /**
1502
+ * Create a new recurring rule
1503
+ * Creates a new recurring transaction rule for the authenticated user
1196
1504
  * @param data The data for the request.
1197
1505
  * @param data.region Region code for tenant context
1198
- * @returns unknown
1506
+ * @param data.requestBody
1507
+ * @returns RecurringRuleResponseDto Rule created successfully
1199
1508
  * @throws ApiError
1200
1509
  */
1201
- public static recurringRuleController(
1202
- data: RecurringRuleControllerData
1203
- ): CancelablePromise<RecurringRuleControllerResponse> {
1510
+ public static recurringRuleControllerCreate(
1511
+ data: RecurringRuleControllerCreateData
1512
+ ): CancelablePromise<RecurringRuleControllerCreateResponse> {
1204
1513
  return __request(OpenAPI, {
1205
1514
  method: 'POST',
1206
1515
  url: '/api/v1/{region}/bean/recurring-rules',
1207
1516
  path: {
1208
1517
  region: data.region
1518
+ },
1519
+ body: data.requestBody,
1520
+ mediaType: 'application/json',
1521
+ errors: {
1522
+ 400: 'Invalid input data (e.g., autoCreate without accounts)',
1523
+ 409: 'Rule with same name already exists'
1209
1524
  }
1210
1525
  });
1211
1526
  }
@@ -1239,19 +1554,30 @@ export class RecurringRulesService {
1239
1554
  }
1240
1555
 
1241
1556
  /**
1557
+ * Create recurring rule from transaction
1558
+ * Auto-creates a recurring rule using transaction data. User only confirms frequency.
1242
1559
  * @param data The data for the request.
1560
+ * @param data.transactionId Source transaction ID
1243
1561
  * @param data.region Region code for tenant context
1244
- * @returns unknown
1562
+ * @param data.requestBody
1563
+ * @returns RecurringRuleResponseDto Rule created successfully
1245
1564
  * @throws ApiError
1246
1565
  */
1247
- public static recurringRuleController1(
1248
- data: RecurringRuleController1Data
1249
- ): CancelablePromise<RecurringRuleController1Response> {
1566
+ public static recurringRuleControllerCreateFromTransaction(
1567
+ data: RecurringRuleControllerCreateFromTransactionData
1568
+ ): CancelablePromise<RecurringRuleControllerCreateFromTransactionResponse> {
1250
1569
  return __request(OpenAPI, {
1251
1570
  method: 'POST',
1252
1571
  url: '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}',
1253
1572
  path: {
1573
+ transactionId: data.transactionId,
1254
1574
  region: data.region
1575
+ },
1576
+ body: data.requestBody,
1577
+ mediaType: 'application/json',
1578
+ errors: {
1579
+ 404: 'Transaction not found',
1580
+ 409: 'Rule with same name already exists or transaction already linked'
1255
1581
  }
1256
1582
  });
1257
1583
  }
@@ -1282,37 +1608,55 @@ export class RecurringRulesService {
1282
1608
  }
1283
1609
 
1284
1610
  /**
1611
+ * Update recurring rule
1612
+ * Updates an existing recurring rule
1285
1613
  * @param data The data for the request.
1614
+ * @param data.id Rule ID
1286
1615
  * @param data.region Region code for tenant context
1287
- * @returns unknown
1616
+ * @param data.requestBody
1617
+ * @returns RecurringRuleResponseDto Rule updated successfully
1288
1618
  * @throws ApiError
1289
1619
  */
1290
- public static recurringRuleController2(
1291
- data: RecurringRuleController2Data
1292
- ): CancelablePromise<RecurringRuleController2Response> {
1620
+ public static recurringRuleControllerUpdate(
1621
+ data: RecurringRuleControllerUpdateData
1622
+ ): CancelablePromise<RecurringRuleControllerUpdateResponse> {
1293
1623
  return __request(OpenAPI, {
1294
1624
  method: 'PATCH',
1295
1625
  url: '/api/v1/{region}/bean/recurring-rules/{id}',
1296
1626
  path: {
1627
+ id: data.id,
1297
1628
  region: data.region
1629
+ },
1630
+ body: data.requestBody,
1631
+ mediaType: 'application/json',
1632
+ errors: {
1633
+ 400: 'Invalid input data',
1634
+ 404: 'Rule not found'
1298
1635
  }
1299
1636
  });
1300
1637
  }
1301
1638
 
1302
1639
  /**
1640
+ * Delete recurring rule
1641
+ * Soft deletes a recurring rule (sets isActive to false)
1303
1642
  * @param data The data for the request.
1643
+ * @param data.id Rule ID
1304
1644
  * @param data.region Region code for tenant context
1305
- * @returns void
1645
+ * @returns void Rule deleted successfully
1306
1646
  * @throws ApiError
1307
1647
  */
1308
- public static recurringRuleController3(
1309
- data: RecurringRuleController3Data
1310
- ): CancelablePromise<RecurringRuleController3Response> {
1648
+ public static recurringRuleControllerDelete(
1649
+ data: RecurringRuleControllerDeleteData
1650
+ ): CancelablePromise<RecurringRuleControllerDeleteResponse> {
1311
1651
  return __request(OpenAPI, {
1312
1652
  method: 'DELETE',
1313
1653
  url: '/api/v1/{region}/bean/recurring-rules/{id}',
1314
1654
  path: {
1655
+ id: data.id,
1315
1656
  region: data.region
1657
+ },
1658
+ errors: {
1659
+ 404: 'Rule not found'
1316
1660
  }
1317
1661
  });
1318
1662
  }
@@ -1420,91 +1764,138 @@ export class ExpectedTransactionsService {
1420
1764
  }
1421
1765
 
1422
1766
  /**
1767
+ * Skip expected transaction
1768
+ * Marks an expected transaction as skipped (PENDING -> SKIPPED)
1423
1769
  * @param data The data for the request.
1770
+ * @param data.id Expected transaction ID
1424
1771
  * @param data.region Region code for tenant context
1425
- * @returns unknown
1772
+ * @returns ExpectedTransactionResponseDto Expected transaction skipped successfully
1426
1773
  * @throws ApiError
1427
1774
  */
1428
- public static expectedTransactionController(
1429
- data: ExpectedTransactionControllerData
1430
- ): CancelablePromise<ExpectedTransactionControllerResponse> {
1775
+ public static expectedTransactionControllerSkip(
1776
+ data: ExpectedTransactionControllerSkipData
1777
+ ): CancelablePromise<ExpectedTransactionControllerSkipResponse> {
1431
1778
  return __request(OpenAPI, {
1432
1779
  method: 'POST',
1433
1780
  url: '/api/v1/{region}/bean/expected-transactions/{id}/skip',
1434
1781
  path: {
1782
+ id: data.id,
1435
1783
  region: data.region
1784
+ },
1785
+ errors: {
1786
+ 400: 'Cannot skip - not in PENDING status',
1787
+ 404: 'Expected transaction not found'
1436
1788
  }
1437
1789
  });
1438
1790
  }
1439
1791
 
1440
1792
  /**
1793
+ * Undo skip
1794
+ * Reverses a skip operation (SKIPPED -> PENDING)
1441
1795
  * @param data The data for the request.
1796
+ * @param data.id Expected transaction ID
1442
1797
  * @param data.region Region code for tenant context
1443
- * @returns unknown
1798
+ * @returns ExpectedTransactionResponseDto Skip undone successfully
1444
1799
  * @throws ApiError
1445
1800
  */
1446
- public static expectedTransactionController1(
1447
- data: ExpectedTransactionController1Data
1448
- ): CancelablePromise<ExpectedTransactionController1Response> {
1801
+ public static expectedTransactionControllerUndoSkip(
1802
+ data: ExpectedTransactionControllerUndoSkipData
1803
+ ): CancelablePromise<ExpectedTransactionControllerUndoSkipResponse> {
1449
1804
  return __request(OpenAPI, {
1450
1805
  method: 'DELETE',
1451
1806
  url: '/api/v1/{region}/bean/expected-transactions/{id}/skip',
1452
1807
  path: {
1808
+ id: data.id,
1453
1809
  region: data.region
1810
+ },
1811
+ errors: {
1812
+ 400: 'Cannot undo - not in SKIPPED status',
1813
+ 404: 'Expected transaction not found'
1454
1814
  }
1455
1815
  });
1456
1816
  }
1457
1817
 
1458
1818
  /**
1819
+ * Confirm transaction match
1820
+ * Manually matches an expected transaction with an actual transaction
1459
1821
  * @param data The data for the request.
1822
+ * @param data.id Expected transaction ID
1460
1823
  * @param data.region Region code for tenant context
1461
- * @returns unknown
1824
+ * @param data.requestBody
1825
+ * @returns unknown Match confirmed successfully
1462
1826
  * @throws ApiError
1463
1827
  */
1464
- public static expectedTransactionController2(
1465
- data: ExpectedTransactionController2Data
1466
- ): CancelablePromise<ExpectedTransactionController2Response> {
1828
+ public static expectedTransactionControllerConfirmMatch(
1829
+ data: ExpectedTransactionControllerConfirmMatchData
1830
+ ): CancelablePromise<ExpectedTransactionControllerConfirmMatchResponse> {
1467
1831
  return __request(OpenAPI, {
1468
1832
  method: 'POST',
1469
1833
  url: '/api/v1/{region}/bean/expected-transactions/{id}/match',
1470
1834
  path: {
1835
+ id: data.id,
1471
1836
  region: data.region
1837
+ },
1838
+ body: data.requestBody,
1839
+ mediaType: 'application/json',
1840
+ errors: {
1841
+ 400: 'Cannot match - not in PENDING status',
1842
+ 404: 'Expected or actual transaction not found',
1843
+ 409: 'Actual transaction already matched to another rule'
1472
1844
  }
1473
1845
  });
1474
1846
  }
1475
1847
 
1476
1848
  /**
1849
+ * Unmatch transaction
1850
+ * Removes the match between expected and actual transaction (COMPLETED -> PENDING)
1477
1851
  * @param data The data for the request.
1852
+ * @param data.id Expected transaction ID
1478
1853
  * @param data.region Region code for tenant context
1479
- * @returns unknown
1854
+ * @returns unknown Match removed successfully
1480
1855
  * @throws ApiError
1481
1856
  */
1482
- public static expectedTransactionController3(
1483
- data: ExpectedTransactionController3Data
1484
- ): CancelablePromise<ExpectedTransactionController3Response> {
1857
+ public static expectedTransactionControllerUnmatch(
1858
+ data: ExpectedTransactionControllerUnmatchData
1859
+ ): CancelablePromise<ExpectedTransactionControllerUnmatchResponse> {
1485
1860
  return __request(OpenAPI, {
1486
1861
  method: 'DELETE',
1487
1862
  url: '/api/v1/{region}/bean/expected-transactions/{id}/match',
1488
1863
  path: {
1864
+ id: data.id,
1489
1865
  region: data.region
1866
+ },
1867
+ errors: {
1868
+ 400: 'Cannot unmatch - not in COMPLETED status',
1869
+ 404: 'Expected transaction not found'
1490
1870
  }
1491
1871
  });
1492
1872
  }
1493
1873
 
1494
1874
  /**
1875
+ * Enter Now
1876
+ * Creates an actual transaction for an expected transaction (YNAB-style Enter Now)
1495
1877
  * @param data The data for the request.
1878
+ * @param data.id Expected transaction ID
1496
1879
  * @param data.region Region code for tenant context
1497
- * @returns unknown
1880
+ * @param data.requestBody
1881
+ * @returns unknown Transaction created successfully
1498
1882
  * @throws ApiError
1499
1883
  */
1500
- public static expectedTransactionController4(
1501
- data: ExpectedTransactionController4Data
1502
- ): CancelablePromise<ExpectedTransactionController4Response> {
1884
+ public static expectedTransactionControllerEnterNow(
1885
+ data: ExpectedTransactionControllerEnterNowData
1886
+ ): CancelablePromise<ExpectedTransactionControllerEnterNowResponse> {
1503
1887
  return __request(OpenAPI, {
1504
1888
  method: 'POST',
1505
1889
  url: '/api/v1/{region}/bean/expected-transactions/{id}/enter',
1506
1890
  path: {
1891
+ id: data.id,
1507
1892
  region: data.region
1893
+ },
1894
+ body: data.requestBody,
1895
+ mediaType: 'application/json',
1896
+ errors: {
1897
+ 400: 'Cannot enter - not in PENDING status or missing accounts',
1898
+ 404: 'Expected transaction or accounts not found'
1508
1899
  }
1509
1900
  });
1510
1901
  }
@@ -1515,16 +1906,20 @@ export class RecurringForecastService {
1515
1906
  * Get cash flow forecast
1516
1907
  * Returns predicted outflows for the next N months based on active recurring rules
1517
1908
  * @param data The data for the request.
1909
+ * @param data.region Region code for tenant context
1518
1910
  * @param data.months Number of months to forecast (1-12, default 3)
1519
1911
  * @returns ForecastResponseDto Forecast retrieved successfully
1520
1912
  * @throws ApiError
1521
1913
  */
1522
1914
  public static forecastControllerGetForecast(
1523
- data: ForecastControllerGetForecastData = {}
1915
+ data: ForecastControllerGetForecastData
1524
1916
  ): CancelablePromise<ForecastControllerGetForecastResponse> {
1525
1917
  return __request(OpenAPI, {
1526
1918
  method: 'GET',
1527
1919
  url: '/api/v1/{region}/bean/recurring/forecast',
1920
+ path: {
1921
+ region: data.region
1922
+ },
1528
1923
  query: {
1529
1924
  months: data.months
1530
1925
  }
@@ -1534,19 +1929,29 @@ export class RecurringForecastService {
1534
1929
 
1535
1930
  export class BeanTransactionRulesService {
1536
1931
  /**
1932
+ * Create a new transaction rule (or upsert if upsertByPayee=true)
1933
+ * Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
1537
1934
  * @param data The data for the request.
1538
1935
  * @param data.region Region code for tenant context
1539
- * @returns unknown
1936
+ * @param data.requestBody
1937
+ * @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
1540
1938
  * @throws ApiError
1541
1939
  */
1542
- public static transactionRuleController(
1543
- data: TransactionRuleControllerData
1544
- ): CancelablePromise<TransactionRuleControllerResponse> {
1940
+ public static transactionRuleControllerCreate(
1941
+ data: TransactionRuleControllerCreateData
1942
+ ): CancelablePromise<TransactionRuleControllerCreateResponse> {
1545
1943
  return __request(OpenAPI, {
1546
1944
  method: 'POST',
1547
1945
  url: '/api/v1/{region}/bean/transaction-rules',
1548
1946
  path: {
1549
1947
  region: data.region
1948
+ },
1949
+ body: data.requestBody,
1950
+ mediaType: 'application/json',
1951
+ errors: {
1952
+ 400: 'Validation failed',
1953
+ 401: 'Unauthorized',
1954
+ 409: 'Resource conflict - another process is updating this rule'
1550
1955
  }
1551
1956
  });
1552
1957
  }
@@ -1605,25 +2010,34 @@ export class BeanTransactionRulesService {
1605
2010
  body: data.requestBody,
1606
2011
  mediaType: 'application/json',
1607
2012
  errors: {
2013
+ 400: 'Validation failed',
1608
2014
  401: 'Unauthorized'
1609
2015
  }
1610
2016
  });
1611
2017
  }
1612
2018
 
1613
2019
  /**
2020
+ * Bulk create transaction rules
1614
2021
  * @param data The data for the request.
1615
2022
  * @param data.region Region code for tenant context
1616
- * @returns unknown
2023
+ * @param data.requestBody
2024
+ * @returns BulkCreateRulesResponseDto Bulk create completed
1617
2025
  * @throws ApiError
1618
2026
  */
1619
- public static transactionRuleController1(
1620
- data: TransactionRuleController1Data
1621
- ): CancelablePromise<TransactionRuleController1Response> {
2027
+ public static transactionRuleControllerBulkCreate(
2028
+ data: TransactionRuleControllerBulkCreateData
2029
+ ): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
1622
2030
  return __request(OpenAPI, {
1623
2031
  method: 'POST',
1624
2032
  url: '/api/v1/{region}/bean/transaction-rules/bulk',
1625
2033
  path: {
1626
2034
  region: data.region
2035
+ },
2036
+ body: data.requestBody,
2037
+ mediaType: 'application/json',
2038
+ errors: {
2039
+ 400: 'Invalid bulk create data',
2040
+ 401: 'Unauthorized'
1627
2041
  }
1628
2042
  });
1629
2043
  }
@@ -1704,37 +2118,59 @@ export class BeanTransactionRulesService {
1704
2118
  }
1705
2119
 
1706
2120
  /**
2121
+ * Update a transaction rule
1707
2122
  * @param data The data for the request.
2123
+ * @param data.ruleId Rule ID to update
1708
2124
  * @param data.region Region code for tenant context
1709
- * @returns unknown
2125
+ * @param data.requestBody
2126
+ * @returns TransactionRuleResponseDto Rule updated successfully
1710
2127
  * @throws ApiError
1711
2128
  */
1712
- public static transactionRuleController2(
1713
- data: TransactionRuleController2Data
1714
- ): CancelablePromise<TransactionRuleController2Response> {
2129
+ public static transactionRuleControllerUpdate(
2130
+ data: TransactionRuleControllerUpdateData
2131
+ ): CancelablePromise<TransactionRuleControllerUpdateResponse> {
1715
2132
  return __request(OpenAPI, {
1716
2133
  method: 'PUT',
1717
2134
  url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
1718
2135
  path: {
2136
+ ruleId: data.ruleId,
1719
2137
  region: data.region
2138
+ },
2139
+ body: data.requestBody,
2140
+ mediaType: 'application/json',
2141
+ errors: {
2142
+ 400: 'Validation failed',
2143
+ 401: 'Unauthorized',
2144
+ 403: 'Forbidden - not owner of rule',
2145
+ 404: 'Rule not found',
2146
+ 409: 'Resource conflict - rule is being modified by another process'
1720
2147
  }
1721
2148
  });
1722
2149
  }
1723
2150
 
1724
2151
  /**
2152
+ * Delete a transaction rule
1725
2153
  * @param data The data for the request.
2154
+ * @param data.ruleId Rule ID to delete
1726
2155
  * @param data.region Region code for tenant context
1727
- * @returns void
2156
+ * @returns void Rule deleted successfully
1728
2157
  * @throws ApiError
1729
2158
  */
1730
- public static transactionRuleController3(
1731
- data: TransactionRuleController3Data
1732
- ): CancelablePromise<TransactionRuleController3Response> {
2159
+ public static transactionRuleControllerDelete(
2160
+ data: TransactionRuleControllerDeleteData
2161
+ ): CancelablePromise<TransactionRuleControllerDeleteResponse> {
1733
2162
  return __request(OpenAPI, {
1734
2163
  method: 'DELETE',
1735
2164
  url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
1736
2165
  path: {
2166
+ ruleId: data.ruleId,
1737
2167
  region: data.region
2168
+ },
2169
+ errors: {
2170
+ 401: 'Unauthorized',
2171
+ 403: 'Forbidden - not owner of rule',
2172
+ 404: 'Rule not found',
2173
+ 409: 'Resource conflict - rule is being modified by another process'
1738
2174
  }
1739
2175
  });
1740
2176
  }
@@ -1974,24 +2410,67 @@ export class PropertiesService {
1974
2410
  }
1975
2411
 
1976
2412
  /**
1977
- * @returns unknown
2413
+ * Update a system property
2414
+ * @param data The data for the request.
2415
+ * @param data.key Property key
2416
+ * @param data.requestBody
2417
+ * @returns unknown Property updated successfully
1978
2418
  * @throws ApiError
1979
2419
  */
1980
- public static propertyController(): CancelablePromise<PropertyControllerResponse> {
2420
+ public static propertyControllerUpdate(
2421
+ data: PropertyControllerUpdateData
2422
+ ): CancelablePromise<PropertyControllerUpdateResponse> {
1981
2423
  return __request(OpenAPI, {
1982
2424
  method: 'PUT',
1983
- url: '/api/v1/admin/properties/{key}'
2425
+ url: '/api/v1/admin/properties/{key}',
2426
+ path: {
2427
+ key: data.key
2428
+ },
2429
+ body: data.requestBody,
2430
+ mediaType: 'application/json',
2431
+ errors: {
2432
+ 401: 'Unauthorized',
2433
+ 403: 'Forbidden - insufficient permissions'
2434
+ }
1984
2435
  });
1985
2436
  }
1986
2437
 
1987
2438
  /**
1988
- * @returns void
2439
+ * Delete a system property
2440
+ * @param data The data for the request.
2441
+ * @param data.key Property key
2442
+ * @returns void Property deleted successfully
1989
2443
  * @throws ApiError
1990
2444
  */
1991
- public static propertyController1(): CancelablePromise<PropertyController1Response> {
2445
+ public static propertyControllerDelete(
2446
+ data: PropertyControllerDeleteData
2447
+ ): CancelablePromise<PropertyControllerDeleteResponse> {
1992
2448
  return __request(OpenAPI, {
1993
2449
  method: 'DELETE',
1994
- url: '/api/v1/admin/properties/{key}'
2450
+ url: '/api/v1/admin/properties/{key}',
2451
+ path: {
2452
+ key: data.key
2453
+ },
2454
+ errors: {
2455
+ 401: 'Unauthorized',
2456
+ 403: 'Forbidden - insufficient permissions',
2457
+ 404: 'Property not found'
2458
+ }
2459
+ });
2460
+ }
2461
+ }
2462
+
2463
+ export class BeanExportService {
2464
+ /**
2465
+ * Export Beancount ledger as ZIP
2466
+ * Export all user Beancount data as a ZIP file containing ledger.beancount and yearly files in community format.
2467
+ * @returns unknown
2468
+ * @throws ApiError
2469
+ */
2470
+ public static exportControllerExportBeancount(): CancelablePromise<ExportControllerExportBeancountResponse> {
2471
+ return __request(OpenAPI, {
2472
+ method: 'GET',
2473
+ url: '/api/v1/{region}/bean/export/beancount'
1995
2474
  });
1996
2475
  }
1997
2476
  }
@@ -2001,6 +2480,7 @@ export class BeanImportService {
2001
2480
  * Import a bill file
2002
2481
  * Upload and process a bill file (CSV, PDF, OFX, etc.). The system automatically identifies the file type, extracts transactions, validates them, and stores only validated transactions to the database. Maximum file size: 50MB. Only 1 import per user at a time (concurrent imports rejected with 429).
2003
2482
  * @param data The data for the request.
2483
+ * @param data.region Region code for tenant context
2004
2484
  * @param data.formData Bill file to import
2005
2485
  * @returns ImportResultDto File imported successfully
2006
2486
  * @throws ApiError
@@ -2011,6 +2491,9 @@ export class BeanImportService {
2011
2491
  return __request(OpenAPI, {
2012
2492
  method: 'POST',
2013
2493
  url: '/api/v1/{region}/bean/import/file',
2494
+ path: {
2495
+ region: data.region
2496
+ },
2014
2497
  formData: data.formData,
2015
2498
  mediaType: 'multipart/form-data',
2016
2499
  errors: {
@@ -2026,6 +2509,7 @@ export class BeanImportService {
2026
2509
  * Identify file type
2027
2510
  * Upload a file to check if it can be processed by any registered importer. Does not perform actual import - useful for pre-validation. Uses user-specific importer configuration.
2028
2511
  * @param data The data for the request.
2512
+ * @param data.region Region code for tenant context
2029
2513
  * @param data.formData File to identify
2030
2514
  * @returns IdentifyResultDto File identification result
2031
2515
  * @throws ApiError
@@ -2036,6 +2520,9 @@ export class BeanImportService {
2036
2520
  return __request(OpenAPI, {
2037
2521
  method: 'POST',
2038
2522
  url: '/api/v1/{region}/bean/import/identify',
2523
+ path: {
2524
+ region: data.region
2525
+ },
2039
2526
  formData: data.formData,
2040
2527
  mediaType: 'multipart/form-data',
2041
2528
  errors: {
@@ -2044,6 +2531,32 @@ export class BeanImportService {
2044
2531
  });
2045
2532
  }
2046
2533
 
2534
+ /**
2535
+ * Import a Beancount file in community format
2536
+ * Upload a .beancount file to import. The system parses community-format paths, converts to internal format using category metadata, auto-creates accounts, and imports transactions with deduplication. Maximum file size: 50MB. Only 1 import per user at a time.
2537
+ * @param data The data for the request.
2538
+ * @param data.region Region code for tenant context
2539
+ * @param data.formData Beancount file to import
2540
+ * @returns unknown Beancount file imported successfully
2541
+ * @throws ApiError
2542
+ */
2543
+ public static fileImportControllerImportBeancount(
2544
+ data: FileImportControllerImportBeancountData
2545
+ ): CancelablePromise<FileImportControllerImportBeancountResponse> {
2546
+ return __request(OpenAPI, {
2547
+ method: 'POST',
2548
+ url: '/api/v1/{region}/bean/import/beancount',
2549
+ path: {
2550
+ region: data.region
2551
+ },
2552
+ formData: data.formData,
2553
+ mediaType: 'multipart/form-data',
2554
+ errors: {
2555
+ 400: 'Bad request - invalid file or no file uploaded'
2556
+ }
2557
+ });
2558
+ }
2559
+
2047
2560
  /**
2048
2561
  * Get importer configuration
2049
2562
  * Returns the current configuration for the specified importer. Creates default configuration if none exists.
@@ -2071,83 +2584,216 @@ export class BeanImportService {
2071
2584
  }
2072
2585
 
2073
2586
  /**
2587
+ * Update importer configuration
2588
+ * Updates the configuration for the specified importer. Partial updates are supported.
2074
2589
  * @param data The data for the request.
2590
+ * @param data.importerId Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
2075
2591
  * @param data.region Region code for tenant context
2076
- * @returns unknown
2592
+ * @param data.requestBody Partial configuration update. Only provided fields will be updated.
2593
+ * @returns ImporterConfigDto Configuration updated successfully
2077
2594
  * @throws ApiError
2078
2595
  */
2079
- public static importerConfigController(
2080
- data: ImporterConfigControllerData
2081
- ): CancelablePromise<ImporterConfigControllerResponse> {
2596
+ public static importerConfigControllerUpdateConfig(
2597
+ data: ImporterConfigControllerUpdateConfigData
2598
+ ): CancelablePromise<ImporterConfigControllerUpdateConfigResponse> {
2082
2599
  return __request(OpenAPI, {
2083
2600
  method: 'PUT',
2084
2601
  url: '/api/v1/{region}/bean/import/config/{importerId}',
2085
2602
  path: {
2603
+ importerId: data.importerId,
2086
2604
  region: data.region
2605
+ },
2606
+ body: data.requestBody,
2607
+ mediaType: 'application/json',
2608
+ errors: {
2609
+ 400: 'Invalid input - Validation failed',
2610
+ 404: 'Configuration not found'
2087
2611
  }
2088
2612
  });
2089
2613
  }
2090
2614
 
2091
2615
  /**
2616
+ * Reset configuration to default
2617
+ * Resets the configuration for the specified importer to default values. This operation overwrites all existing configuration.
2092
2618
  * @param data The data for the request.
2619
+ * @param data.importerId Importer identifier. Supported importers: alipay, alipay-web, wechat, boc, boc-credit, ccb, cmb, cmbc, cmbc-credit, icbc, icbc-credit, hsbc-hk-credit, hsbc-hk-debit
2093
2620
  * @param data.region Region code for tenant context
2094
- * @returns unknown
2621
+ * @returns ImporterConfigDto Configuration reset successfully
2095
2622
  * @throws ApiError
2096
2623
  */
2097
- public static importerConfigController1(
2098
- data: ImporterConfigController1Data
2099
- ): CancelablePromise<ImporterConfigController1Response> {
2624
+ public static importerConfigControllerResetConfig(
2625
+ data: ImporterConfigControllerResetConfigData
2626
+ ): CancelablePromise<ImporterConfigControllerResetConfigResponse> {
2100
2627
  return __request(OpenAPI, {
2101
2628
  method: 'POST',
2102
2629
  url: '/api/v1/{region}/bean/import/config/{importerId}/reset',
2103
2630
  path: {
2631
+ importerId: data.importerId,
2104
2632
  region: data.region
2633
+ },
2634
+ errors: {
2635
+ 400: 'Invalid input - Unsupported importer'
2105
2636
  }
2106
2637
  });
2107
2638
  }
2108
2639
  }
2109
2640
 
2110
- export class ProviderSyncService {
2641
+ export class BeanPlatformsService {
2111
2642
  /**
2112
- * Sync transactions from financial data provider
2113
- *
2114
- * Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
2115
- *
2116
- * **Supported Providers:**
2117
- * - **plaid**: Plaid API (US, Canada, Europe)
2118
- * - **teller**: Teller API (US)
2119
- * - **truelayer**: TrueLayer Open Banking (UK, Europe)
2120
- * - **gocardless**: GoCardless Bank Account Data (Europe)
2121
- * - **simplefin**: SimpleFIN (Self-hosted)
2122
- * - **yodlee**: Yodlee (Global)
2123
- * - **beancount-direct**: Beancount format transactions
2124
- * - **parsed-bill**: Client-side parsed bill transactions
2125
- *
2126
- * **Processing Flow:**
2127
- * 1. Transform raw data via provider adapter
2128
- * 2. Validate transaction format
2129
- * 3. Deduplicate using originalId
2130
- * 4. Classify using rule engine
2131
- * 5. Route low-confidence to Review Center
2132
- * 6. Persist validated transactions
2133
- *
2643
+ * Get all platforms with statistics
2644
+ * @returns unknown List of platforms with binding and account counts
2645
+ * @throws ApiError
2646
+ */
2647
+ public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
2648
+ return __request(OpenAPI, {
2649
+ method: 'GET',
2650
+ url: '/api/v1/bean/platforms'
2651
+ });
2652
+ }
2653
+
2654
+ /**
2655
+ * Create a new platform
2134
2656
  * @param data The data for the request.
2135
- * @param data.providerName Provider name
2136
- * @param data.region Region code
2137
2657
  * @param data.requestBody
2138
- * @returns ProviderSyncResponseDto Sync completed successfully
2658
+ * @returns unknown Platform created successfully
2139
2659
  * @throws ApiError
2140
2660
  */
2141
- public static providerSyncControllerSync(
2142
- data: ProviderSyncControllerSyncData
2143
- ): CancelablePromise<ProviderSyncControllerSyncResponse> {
2661
+ public static platformControllerCreate(
2662
+ data: PlatformControllerCreateData
2663
+ ): CancelablePromise<PlatformControllerCreateResponse> {
2144
2664
  return __request(OpenAPI, {
2145
2665
  method: 'POST',
2146
- url: '/api/v1/{region}/bean/import/provider/{providerName}/sync',
2147
- path: {
2148
- providerName: data.providerName,
2149
- region: data.region
2150
- },
2666
+ url: '/api/v1/bean/platforms',
2667
+ body: data.requestBody,
2668
+ mediaType: 'application/json',
2669
+ errors: {
2670
+ 409: 'Platform already exists'
2671
+ }
2672
+ });
2673
+ }
2674
+
2675
+ /**
2676
+ * Get platform list for current user
2677
+ * @returns unknown List of platforms with user binding status
2678
+ * @throws ApiError
2679
+ */
2680
+ public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
2681
+ return __request(OpenAPI, {
2682
+ method: 'GET',
2683
+ url: '/api/v1/bean/platforms/list'
2684
+ });
2685
+ }
2686
+
2687
+ /**
2688
+ * Match platforms by name or alias
2689
+ * @param data The data for the request.
2690
+ * @param data.q Search query — Chinese name, English name, or abbreviation
2691
+ * @param data.region Region code for category override lookup
2692
+ * @returns unknown List of matching platforms with suggested segment names
2693
+ * @throws ApiError
2694
+ */
2695
+ public static platformControllerMatchPlatforms(
2696
+ data: PlatformControllerMatchPlatformsData
2697
+ ): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
2698
+ return __request(OpenAPI, {
2699
+ method: 'GET',
2700
+ url: '/api/v1/bean/platforms/match',
2701
+ query: {
2702
+ q: data.q,
2703
+ region: data.region
2704
+ }
2705
+ });
2706
+ }
2707
+
2708
+ /**
2709
+ * Update a platform
2710
+ * @param data The data for the request.
2711
+ * @param data.id Platform ID
2712
+ * @param data.requestBody
2713
+ * @returns unknown Platform updated successfully
2714
+ * @throws ApiError
2715
+ */
2716
+ public static platformControllerUpdate(
2717
+ data: PlatformControllerUpdateData
2718
+ ): CancelablePromise<PlatformControllerUpdateResponse> {
2719
+ return __request(OpenAPI, {
2720
+ method: 'PUT',
2721
+ url: '/api/v1/bean/platforms/{id}',
2722
+ path: {
2723
+ id: data.id
2724
+ },
2725
+ body: data.requestBody,
2726
+ mediaType: 'application/json',
2727
+ errors: {
2728
+ 404: 'Platform not found'
2729
+ }
2730
+ });
2731
+ }
2732
+
2733
+ /**
2734
+ * Delete a platform
2735
+ * @param data The data for the request.
2736
+ * @param data.id Platform ID
2737
+ * @returns void Platform deleted successfully
2738
+ * @throws ApiError
2739
+ */
2740
+ public static platformControllerDelete(
2741
+ data: PlatformControllerDeleteData
2742
+ ): CancelablePromise<PlatformControllerDeleteResponse> {
2743
+ return __request(OpenAPI, {
2744
+ method: 'DELETE',
2745
+ url: '/api/v1/bean/platforms/{id}',
2746
+ path: {
2747
+ id: data.id
2748
+ },
2749
+ errors: {
2750
+ 404: 'Platform not found'
2751
+ }
2752
+ });
2753
+ }
2754
+ }
2755
+
2756
+ export class ProviderSyncService {
2757
+ /**
2758
+ * Sync transactions from financial data provider
2759
+ *
2760
+ * Accepts raw transactions from external financial data providers, transforms them to Beancount format, and processes them through the ingestion pipeline.
2761
+ *
2762
+ * **Supported Providers:**
2763
+ * - **plaid**: Plaid API (US, Canada, Europe)
2764
+ * - **teller**: Teller API (US)
2765
+ * - **truelayer**: TrueLayer Open Banking (UK, Europe)
2766
+ * - **gocardless**: GoCardless Bank Account Data (Europe)
2767
+ * - **simplefin**: SimpleFIN (Self-hosted)
2768
+ * - **yodlee**: Yodlee (Global)
2769
+ * - **beancount-direct**: Beancount format transactions
2770
+ * - **parsed-bill**: Client-side parsed bill transactions
2771
+ *
2772
+ * **Processing Flow:**
2773
+ * 1. Transform raw data via provider adapter
2774
+ * 2. Validate transaction format
2775
+ * 3. Deduplicate using originalId
2776
+ * 4. Classify using rule engine
2777
+ * 5. Route low-confidence to Review Center
2778
+ * 6. Persist validated transactions
2779
+ *
2780
+ * @param data The data for the request.
2781
+ * @param data.providerName Provider name
2782
+ * @param data.region Region code for tenant context
2783
+ * @param data.requestBody
2784
+ * @returns ProviderSyncResponseDto Sync completed successfully
2785
+ * @throws ApiError
2786
+ */
2787
+ public static providerSyncControllerSync(
2788
+ data: ProviderSyncControllerSyncData
2789
+ ): CancelablePromise<ProviderSyncControllerSyncResponse> {
2790
+ return __request(OpenAPI, {
2791
+ method: 'POST',
2792
+ url: '/api/v1/{region}/bean/import/provider/{providerName}/sync',
2793
+ path: {
2794
+ providerName: data.providerName,
2795
+ region: data.region
2796
+ },
2151
2797
  body: data.requestBody,
2152
2798
  mediaType: 'application/json',
2153
2799
  errors: {
@@ -2161,13 +2807,20 @@ export class ProviderSyncService {
2161
2807
  /**
2162
2808
  * Get supported providers
2163
2809
  * Returns a list of all providers supported by the sync endpoint.
2810
+ * @param data The data for the request.
2811
+ * @param data.region Region code for tenant context
2164
2812
  * @returns SupportedProvidersResponseDto List of supported providers
2165
2813
  * @throws ApiError
2166
2814
  */
2167
- public static providerSyncControllerGetSupportedProviders(): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse> {
2815
+ public static providerSyncControllerGetSupportedProviders(
2816
+ data: ProviderSyncControllerGetSupportedProvidersData
2817
+ ): CancelablePromise<ProviderSyncControllerGetSupportedProvidersResponse> {
2168
2818
  return __request(OpenAPI, {
2169
2819
  method: 'GET',
2170
2820
  url: '/api/v1/{region}/bean/import/provider/supported',
2821
+ path: {
2822
+ region: data.region
2823
+ },
2171
2824
  errors: {
2172
2825
  401: 'Missing or invalid authentication'
2173
2826
  }
@@ -2179,6 +2832,7 @@ export class ProviderSyncService {
2179
2832
  * Returns whether a specific provider is supported.
2180
2833
  * @param data The data for the request.
2181
2834
  * @param data.providerName Provider name to check
2835
+ * @param data.region Region code for tenant context
2182
2836
  * @returns unknown Provider support status
2183
2837
  * @throws ApiError
2184
2838
  */
@@ -2189,7 +2843,8 @@ export class ProviderSyncService {
2189
2843
  method: 'GET',
2190
2844
  url: '/api/v1/{region}/bean/import/provider/{providerName}/supported',
2191
2845
  path: {
2192
- providerName: data.providerName
2846
+ providerName: data.providerName,
2847
+ region: data.region
2193
2848
  },
2194
2849
  errors: {
2195
2850
  401: 'Missing or invalid authentication'
@@ -2202,6 +2857,7 @@ export class ImportTelemetryService {
2202
2857
  /**
2203
2858
  * Receive anonymous parser failure telemetry
2204
2859
  * @param data The data for the request.
2860
+ * @param data.region Region code for tenant context
2205
2861
  * @param data.requestBody
2206
2862
  * @returns unknown Telemetry report received
2207
2863
  * @throws ApiError
@@ -2212,6 +2868,34 @@ export class ImportTelemetryService {
2212
2868
  return __request(OpenAPI, {
2213
2869
  method: 'POST',
2214
2870
  url: '/api/v1/{region}/bean/import/parser-telemetry',
2871
+ path: {
2872
+ region: data.region
2873
+ },
2874
+ body: data.requestBody,
2875
+ mediaType: 'application/json',
2876
+ errors: {
2877
+ 401: 'Unauthorized'
2878
+ }
2879
+ });
2880
+ }
2881
+
2882
+ /**
2883
+ * Receive anonymous zero-hit coverage miss report
2884
+ * @param data The data for the request.
2885
+ * @param data.region Region code for tenant context
2886
+ * @param data.requestBody
2887
+ * @returns unknown Coverage miss report received
2888
+ * @throws ApiError
2889
+ */
2890
+ public static telemetryControllerReportCoverageMiss(
2891
+ data: TelemetryControllerReportCoverageMissData
2892
+ ): CancelablePromise<TelemetryControllerReportCoverageMissResponse> {
2893
+ return __request(OpenAPI, {
2894
+ method: 'POST',
2895
+ url: '/api/v1/{region}/bean/import/parser-coverage-miss',
2896
+ path: {
2897
+ region: data.region
2898
+ },
2215
2899
  body: data.requestBody,
2216
2900
  mediaType: 'application/json',
2217
2901
  errors: {
@@ -2219,6 +2903,29 @@ export class ImportTelemetryService {
2219
2903
  }
2220
2904
  });
2221
2905
  }
2906
+
2907
+ /**
2908
+ * Coverage metrics (uncovered format aggregation)
2909
+ * @param data The data for the request.
2910
+ * @param data.region Region code for tenant context
2911
+ * @param data.topN Top-N uncovered formats (default 10)
2912
+ * @returns unknown Coverage metrics
2913
+ * @throws ApiError
2914
+ */
2915
+ public static telemetryControllerGetCoverageMetrics(
2916
+ data: TelemetryControllerGetCoverageMetricsData
2917
+ ): CancelablePromise<TelemetryControllerGetCoverageMetricsResponse> {
2918
+ return __request(OpenAPI, {
2919
+ method: 'GET',
2920
+ url: '/api/v1/{region}/bean/import/parser-coverage-metrics',
2921
+ path: {
2922
+ region: data.region
2923
+ },
2924
+ query: {
2925
+ topN: data.topN
2926
+ }
2927
+ });
2928
+ }
2222
2929
  }
2223
2930
 
2224
2931
  export class BeanNlpService {
@@ -2226,6 +2933,7 @@ export class BeanNlpService {
2226
2933
  * Process natural language input
2227
2934
  * Parse natural language text (Chinese/English) describing a transaction. Supports multi-turn dialogue for collecting missing information. When confidence < 0.75, returns "confirm" action requiring user verification. User can reply with confirmation words (确认/yes/ok) or provide corrections. Examples: "yesterday Starbucks spent 35 yuan", "today lunch 28 yuan", "spent $50 at Walmart"
2228
2935
  * @param data The data for the request.
2936
+ * @param data.region Region code for tenant context
2229
2937
  * @param data.requestBody Natural language transaction input with optional session ID
2230
2938
  * @returns NlpResponseDto NLP processing result - either created transaction or asking for more info
2231
2939
  * @throws ApiError
@@ -2236,6 +2944,9 @@ export class BeanNlpService {
2236
2944
  return __request(OpenAPI, {
2237
2945
  method: 'POST',
2238
2946
  url: '/api/v1/{region}/bean/nlp/process',
2947
+ path: {
2948
+ region: data.region
2949
+ },
2239
2950
  body: data.requestBody,
2240
2951
  mediaType: 'application/json',
2241
2952
  errors: {
@@ -2249,16 +2960,20 @@ export class BeanNlpService {
2249
2960
  * Clear dialogue session
2250
2961
  * Clear the current NLP dialogue session. Use this to cancel an ongoing multi-turn dialogue.
2251
2962
  * @param data The data for the request.
2963
+ * @param data.region Region code for tenant context
2252
2964
  * @param data.sessionId Specific session ID to clear (defaults to user session)
2253
2965
  * @returns void Session cleared successfully
2254
2966
  * @throws ApiError
2255
2967
  */
2256
2968
  public static nlpControllerClearSession(
2257
- data: NlpControllerClearSessionData = {}
2969
+ data: NlpControllerClearSessionData
2258
2970
  ): CancelablePromise<NlpControllerClearSessionResponse> {
2259
2971
  return __request(OpenAPI, {
2260
2972
  method: 'DELETE',
2261
2973
  url: '/api/v1/{region}/bean/nlp/session',
2974
+ path: {
2975
+ region: data.region
2976
+ },
2262
2977
  query: {
2263
2978
  sessionId: data.sessionId
2264
2979
  },
@@ -2272,16 +2987,20 @@ export class BeanNlpService {
2272
2987
  * Get current session state
2273
2988
  * Get the current NLP dialogue session state. Useful for debugging and displaying session context in UI.
2274
2989
  * @param data The data for the request.
2990
+ * @param data.region Region code for tenant context
2275
2991
  * @param data.sessionId Specific session ID to get (defaults to user session)
2276
2992
  * @returns unknown Current session state (or null if no active session)
2277
2993
  * @throws ApiError
2278
2994
  */
2279
2995
  public static nlpControllerGetSession(
2280
- data: NlpControllerGetSessionData = {}
2996
+ data: NlpControllerGetSessionData
2281
2997
  ): CancelablePromise<NlpControllerGetSessionResponse> {
2282
2998
  return __request(OpenAPI, {
2283
2999
  method: 'GET',
2284
3000
  url: '/api/v1/{region}/bean/nlp/session',
3001
+ path: {
3002
+ region: data.region
3003
+ },
2285
3004
  query: {
2286
3005
  sessionId: data.sessionId
2287
3006
  },
@@ -2292,250 +3011,291 @@ export class BeanNlpService {
2292
3011
  }
2293
3012
  }
2294
3013
 
2295
- export class BeanPlatformsService {
3014
+ export class DashboardService {
2296
3015
  /**
2297
- * Get all platforms with statistics
2298
- * @returns unknown List of platforms with binding and account counts
3016
+ * Get net worth overview
3017
+ * Returns total net worth with breakdown of assets and liabilities
3018
+ * @param data The data for the request.
3019
+ * @param data.region Region code for tenant context
3020
+ * @param data.date Date for balance calculation (ISO 8601 format)
3021
+ * @returns NetWorthResponseDto Net worth retrieved successfully
2299
3022
  * @throws ApiError
2300
3023
  */
2301
- public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
3024
+ public static dashboardControllerGetNetWorth(
3025
+ data: DashboardControllerGetNetWorthData
3026
+ ): CancelablePromise<DashboardControllerGetNetWorthResponse> {
2302
3027
  return __request(OpenAPI, {
2303
3028
  method: 'GET',
2304
- url: '/api/v1/bean/platforms'
2305
- });
2306
- }
2307
-
2308
- /**
2309
- * @returns unknown
2310
- * @throws ApiError
2311
- */
2312
- public static platformController(): CancelablePromise<PlatformControllerResponse> {
2313
- return __request(OpenAPI, {
2314
- method: 'POST',
2315
- url: '/api/v1/bean/platforms'
3029
+ url: '/api/v1/{region}/dashboard/net-worth',
3030
+ path: {
3031
+ region: data.region
3032
+ },
3033
+ query: {
3034
+ date: data.date
3035
+ },
3036
+ errors: {
3037
+ 401: 'User not authenticated'
3038
+ }
2316
3039
  });
2317
3040
  }
2318
3041
 
2319
3042
  /**
2320
- * Get platform list for current user
2321
- * @returns unknown List of platforms with user binding status
3043
+ * Get accounts grouped by platform
3044
+ * Returns accounts with balances grouped by financial platform
3045
+ * @param data The data for the request.
3046
+ * @param data.region Region code for tenant context
3047
+ * @param data.groupBy Grouping strategy
3048
+ * @param data.date Date for balance calculation (ISO 8601 format)
3049
+ * @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
3050
+ * @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
2322
3051
  * @throws ApiError
2323
3052
  */
2324
- public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
3053
+ public static dashboardControllerGetAccounts(
3054
+ data: DashboardControllerGetAccountsData
3055
+ ): CancelablePromise<DashboardControllerGetAccountsResponse> {
2325
3056
  return __request(OpenAPI, {
2326
3057
  method: 'GET',
2327
- url: '/api/v1/bean/platforms/list'
2328
- });
2329
- }
2330
-
2331
- /**
2332
- * @returns unknown
2333
- * @throws ApiError
2334
- */
2335
- public static platformController1(): CancelablePromise<PlatformController1Response> {
2336
- return __request(OpenAPI, {
2337
- method: 'PUT',
2338
- url: '/api/v1/bean/platforms/{id}'
2339
- });
2340
- }
2341
-
2342
- /**
2343
- * @returns void
2344
- * @throws ApiError
2345
- */
2346
- public static platformController2(): CancelablePromise<PlatformController2Response> {
2347
- return __request(OpenAPI, {
2348
- method: 'DELETE',
2349
- url: '/api/v1/bean/platforms/{id}'
3058
+ url: '/api/v1/{region}/dashboard/accounts',
3059
+ path: {
3060
+ region: data.region
3061
+ },
3062
+ query: {
3063
+ groupBy: data.groupBy,
3064
+ date: data.date,
3065
+ accountId: data.accountId
3066
+ },
3067
+ errors: {
3068
+ 401: 'User not authenticated'
3069
+ }
2350
3070
  });
2351
3071
  }
2352
- }
2353
3072
 
2354
- export class SymbolsService {
2355
3073
  /**
2356
- * Search for symbols
2357
- * Search symbols by query with optional filters for asset class, area, and indices
3074
+ * Get cash flow summary
3075
+ * Returns income, expenses, and savings for a monthly period
2358
3076
  * @param data The data for the request.
2359
- * @param data.includeIndices Include index symbols in results
2360
- * @param data.assetSubClass Asset sub-class filter
2361
- * @param data.assetClass Asset class filter
2362
- * @param data.area Geographic area filter (e.g., CN, US)
2363
- * @param data.query Search query string
2364
- * @returns unknown Symbols found successfully
3077
+ * @param data.period Period in YYYY-MM format
3078
+ * @param data.region Region code for tenant context
3079
+ * @returns CashFlowResponseDto Cash flow retrieved successfully
2365
3080
  * @throws ApiError
2366
3081
  */
2367
- public static symbolControllerLookupSymbol(
2368
- data: SymbolControllerLookupSymbolData = {}
2369
- ): CancelablePromise<SymbolControllerLookupSymbolResponse> {
3082
+ public static dashboardControllerGetCashFlow(
3083
+ data: DashboardControllerGetCashFlowData
3084
+ ): CancelablePromise<DashboardControllerGetCashFlowResponse> {
2370
3085
  return __request(OpenAPI, {
2371
3086
  method: 'GET',
2372
- url: '/api/v1/market/symbols/lookup',
3087
+ url: '/api/v1/{region}/dashboard/cash-flow',
3088
+ path: {
3089
+ region: data.region
3090
+ },
2373
3091
  query: {
2374
- includeIndices: data.includeIndices,
2375
- assetSubClass: data.assetSubClass,
2376
- assetClass: data.assetClass,
2377
- area: data.area,
2378
- query: data.query
3092
+ period: data.period
2379
3093
  },
2380
3094
  errors: {
2381
- 400: 'Invalid query parameters'
3095
+ 400: 'Invalid period format',
3096
+ 401: 'User not authenticated'
2382
3097
  }
2383
3098
  });
2384
3099
  }
3100
+ }
2385
3101
 
3102
+ export class InvestmentService {
2386
3103
  /**
2387
- * Get symbol data
2388
- * Retrieve detailed symbol information including optional historical data
3104
+ * Get per-holding unrealized + realized P&L
3105
+ * Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
2389
3106
  * @param data The data for the request.
2390
- * @param data.dataSource Data source provider
2391
- * @param data.symbol Symbol identifier (e.g., ticker code)
2392
- * @param data.includeHistoricalData Include historical price data (0 or 1)
2393
- * @returns unknown Symbol data retrieved successfully
3107
+ * @param data.region Region code for tenant context
3108
+ * @param data.asOf As-of date (ISO 8601), defaults to today
3109
+ * @param data.accountId Scope to a single account
3110
+ * @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
3111
+ * @returns HoldingPnlResponseDto Holding P&L retrieved successfully
2394
3112
  * @throws ApiError
2395
3113
  */
2396
- public static symbolControllerGetSymbolData(
2397
- data: SymbolControllerGetSymbolDataData
2398
- ): CancelablePromise<SymbolControllerGetSymbolDataResponse> {
3114
+ public static holdingPnlControllerGetHoldingPnl(
3115
+ data: HoldingPnlControllerGetHoldingPnlData
3116
+ ): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
2399
3117
  return __request(OpenAPI, {
2400
3118
  method: 'GET',
2401
- url: '/api/v1/market/symbols/{dataSource}/{symbol}',
3119
+ url: '/api/v1/{region}/investment/holdings/pnl',
2402
3120
  path: {
2403
- dataSource: data.dataSource,
2404
- symbol: data.symbol
3121
+ region: data.region
2405
3122
  },
2406
3123
  query: {
2407
- includeHistoricalData: data.includeHistoricalData
3124
+ asOf: data.asOf,
3125
+ accountId: data.accountId,
3126
+ method: data.method
2408
3127
  },
2409
3128
  errors: {
2410
- 400: 'Invalid data source',
2411
- 404: 'Symbol not found'
3129
+ 400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
3130
+ 401: 'User not authenticated'
2412
3131
  }
2413
3132
  });
2414
3133
  }
3134
+ }
2415
3135
 
3136
+ export class BeanPricesService {
2416
3137
  /**
2417
- * Gather symbol data for specific date
2418
- * Retrieve historical symbol data for a specific date
3138
+ * Create a new price
3139
+ * Creates a new price entry for the authenticated user
2419
3140
  * @param data The data for the request.
2420
- * @param data.dataSource Data source provider
2421
- * @param data.dateString Date in ISO 8601 format (YYYY-MM-DD)
2422
- * @param data.symbol Symbol identifier (e.g., ticker code)
2423
- * @returns unknown Historical data retrieved successfully
3141
+ * @param data.region Region code for tenant context
3142
+ * @param data.requestBody
3143
+ * @returns PriceResponseDto Price created successfully
2424
3144
  * @throws ApiError
2425
3145
  */
2426
- public static symbolControllerGatherSymbolForDate(
2427
- data: SymbolControllerGatherSymbolForDateData
2428
- ): CancelablePromise<SymbolControllerGatherSymbolForDateResponse> {
3146
+ public static priceControllerCreate(
3147
+ data: PriceControllerCreateData
3148
+ ): CancelablePromise<PriceControllerCreateResponse> {
2429
3149
  return __request(OpenAPI, {
2430
- method: 'GET',
2431
- url: '/api/v1/market/symbols/{dataSource}/{symbol}/{dateString}',
3150
+ method: 'POST',
3151
+ url: '/api/v1/{region}/bean/prices',
2432
3152
  path: {
2433
- dataSource: data.dataSource,
2434
- dateString: data.dateString,
2435
- symbol: data.symbol
3153
+ region: data.region
2436
3154
  },
3155
+ body: data.requestBody,
3156
+ mediaType: 'application/json',
2437
3157
  errors: {
2438
- 400: 'Invalid date format',
2439
- 404: 'Symbol data not found for specified date'
3158
+ 404: 'Currency or quoteCurrency commodity not found',
3159
+ 409: 'Price already exists for this currency pair and date'
2440
3160
  }
2441
3161
  });
2442
3162
  }
2443
3163
 
2444
3164
  /**
2445
- * @returns unknown
3165
+ * List user prices
3166
+ * Returns all price entries for the authenticated user with optional filtering
3167
+ * @param data The data for the request.
3168
+ * @param data.region Region code for tenant context
3169
+ * @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
3170
+ * @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
3171
+ * @param data.dateFrom Filter prices from this date (ISO 8601 format)
3172
+ * @param data.dateTo Filter prices to this date (ISO 8601 format)
3173
+ * @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
3174
+ * @param data.page Page number for pagination (default: 1)
3175
+ * @param data.limit Number of items per page (default: 20, max: 100)
3176
+ * @returns PriceListResponseDto Prices retrieved successfully
2446
3177
  * @throws ApiError
2447
3178
  */
2448
- public static symbolController(): CancelablePromise<SymbolControllerResponse> {
3179
+ public static priceControllerFindAll(
3180
+ data: PriceControllerFindAllData
3181
+ ): CancelablePromise<PriceControllerFindAllResponse> {
2449
3182
  return __request(OpenAPI, {
2450
- method: 'PUT',
2451
- url: '/api/v1/market/symbols/yahoo/batch-update'
3183
+ method: 'GET',
3184
+ url: '/api/v1/{region}/bean/prices',
3185
+ path: {
3186
+ region: data.region
3187
+ },
3188
+ query: {
3189
+ currency: data.currency,
3190
+ quoteCurrency: data.quoteCurrency,
3191
+ dateFrom: data.dateFrom,
3192
+ dateTo: data.dateTo,
3193
+ search: data.search,
3194
+ page: data.page,
3195
+ limit: data.limit
3196
+ }
2452
3197
  });
2453
3198
  }
2454
- }
2455
3199
 
2456
- export class DefaultService {
2457
3200
  /**
2458
- * @returns unknown
3201
+ * Get price by ID
3202
+ * Returns a single price entry by its ID
3203
+ * @param data The data for the request.
3204
+ * @param data.id Price ID
3205
+ * @param data.region Region code for tenant context
3206
+ * @returns PriceResponseDto Price retrieved successfully
2459
3207
  * @throws ApiError
2460
3208
  */
2461
- public static cacheControllerFlushCache(): CancelablePromise<CacheControllerFlushCacheResponse> {
3209
+ public static priceControllerFindOne(
3210
+ data: PriceControllerFindOneData
3211
+ ): CancelablePromise<PriceControllerFindOneResponse> {
2462
3212
  return __request(OpenAPI, {
2463
- method: 'POST',
2464
- url: '/api/v1/cache/flush'
3213
+ method: 'GET',
3214
+ url: '/api/v1/{region}/bean/prices/{id}',
3215
+ path: {
3216
+ id: data.id,
3217
+ region: data.region
3218
+ },
3219
+ errors: {
3220
+ 404: 'Price not found'
3221
+ }
2465
3222
  });
2466
3223
  }
2467
- }
2468
3224
 
2469
- export class DashboardService {
2470
3225
  /**
2471
- * Get net worth overview
2472
- * Returns total net worth with breakdown of assets and liabilities
3226
+ * Update a price
3227
+ * Updates an existing price entry
2473
3228
  * @param data The data for the request.
2474
- * @param data.date Date for balance calculation (ISO 8601 format)
2475
- * @returns NetWorthResponseDto Net worth retrieved successfully
3229
+ * @param data.id Price ID
3230
+ * @param data.region Region code for tenant context
3231
+ * @param data.requestBody
3232
+ * @returns PriceResponseDto Price updated successfully
2476
3233
  * @throws ApiError
2477
3234
  */
2478
- public static dashboardControllerGetNetWorth(
2479
- data: DashboardControllerGetNetWorthData = {}
2480
- ): CancelablePromise<DashboardControllerGetNetWorthResponse> {
3235
+ public static priceControllerUpdate(
3236
+ data: PriceControllerUpdateData
3237
+ ): CancelablePromise<PriceControllerUpdateResponse> {
2481
3238
  return __request(OpenAPI, {
2482
- method: 'GET',
2483
- url: '/api/v1/{region}/dashboard/net-worth',
2484
- query: {
2485
- date: data.date
3239
+ method: 'PUT',
3240
+ url: '/api/v1/{region}/bean/prices/{id}',
3241
+ path: {
3242
+ id: data.id,
3243
+ region: data.region
2486
3244
  },
3245
+ body: data.requestBody,
3246
+ mediaType: 'application/json',
2487
3247
  errors: {
2488
- 401: 'User not authenticated'
3248
+ 404: 'Price not found',
3249
+ 409: 'Updated price conflicts with existing price'
2489
3250
  }
2490
3251
  });
2491
3252
  }
2492
3253
 
2493
3254
  /**
2494
- * Get accounts grouped by platform
2495
- * Returns accounts with balances grouped by financial platform
3255
+ * Delete a price
3256
+ * Deletes a price entry (hard delete)
2496
3257
  * @param data The data for the request.
2497
- * @param data.groupBy Grouping strategy
2498
- * @param data.date Date for balance calculation (ISO 8601 format)
2499
- * @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
3258
+ * @param data.id Price ID
3259
+ * @param data.region Region code for tenant context
3260
+ * @returns void Price deleted successfully
2500
3261
  * @throws ApiError
2501
3262
  */
2502
- public static dashboardControllerGetAccounts(
2503
- data: DashboardControllerGetAccountsData = {}
2504
- ): CancelablePromise<DashboardControllerGetAccountsResponse> {
3263
+ public static priceControllerDelete(
3264
+ data: PriceControllerDeleteData
3265
+ ): CancelablePromise<PriceControllerDeleteResponse> {
2505
3266
  return __request(OpenAPI, {
2506
- method: 'GET',
2507
- url: '/api/v1/{region}/dashboard/accounts',
2508
- query: {
2509
- groupBy: data.groupBy,
2510
- date: data.date
3267
+ method: 'DELETE',
3268
+ url: '/api/v1/{region}/bean/prices/{id}',
3269
+ path: {
3270
+ id: data.id,
3271
+ region: data.region
2511
3272
  },
2512
3273
  errors: {
2513
- 401: 'User not authenticated'
3274
+ 404: 'Price not found'
2514
3275
  }
2515
3276
  });
2516
3277
  }
2517
3278
 
2518
3279
  /**
2519
- * Get cash flow summary
2520
- * Returns income, expenses, and savings for a monthly period
3280
+ * Bulk create prices
3281
+ * Creates multiple price entries at once (skips duplicates)
2521
3282
  * @param data The data for the request.
2522
- * @param data.period Period in YYYY-MM format
2523
- * @returns CashFlowResponseDto Cash flow retrieved successfully
3283
+ * @param data.region Region code for tenant context
3284
+ * @param data.requestBody
3285
+ * @returns PriceResponseDto Prices created successfully
2524
3286
  * @throws ApiError
2525
3287
  */
2526
- public static dashboardControllerGetCashFlow(
2527
- data: DashboardControllerGetCashFlowData
2528
- ): CancelablePromise<DashboardControllerGetCashFlowResponse> {
3288
+ public static priceControllerBulkCreate(
3289
+ data: PriceControllerBulkCreateData
3290
+ ): CancelablePromise<PriceControllerBulkCreateResponse> {
2529
3291
  return __request(OpenAPI, {
2530
- method: 'GET',
2531
- url: '/api/v1/{region}/dashboard/cash-flow',
2532
- query: {
2533
- period: data.period
3292
+ method: 'POST',
3293
+ url: '/api/v1/{region}/bean/prices/bulk',
3294
+ path: {
3295
+ region: data.region
2534
3296
  },
2535
- errors: {
2536
- 400: 'Invalid period format',
2537
- 401: 'User not authenticated'
2538
- }
3297
+ body: data.requestBody,
3298
+ mediaType: 'application/json'
2539
3299
  });
2540
3300
  }
2541
3301
  }
@@ -2556,17 +3316,21 @@ export class ReportingService {
2556
3316
  * - `granularity`: Data granularity (day, week, month)
2557
3317
  *
2558
3318
  * @param data The data for the request.
3319
+ * @param data.region Region code for tenant context
2559
3320
  * @param data.period Time period
2560
3321
  * @param data.granularity Data granularity
2561
3322
  * @returns PortfolioTrendsResponseDto Trends retrieved successfully
2562
3323
  * @throws ApiError
2563
3324
  */
2564
3325
  public static reportingControllerGetPortfolioTrends(
2565
- data: ReportingControllerGetPortfolioTrendsData = {}
3326
+ data: ReportingControllerGetPortfolioTrendsData
2566
3327
  ): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
2567
3328
  return __request(OpenAPI, {
2568
3329
  method: 'GET',
2569
3330
  url: '/api/v1/{region}/reporting/portfolio/trends',
3331
+ path: {
3332
+ region: data.region
3333
+ },
2570
3334
  query: {
2571
3335
  period: data.period,
2572
3336
  granularity: data.granularity
@@ -2593,6 +3357,7 @@ export class ReportingService {
2593
3357
  * - Initial setup for new users
2594
3358
  *
2595
3359
  * @param data The data for the request.
3360
+ * @param data.region Region code for tenant context
2596
3361
  * @param data.requestBody Optional date (defaults to today)
2597
3362
  * @returns GenerateSnapshotResponse Snapshot generated successfully
2598
3363
  * @throws ApiError
@@ -2603,6 +3368,9 @@ export class ReportingService {
2603
3368
  return __request(OpenAPI, {
2604
3369
  method: 'POST',
2605
3370
  url: '/api/v1/{region}/reporting/snapshots/generate',
3371
+ path: {
3372
+ region: data.region
3373
+ },
2606
3374
  body: data.requestBody,
2607
3375
  mediaType: 'application/json',
2608
3376
  errors: {
@@ -2628,6 +3396,7 @@ export class ReportingService {
2628
3396
  * - Existing snapshots are skipped (not regenerated)
2629
3397
  *
2630
3398
  * @param data The data for the request.
3399
+ * @param data.region Region code for tenant context
2631
3400
  * @param data.requestBody
2632
3401
  * @returns BackfillSnapshotsResponse Backfill completed successfully
2633
3402
  * @throws ApiError
@@ -2638,6 +3407,9 @@ export class ReportingService {
2638
3407
  return __request(OpenAPI, {
2639
3408
  method: 'POST',
2640
3409
  url: '/api/v1/{region}/reporting/snapshots/backfill',
3410
+ path: {
3411
+ region: data.region
3412
+ },
2641
3413
  body: data.requestBody,
2642
3414
  mediaType: 'application/json',
2643
3415
  errors: {
@@ -2651,13 +3423,18 @@ export class ReportingService {
2651
3423
 
2652
3424
  export class ApiKeysService {
2653
3425
  /**
2654
- * @returns unknown
3426
+ * Create API key
3427
+ * Generates a new API key for the authenticated user
3428
+ * @returns unknown API key created successfully
2655
3429
  * @throws ApiError
2656
3430
  */
2657
- public static apiKeysController(): CancelablePromise<ApiKeysControllerResponse> {
3431
+ public static apiKeysControllerCreateApiKey(): CancelablePromise<ApiKeysControllerCreateApiKeyResponse> {
2658
3432
  return __request(OpenAPI, {
2659
3433
  method: 'POST',
2660
- url: '/api/v1/auth/api-keys'
3434
+ url: '/api/v1/auth/api-keys',
3435
+ errors: {
3436
+ 403: 'Insufficient permissions to create API key'
3437
+ }
2661
3438
  });
2662
3439
  }
2663
3440
  }
@@ -2685,6 +3462,19 @@ export class AuthService {
2685
3462
  }
2686
3463
  }
2687
3464
 
3465
+ export class DefaultService {
3466
+ /**
3467
+ * @returns unknown
3468
+ * @throws ApiError
3469
+ */
3470
+ public static cacheControllerFlushCache(): CancelablePromise<CacheControllerFlushCacheResponse> {
3471
+ return __request(OpenAPI, {
3472
+ method: 'POST',
3473
+ url: '/api/v1/cache/flush'
3474
+ });
3475
+ }
3476
+ }
3477
+
2688
3478
  export class ExchangeRateService {
2689
3479
  /**
2690
3480
  * Get exchange rate for currency pair
@@ -2743,6 +3533,21 @@ export class HealthService {
2743
3533
  });
2744
3534
  }
2745
3535
 
3536
+ /**
3537
+ * Check OpenBB schema status
3538
+ * @returns unknown OpenBB status
3539
+ * @throws ApiError
3540
+ */
3541
+ public static healthControllerCheckOpenBb(): CancelablePromise<HealthControllerCheckOpenBbResponse> {
3542
+ return __request(OpenAPI, {
3543
+ method: 'GET',
3544
+ url: '/api/v1/health/openbb',
3545
+ errors: {
3546
+ 503: 'OpenBB unavailable'
3547
+ }
3548
+ });
3549
+ }
3550
+
2746
3551
  /**
2747
3552
  * Check Redis connection health
2748
3553
  * @returns unknown Redis is healthy
@@ -2811,69 +3616,6 @@ export class HealthService {
2811
3616
  }
2812
3617
  });
2813
3618
  }
2814
-
2815
- /**
2816
- * Check health of a specific data enhancer
2817
- * @param data The data for the request.
2818
- * @param data.name Data enhancer name
2819
- * @returns unknown Data enhancer is healthy
2820
- * @throws ApiError
2821
- */
2822
- public static healthControllerGetHealthOfDataEnhancer(
2823
- data: HealthControllerGetHealthOfDataEnhancerData
2824
- ): CancelablePromise<HealthControllerGetHealthOfDataEnhancerResponse> {
2825
- return __request(OpenAPI, {
2826
- method: 'GET',
2827
- url: '/api/v1/health/data-enhancer/{name}',
2828
- path: {
2829
- name: data.name
2830
- },
2831
- errors: {
2832
- 401: 'Unauthorized',
2833
- 503: 'Data enhancer unavailable'
2834
- }
2835
- });
2836
- }
2837
-
2838
- /**
2839
- * Check health of all data providers
2840
- * @returns unknown Data providers health status
2841
- * @throws ApiError
2842
- */
2843
- public static healthControllerCheckDataProviders(): CancelablePromise<HealthControllerCheckDataProvidersResponse> {
2844
- return __request(OpenAPI, {
2845
- method: 'GET',
2846
- url: '/api/v1/health/data-providers',
2847
- errors: {
2848
- 401: 'Unauthorized',
2849
- 503: 'Data providers check failed'
2850
- }
2851
- });
2852
- }
2853
-
2854
- /**
2855
- * Check health of a specific data provider
2856
- * @param data The data for the request.
2857
- * @param data.dataSource Data source identifier
2858
- * @returns unknown Data provider is healthy
2859
- * @throws ApiError
2860
- */
2861
- public static healthControllerGetHealthOfDataProvider(
2862
- data: HealthControllerGetHealthOfDataProviderData
2863
- ): CancelablePromise<HealthControllerGetHealthOfDataProviderResponse> {
2864
- return __request(OpenAPI, {
2865
- method: 'GET',
2866
- url: '/api/v1/health/data-provider/{dataSource}',
2867
- path: {
2868
- dataSource: data.dataSource
2869
- },
2870
- errors: {
2871
- 400: 'Invalid data source',
2872
- 401: 'Unauthorized',
2873
- 503: 'Data provider unavailable'
2874
- }
2875
- });
2876
- }
2877
3619
  }
2878
3620
 
2879
3621
  export class InfoService {
@@ -2889,93 +3631,3 @@ export class InfoService {
2889
3631
  });
2890
3632
  }
2891
3633
  }
2892
-
2893
- export class LogosService {
2894
- /**
2895
- * Get asset logo by data source and symbol
2896
- * @param data The data for the request.
2897
- * @param data.dataSource Data source identifier (e.g., YAHOO, COINGECKO)
2898
- * @param data.symbol Asset symbol (e.g., AAPL, BTC)
2899
- * @returns unknown Logo image stream (favicon)
2900
- * @throws ApiError
2901
- */
2902
- public static logoControllerGetLogoByDataSourceAndSymbol(
2903
- data: LogoControllerGetLogoByDataSourceAndSymbolData
2904
- ): CancelablePromise<LogoControllerGetLogoByDataSourceAndSymbolResponse> {
2905
- return __request(OpenAPI, {
2906
- method: 'GET',
2907
- url: '/api/v1/market/logos/{dataSource}/{symbol}',
2908
- path: {
2909
- dataSource: data.dataSource,
2910
- symbol: data.symbol
2911
- },
2912
- errors: {
2913
- 401: 'Unauthorized',
2914
- 404: 'Logo not found for the specified asset',
2915
- 503: 'Service unavailable'
2916
- }
2917
- });
2918
- }
2919
-
2920
- /**
2921
- * Get website favicon by URL
2922
- * @param data The data for the request.
2923
- * @param data.url Website URL to fetch favicon from
2924
- * @returns unknown Logo image stream (favicon)
2925
- * @throws ApiError
2926
- */
2927
- public static logoControllerGetLogoByUrl(
2928
- data: LogoControllerGetLogoByUrlData
2929
- ): CancelablePromise<LogoControllerGetLogoByUrlResponse> {
2930
- return __request(OpenAPI, {
2931
- method: 'GET',
2932
- url: '/api/v1/market/logos',
2933
- query: {
2934
- url: data.url
2935
- },
2936
- errors: {
2937
- 401: 'Unauthorized',
2938
- 503: 'Service unavailable'
2939
- }
2940
- });
2941
- }
2942
- }
2943
-
2944
- export class MarketDataService {
2945
- /**
2946
- * Get market data by symbol
2947
- * Retrieves market data and asset profile for a given symbol and data source
2948
- * @param data The data for the request.
2949
- * @param data.dataSource Data source provider
2950
- * @param data.symbol Symbol code
2951
- * @returns unknown Market data retrieved successfully
2952
- * @throws ApiError
2953
- */
2954
- public static marketDataControllerGetMarketDataBySymbol(
2955
- data: MarketDataControllerGetMarketDataBySymbolData
2956
- ): CancelablePromise<MarketDataControllerGetMarketDataBySymbolResponse> {
2957
- return __request(OpenAPI, {
2958
- method: 'GET',
2959
- url: '/api/v1/market-data/{dataSource}/{symbol}',
2960
- path: {
2961
- dataSource: data.dataSource,
2962
- symbol: data.symbol
2963
- },
2964
- errors: {
2965
- 403: 'Insufficient permissions to read market data',
2966
- 404: 'Market data not found'
2967
- }
2968
- });
2969
- }
2970
-
2971
- /**
2972
- * @returns unknown
2973
- * @throws ApiError
2974
- */
2975
- public static marketDataController(): CancelablePromise<MarketDataControllerResponse> {
2976
- return __request(OpenAPI, {
2977
- method: 'POST',
2978
- url: '/api/v1/market-data/{dataSource}/{symbol}'
2979
- });
2980
- }
2981
- }