@firela/api-types 0.0.0-canary.2d71872c → 0.0.0-canary.2e2a26ba

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.
@@ -143,26 +143,14 @@ import type {
143
143
  ExpectedTransactionControllerEnterNowResponse,
144
144
  ForecastControllerGetForecastData,
145
145
  ForecastControllerGetForecastResponse,
146
- TransactionRuleControllerCreateData,
147
- TransactionRuleControllerCreateResponse,
148
- TransactionRuleControllerListData,
149
- TransactionRuleControllerListResponse,
150
- TransactionRuleControllerValidateData,
151
- TransactionRuleControllerValidateResponse,
152
- TransactionRuleControllerBulkCreateData,
153
- TransactionRuleControllerBulkCreateResponse,
154
- TransactionRuleControllerExportData,
155
- TransactionRuleControllerExportResponse,
156
- TransactionRuleControllerGetStatisticsData,
157
- TransactionRuleControllerGetStatisticsResponse,
158
- TransactionRuleControllerGetDetailData,
159
- TransactionRuleControllerGetDetailResponse,
160
- TransactionRuleControllerUpdateData,
161
- TransactionRuleControllerUpdateResponse,
162
- TransactionRuleControllerDeleteData,
163
- TransactionRuleControllerDeleteResponse,
164
- TransactionRuleControllerTestData,
165
- TransactionRuleControllerTestResponse,
146
+ ReportingControllerGetPortfolioTrendsData,
147
+ ReportingControllerGetPortfolioTrendsResponse,
148
+ ReportingControllerGetCashFlowTrendsData,
149
+ ReportingControllerGetCashFlowTrendsResponse,
150
+ ReportingControllerGenerateSnapshotData,
151
+ ReportingControllerGenerateSnapshotResponse,
152
+ ReportingControllerBackfillSnapshotsData,
153
+ ReportingControllerBackfillSnapshotsResponse,
166
154
  UserControllerDeleteOwnUserData,
167
155
  UserControllerDeleteOwnUserResponse,
168
156
  UserControllerGetUserData,
@@ -185,6 +173,26 @@ import type {
185
173
  PropertyControllerUpdateResponse,
186
174
  PropertyControllerDeleteData,
187
175
  PropertyControllerDeleteResponse,
176
+ TransactionRuleControllerCreateData,
177
+ TransactionRuleControllerCreateResponse,
178
+ TransactionRuleControllerListData,
179
+ TransactionRuleControllerListResponse,
180
+ TransactionRuleControllerValidateData,
181
+ TransactionRuleControllerValidateResponse,
182
+ TransactionRuleControllerBulkCreateData,
183
+ TransactionRuleControllerBulkCreateResponse,
184
+ TransactionRuleControllerExportData,
185
+ TransactionRuleControllerExportResponse,
186
+ TransactionRuleControllerGetStatisticsData,
187
+ TransactionRuleControllerGetStatisticsResponse,
188
+ TransactionRuleControllerGetDetailData,
189
+ TransactionRuleControllerGetDetailResponse,
190
+ TransactionRuleControllerUpdateData,
191
+ TransactionRuleControllerUpdateResponse,
192
+ TransactionRuleControllerDeleteData,
193
+ TransactionRuleControllerDeleteResponse,
194
+ TransactionRuleControllerTestData,
195
+ TransactionRuleControllerTestResponse,
188
196
  EventControllerCreateData,
189
197
  EventControllerCreateResponse,
190
198
  EventControllerFindAllData,
@@ -266,14 +274,6 @@ import type {
266
274
  DashboardControllerGetExpensesResponse,
267
275
  HoldingPnlControllerGetHoldingPnlData,
268
276
  HoldingPnlControllerGetHoldingPnlResponse,
269
- ReportingControllerGetPortfolioTrendsData,
270
- ReportingControllerGetPortfolioTrendsResponse,
271
- ReportingControllerGetCashFlowTrendsData,
272
- ReportingControllerGetCashFlowTrendsResponse,
273
- ReportingControllerGenerateSnapshotData,
274
- ReportingControllerGenerateSnapshotResponse,
275
- ReportingControllerBackfillSnapshotsData,
276
- ReportingControllerBackfillSnapshotsResponse,
277
277
  ApiKeysControllerCreateApiKeyResponse,
278
278
  AuthControllerAccessTokenLoginData,
279
279
  AuthControllerAccessTokenLoginResponse,
@@ -288,7 +288,11 @@ import type {
288
288
  HealthControllerResetCircuitBreakerData,
289
289
  HealthControllerResetCircuitBreakerResponse,
290
290
  HealthControllerGetMetricsResponse,
291
- InfoControllerGetInfoResponse
291
+ InfoControllerGetInfoResponse,
292
+ SymbolControllerSearchData,
293
+ SymbolControllerSearchResponse,
294
+ SymbolControllerGetQuoteData,
295
+ SymbolControllerGetQuoteResponse
292
296
  } from './types.gen';
293
297
 
294
298
  export class BeanAccountsService {
@@ -2161,534 +2165,691 @@ export class RecurringForecastService {
2161
2165
  }
2162
2166
  }
2163
2167
 
2164
- export class BeanTransactionRulesService {
2168
+ export class ReportingService {
2165
2169
  /**
2166
- * Create a new transaction rule (or upsert if upsertByPayee=true)
2167
- * Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
2170
+ * Get portfolio value trends
2171
+ *
2172
+ * Returns time series data of portfolio net worth.
2173
+ *
2174
+ * **Multi-currency Support:**
2175
+ * - `series[].byCurrency` - Currency breakdown for each data point
2176
+ * - `byCurrency` - Separate time series grouped by currency
2177
+ * - `warnings` - Exchange rate warnings if conversion failed
2178
+ *
2179
+ * **Parameters:**
2180
+ * - `period`: Time period (1m, 3m, 6m, 1y)
2181
+ * - `granularity`: Data granularity (day, week, month)
2182
+ *
2168
2183
  * @param data The data for the request.
2169
2184
  * @param data.region Region code for tenant context
2170
- * @param data.requestBody
2171
- * @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
2185
+ * @param data.period Time period
2186
+ * @param data.granularity Data granularity
2187
+ * @returns PortfolioTrendsResponseDto Trends retrieved successfully
2172
2188
  * @throws ApiError
2173
2189
  */
2174
- public static transactionRuleControllerCreate(
2175
- data: TransactionRuleControllerCreateData
2176
- ): CancelablePromise<TransactionRuleControllerCreateResponse> {
2190
+ public static reportingControllerGetPortfolioTrends(
2191
+ data: ReportingControllerGetPortfolioTrendsData
2192
+ ): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
2177
2193
  return __request(OpenAPI, {
2178
- method: 'POST',
2179
- url: '/api/v1/{region}/bean/transaction-rules',
2194
+ method: 'GET',
2195
+ url: '/api/v1/{region}/reporting/portfolio/trends',
2180
2196
  path: {
2181
2197
  region: data.region
2182
2198
  },
2183
- body: data.requestBody,
2184
- mediaType: 'application/json',
2199
+ query: {
2200
+ period: data.period,
2201
+ granularity: data.granularity
2202
+ },
2185
2203
  errors: {
2186
- 400: 'Validation failed',
2187
- 401: 'Unauthorized',
2188
- 409: 'Resource conflict - another process is updating this rule'
2204
+ 401: 'User not authenticated'
2189
2205
  }
2190
2206
  });
2191
2207
  }
2192
2208
 
2193
2209
  /**
2194
- * Get all transaction rules for user
2210
+ * Get cash-flow trends
2211
+ *
2212
+ * Monthly income / expense / netSavings over a fixed N-month window
2213
+ * (current month + N−1 prior). Missing months are zero-filled (flow metric).
2214
+ *
2215
+ * **Parameters:**
2216
+ * - `period`: 1m | 3m | 6m | 1y (default 6m)
2217
+ * - `granularity`: accepted for API symmetry; v1 returns month buckets
2218
+ *
2195
2219
  * @param data The data for the request.
2196
2220
  * @param data.region Region code for tenant context
2197
- * @param data.limit Max results per page (default: 20, max: 100)
2198
- * @param data.offset Pagination offset (default: 0)
2199
- * @param data.enabled Filter by enabled status
2200
- * @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
2201
- * @param data.autoApplyEnabled Filter by auto-apply status
2202
- * @returns TransactionRuleListResponseDto List of rules
2221
+ * @param data.period Time period
2222
+ * @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
2223
+ * @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
2203
2224
  * @throws ApiError
2204
2225
  */
2205
- public static transactionRuleControllerList(
2206
- data: TransactionRuleControllerListData
2207
- ): CancelablePromise<TransactionRuleControllerListResponse> {
2226
+ public static reportingControllerGetCashFlowTrends(
2227
+ data: ReportingControllerGetCashFlowTrendsData
2228
+ ): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
2208
2229
  return __request(OpenAPI, {
2209
2230
  method: 'GET',
2210
- url: '/api/v1/{region}/bean/transaction-rules',
2231
+ url: '/api/v1/{region}/reporting/cash-flow/trends',
2211
2232
  path: {
2212
2233
  region: data.region
2213
2234
  },
2214
2235
  query: {
2215
- limit: data.limit,
2216
- offset: data.offset,
2217
- enabled: data.enabled,
2218
- learningSource: data.learningSource,
2219
- autoApplyEnabled: data.autoApplyEnabled
2236
+ period: data.period,
2237
+ granularity: data.granularity
2220
2238
  },
2221
2239
  errors: {
2222
- 401: 'Unauthorized'
2240
+ 401: 'User not authenticated'
2223
2241
  }
2224
2242
  });
2225
2243
  }
2226
2244
 
2227
2245
  /**
2228
- * Validate transaction rule configuration
2246
+ * Generate portfolio snapshot
2247
+ *
2248
+ * Manually generate a portfolio snapshot for a specific date.
2249
+ *
2250
+ * **Multi-currency Support:**
2251
+ * - Fetches balances grouped by currency
2252
+ * - Uses user's baseCurrency setting for conversion
2253
+ * - Stores exchange rates and warnings
2254
+ *
2255
+ * **Use Cases:**
2256
+ * - Testing snapshot generation
2257
+ * - Force regeneration after data correction
2258
+ * - Initial setup for new users
2259
+ *
2229
2260
  * @param data The data for the request.
2230
2261
  * @param data.region Region code for tenant context
2231
- * @param data.requestBody
2232
- * @returns ValidateRuleResponseDto Validation result
2262
+ * @param data.requestBody Optional date (defaults to today)
2263
+ * @returns GenerateSnapshotResponse Snapshot generated successfully
2233
2264
  * @throws ApiError
2234
2265
  */
2235
- public static transactionRuleControllerValidate(
2236
- data: TransactionRuleControllerValidateData
2237
- ): CancelablePromise<TransactionRuleControllerValidateResponse> {
2266
+ public static reportingControllerGenerateSnapshot(
2267
+ data: ReportingControllerGenerateSnapshotData
2268
+ ): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
2238
2269
  return __request(OpenAPI, {
2239
2270
  method: 'POST',
2240
- url: '/api/v1/{region}/bean/transaction-rules/validate',
2271
+ url: '/api/v1/{region}/reporting/snapshots/generate',
2241
2272
  path: {
2242
2273
  region: data.region
2243
2274
  },
2244
2275
  body: data.requestBody,
2245
2276
  mediaType: 'application/json',
2246
2277
  errors: {
2247
- 400: 'Validation failed',
2248
- 401: 'Unauthorized'
2278
+ 400: 'Invalid date format',
2279
+ 401: 'User not authenticated'
2249
2280
  }
2250
2281
  });
2251
2282
  }
2252
2283
 
2253
2284
  /**
2254
- * Bulk create transaction rules
2285
+ * Backfill portfolio snapshots
2286
+ *
2287
+ * Generate snapshots for a date range (historical data backfill).
2288
+ *
2289
+ * **Multi-currency Support:**
2290
+ * - Each snapshot includes multi-currency data
2291
+ * - Uses exchange rates available at generation time
2292
+ * - Warnings stored for missing exchange rates
2293
+ *
2294
+ * **Best Practices:**
2295
+ * - Use for initial setup after account configuration
2296
+ * - Run during low-traffic periods for large date ranges
2297
+ * - Existing snapshots are skipped (not regenerated)
2298
+ *
2255
2299
  * @param data The data for the request.
2256
2300
  * @param data.region Region code for tenant context
2257
2301
  * @param data.requestBody
2258
- * @returns BulkCreateRulesResponseDto Bulk create completed
2302
+ * @returns BackfillSnapshotsResponse Backfill completed successfully
2259
2303
  * @throws ApiError
2260
2304
  */
2261
- public static transactionRuleControllerBulkCreate(
2262
- data: TransactionRuleControllerBulkCreateData
2263
- ): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
2305
+ public static reportingControllerBackfillSnapshots(
2306
+ data: ReportingControllerBackfillSnapshotsData
2307
+ ): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
2264
2308
  return __request(OpenAPI, {
2265
2309
  method: 'POST',
2266
- url: '/api/v1/{region}/bean/transaction-rules/bulk',
2310
+ url: '/api/v1/{region}/reporting/snapshots/backfill',
2267
2311
  path: {
2268
2312
  region: data.region
2269
2313
  },
2270
2314
  body: data.requestBody,
2271
2315
  mediaType: 'application/json',
2272
2316
  errors: {
2273
- 400: 'Invalid bulk create data',
2274
- 401: 'Unauthorized'
2317
+ 400: 'Invalid date format or range',
2318
+ 401: 'User not authenticated',
2319
+ 409: 'Backfill already in progress for this user'
2275
2320
  }
2276
2321
  });
2277
2322
  }
2323
+ }
2278
2324
 
2325
+ export class UsersService {
2279
2326
  /**
2280
- * Export transaction rules
2327
+ * Delete own user account
2281
2328
  * @param data The data for the request.
2282
- * @param data.format Export format (currently only JSON supported)
2283
- * @param data.region Region code for tenant context
2284
- * @returns ExportRulesResponseDto Exported rules
2329
+ * @param data.requestBody
2330
+ * @returns void User deleted successfully
2285
2331
  * @throws ApiError
2286
2332
  */
2287
- public static transactionRuleControllerExport(
2288
- data: TransactionRuleControllerExportData
2289
- ): CancelablePromise<TransactionRuleControllerExportResponse> {
2333
+ public static userControllerDeleteOwnUser(
2334
+ data: UserControllerDeleteOwnUserData
2335
+ ): CancelablePromise<UserControllerDeleteOwnUserResponse> {
2290
2336
  return __request(OpenAPI, {
2291
- method: 'GET',
2292
- url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
2293
- path: {
2294
- format: data.format,
2295
- region: data.region
2296
- },
2337
+ method: 'DELETE',
2338
+ url: '/api/v1/users',
2339
+ body: data.requestBody,
2340
+ mediaType: 'application/json',
2297
2341
  errors: {
2298
- 400: 'Unsupported format',
2299
- 401: 'Unauthorized'
2342
+ 403: 'Invalid access token'
2300
2343
  }
2301
2344
  });
2302
2345
  }
2303
2346
 
2304
2347
  /**
2305
- * Get transaction rule statistics
2348
+ * Get current authenticated user
2306
2349
  * @param data The data for the request.
2307
- * @param data.period Statistics time period
2308
- * @param data.region Region code for tenant context
2309
- * @returns RuleStatisticsResponseDto Rule statistics
2350
+ * @param data.acceptLanguage
2351
+ * @returns unknown User retrieved successfully
2310
2352
  * @throws ApiError
2311
2353
  */
2312
- public static transactionRuleControllerGetStatistics(
2313
- data: TransactionRuleControllerGetStatisticsData
2314
- ): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
2354
+ public static userControllerGetUser(
2355
+ data: UserControllerGetUserData
2356
+ ): CancelablePromise<UserControllerGetUserResponse> {
2315
2357
  return __request(OpenAPI, {
2316
2358
  method: 'GET',
2317
- url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
2318
- path: {
2319
- period: data.period,
2320
- region: data.region
2321
- },
2322
- errors: {
2323
- 401: 'Unauthorized'
2359
+ url: '/api/v1/users',
2360
+ headers: {
2361
+ 'accept-language': data.acceptLanguage
2324
2362
  }
2325
2363
  });
2326
2364
  }
2327
2365
 
2328
2366
  /**
2329
- * Get transaction rule detail
2367
+ * Sign up new user
2368
+ * Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
2330
2369
  * @param data The data for the request.
2331
- * @param data.ruleId Rule ID
2332
- * @param data.region Region code for tenant context
2333
- * @returns TransactionRuleResponseDto Rule details
2370
+ * @param data.requestBody
2371
+ * @returns SignupResponseDto User created successfully
2334
2372
  * @throws ApiError
2335
2373
  */
2336
- public static transactionRuleControllerGetDetail(
2337
- data: TransactionRuleControllerGetDetailData
2338
- ): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
2374
+ public static userControllerSignupUser(
2375
+ data: UserControllerSignupUserData
2376
+ ): CancelablePromise<UserControllerSignupUserResponse> {
2377
+ return __request(OpenAPI, {
2378
+ method: 'POST',
2379
+ url: '/api/v1/users',
2380
+ body: data.requestBody,
2381
+ mediaType: 'application/json',
2382
+ errors: {
2383
+ 400: 'Invalid Turnstile token (when Turnstile is enabled)',
2384
+ 403: 'User signup is disabled'
2385
+ }
2386
+ });
2387
+ }
2388
+
2389
+ /**
2390
+ * Delete user by ID (admin only)
2391
+ * @param data The data for the request.
2392
+ * @param data.id User ID to delete
2393
+ * @returns void User deleted successfully
2394
+ * @throws ApiError
2395
+ */
2396
+ public static userControllerDeleteUser(
2397
+ data: UserControllerDeleteUserData
2398
+ ): CancelablePromise<UserControllerDeleteUserResponse> {
2399
+ return __request(OpenAPI, {
2400
+ method: 'DELETE',
2401
+ url: '/api/v1/users/{id}',
2402
+ path: {
2403
+ id: data.id
2404
+ },
2405
+ errors: {
2406
+ 403: 'Cannot delete own account or insufficient permissions'
2407
+ }
2408
+ });
2409
+ }
2410
+
2411
+ /**
2412
+ * Get user info by user ID
2413
+ * @param data The data for the request.
2414
+ * @param data.id User ID
2415
+ * @returns unknown User info retrieved successfully
2416
+ * @throws ApiError
2417
+ */
2418
+ public static userControllerGetUserInfo(
2419
+ data: UserControllerGetUserInfoData
2420
+ ): CancelablePromise<UserControllerGetUserInfoResponse> {
2339
2421
  return __request(OpenAPI, {
2340
2422
  method: 'GET',
2341
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2423
+ url: '/api/v1/users/{id}/info',
2342
2424
  path: {
2343
- ruleId: data.ruleId,
2344
- region: data.region
2425
+ id: data.id
2345
2426
  },
2346
2427
  errors: {
2347
- 401: 'Unauthorized',
2348
- 403: 'Forbidden - not owner of rule',
2349
- 404: 'Rule not found'
2428
+ 403: 'Cannot access other user info without admin permission'
2350
2429
  }
2351
2430
  });
2352
2431
  }
2353
2432
 
2354
2433
  /**
2355
- * Update a transaction rule
2434
+ * Update user settings
2356
2435
  * @param data The data for the request.
2357
- * @param data.ruleId Rule ID to update
2358
- * @param data.region Region code for tenant context
2359
2436
  * @param data.requestBody
2360
- * @returns TransactionRuleResponseDto Rule updated successfully
2437
+ * @returns unknown Settings updated successfully
2361
2438
  * @throws ApiError
2362
2439
  */
2363
- public static transactionRuleControllerUpdate(
2364
- data: TransactionRuleControllerUpdateData
2365
- ): CancelablePromise<TransactionRuleControllerUpdateResponse> {
2440
+ public static userControllerUpdateUserSetting(
2441
+ data: UserControllerUpdateUserSettingData
2442
+ ): CancelablePromise<UserControllerUpdateUserSettingResponse> {
2366
2443
  return __request(OpenAPI, {
2367
2444
  method: 'PUT',
2368
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2369
- path: {
2370
- ruleId: data.ruleId,
2371
- region: data.region
2372
- },
2445
+ url: '/api/v1/users/setting',
2373
2446
  body: data.requestBody,
2374
2447
  mediaType: 'application/json',
2375
2448
  errors: {
2376
- 400: 'Validation failed',
2377
- 401: 'Unauthorized',
2378
- 403: 'Forbidden - not owner of rule',
2379
- 404: 'Rule not found',
2380
- 409: 'Resource conflict - rule is being modified by another process'
2449
+ 403: 'Insufficient permissions'
2381
2450
  }
2382
2451
  });
2383
2452
  }
2384
2453
 
2385
2454
  /**
2386
- * Delete a transaction rule
2455
+ * Get all user settings paginated (admin only)
2387
2456
  * @param data The data for the request.
2388
- * @param data.ruleId Rule ID to delete
2389
- * @param data.region Region code for tenant context
2390
- * @returns void Rule deleted successfully
2457
+ * @param data.pageNo Page number
2458
+ * @param data.pageSize Page size
2459
+ * @returns unknown Settings list retrieved successfully
2391
2460
  * @throws ApiError
2392
2461
  */
2393
- public static transactionRuleControllerDelete(
2394
- data: TransactionRuleControllerDeleteData
2395
- ): CancelablePromise<TransactionRuleControllerDeleteResponse> {
2462
+ public static userControllerGetAllUserSettingsByPage(
2463
+ data: UserControllerGetAllUserSettingsByPageData
2464
+ ): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
2396
2465
  return __request(OpenAPI, {
2397
- method: 'DELETE',
2398
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2399
- path: {
2400
- ruleId: data.ruleId,
2401
- region: data.region
2402
- },
2466
+ method: 'GET',
2467
+ url: '/api/v1/users/settings-by-page',
2468
+ query: {
2469
+ pageNo: data.pageNo,
2470
+ pageSize: data.pageSize
2471
+ }
2472
+ });
2473
+ }
2474
+
2475
+ /**
2476
+ * Get asset and liability summary for current user
2477
+ * @returns unknown Summary retrieved successfully
2478
+ * @throws ApiError
2479
+ */
2480
+ public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
2481
+ return __request(OpenAPI, {
2482
+ method: 'GET',
2483
+ url: '/api/v1/users/asset-liability-summary'
2484
+ });
2485
+ }
2486
+ }
2487
+
2488
+ export class PropertiesService {
2489
+ /**
2490
+ * Get all system properties
2491
+ * @returns unknown Properties retrieved successfully
2492
+ * @throws ApiError
2493
+ */
2494
+ public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
2495
+ return __request(OpenAPI, {
2496
+ method: 'GET',
2497
+ url: '/api/v1/admin/properties',
2403
2498
  errors: {
2404
2499
  401: 'Unauthorized',
2405
- 403: 'Forbidden - not owner of rule',
2406
- 404: 'Rule not found',
2407
- 409: 'Resource conflict - rule is being modified by another process'
2500
+ 403: 'Forbidden - insufficient permissions'
2408
2501
  }
2409
2502
  });
2410
2503
  }
2411
2504
 
2412
2505
  /**
2413
- * Test rule matching
2506
+ * Get property by key
2414
2507
  * @param data The data for the request.
2415
- * @param data.ruleId Rule ID to test
2416
- * @param data.region Region code for tenant context
2417
- * @param data.requestBody
2418
- * @returns TestRuleResponseDto Test result
2508
+ * @param data.key Property key
2509
+ * @returns unknown Property retrieved successfully
2419
2510
  * @throws ApiError
2420
2511
  */
2421
- public static transactionRuleControllerTest(
2422
- data: TransactionRuleControllerTestData
2423
- ): CancelablePromise<TransactionRuleControllerTestResponse> {
2512
+ public static propertyControllerGetByKey(
2513
+ data: PropertyControllerGetByKeyData
2514
+ ): CancelablePromise<PropertyControllerGetByKeyResponse> {
2424
2515
  return __request(OpenAPI, {
2425
- method: 'POST',
2426
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
2516
+ method: 'GET',
2517
+ url: '/api/v1/admin/properties/{key}',
2427
2518
  path: {
2428
- ruleId: data.ruleId,
2429
- region: data.region
2519
+ key: data.key
2430
2520
  },
2431
- body: data.requestBody,
2432
- mediaType: 'application/json',
2433
2521
  errors: {
2434
2522
  401: 'Unauthorized',
2435
- 403: 'Forbidden - not owner of rule',
2436
- 404: 'Rule not found'
2523
+ 403: 'Forbidden - insufficient permissions',
2524
+ 404: 'Property not found'
2437
2525
  }
2438
2526
  });
2439
2527
  }
2440
- }
2441
2528
 
2442
- export class UsersService {
2443
2529
  /**
2444
- * Delete own user account
2530
+ * Update a system property
2445
2531
  * @param data The data for the request.
2532
+ * @param data.key Property key
2446
2533
  * @param data.requestBody
2447
- * @returns void User deleted successfully
2534
+ * @returns unknown Property updated successfully
2448
2535
  * @throws ApiError
2449
2536
  */
2450
- public static userControllerDeleteOwnUser(
2451
- data: UserControllerDeleteOwnUserData
2452
- ): CancelablePromise<UserControllerDeleteOwnUserResponse> {
2537
+ public static propertyControllerUpdate(
2538
+ data: PropertyControllerUpdateData
2539
+ ): CancelablePromise<PropertyControllerUpdateResponse> {
2453
2540
  return __request(OpenAPI, {
2454
- method: 'DELETE',
2455
- url: '/api/v1/users',
2541
+ method: 'PUT',
2542
+ url: '/api/v1/admin/properties/{key}',
2543
+ path: {
2544
+ key: data.key
2545
+ },
2456
2546
  body: data.requestBody,
2457
2547
  mediaType: 'application/json',
2458
2548
  errors: {
2459
- 403: 'Invalid access token'
2549
+ 401: 'Unauthorized',
2550
+ 403: 'Forbidden - insufficient permissions'
2460
2551
  }
2461
2552
  });
2462
2553
  }
2463
2554
 
2464
2555
  /**
2465
- * Get current authenticated user
2556
+ * Delete a system property
2466
2557
  * @param data The data for the request.
2467
- * @param data.acceptLanguage
2468
- * @returns unknown User retrieved successfully
2558
+ * @param data.key Property key
2559
+ * @returns void Property deleted successfully
2469
2560
  * @throws ApiError
2470
2561
  */
2471
- public static userControllerGetUser(
2472
- data: UserControllerGetUserData
2473
- ): CancelablePromise<UserControllerGetUserResponse> {
2562
+ public static propertyControllerDelete(
2563
+ data: PropertyControllerDeleteData
2564
+ ): CancelablePromise<PropertyControllerDeleteResponse> {
2474
2565
  return __request(OpenAPI, {
2475
- method: 'GET',
2476
- url: '/api/v1/users',
2477
- headers: {
2478
- 'accept-language': data.acceptLanguage
2566
+ method: 'DELETE',
2567
+ url: '/api/v1/admin/properties/{key}',
2568
+ path: {
2569
+ key: data.key
2570
+ },
2571
+ errors: {
2572
+ 401: 'Unauthorized',
2573
+ 403: 'Forbidden - insufficient permissions',
2574
+ 404: 'Property not found'
2479
2575
  }
2480
2576
  });
2481
2577
  }
2578
+ }
2482
2579
 
2580
+ export class BeanTransactionRulesService {
2483
2581
  /**
2484
- * Sign up new user
2485
- * Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
2582
+ * Create a new transaction rule (or upsert if upsertByPayee=true)
2583
+ * Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
2486
2584
  * @param data The data for the request.
2585
+ * @param data.region Region code for tenant context
2487
2586
  * @param data.requestBody
2488
- * @returns unknown User created successfully
2587
+ * @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
2489
2588
  * @throws ApiError
2490
2589
  */
2491
- public static userControllerSignupUser(
2492
- data: UserControllerSignupUserData
2493
- ): CancelablePromise<UserControllerSignupUserResponse> {
2590
+ public static transactionRuleControllerCreate(
2591
+ data: TransactionRuleControllerCreateData
2592
+ ): CancelablePromise<TransactionRuleControllerCreateResponse> {
2494
2593
  return __request(OpenAPI, {
2495
2594
  method: 'POST',
2496
- url: '/api/v1/users',
2595
+ url: '/api/v1/{region}/bean/transaction-rules',
2596
+ path: {
2597
+ region: data.region
2598
+ },
2497
2599
  body: data.requestBody,
2498
2600
  mediaType: 'application/json',
2499
2601
  errors: {
2500
- 400: 'Invalid Turnstile token (when Turnstile is enabled)',
2501
- 403: 'User signup is disabled'
2602
+ 400: 'Validation failed',
2603
+ 401: 'Unauthorized',
2604
+ 409: 'Resource conflict - another process is updating this rule'
2502
2605
  }
2503
2606
  });
2504
2607
  }
2505
2608
 
2506
2609
  /**
2507
- * Delete user by ID (admin only)
2610
+ * Get all transaction rules for user
2508
2611
  * @param data The data for the request.
2509
- * @param data.id User ID to delete
2510
- * @returns void User deleted successfully
2612
+ * @param data.region Region code for tenant context
2613
+ * @param data.limit Max results per page (default: 20, max: 100)
2614
+ * @param data.offset Pagination offset (default: 0)
2615
+ * @param data.enabled Filter by enabled status
2616
+ * @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
2617
+ * @param data.autoApplyEnabled Filter by auto-apply status
2618
+ * @returns TransactionRuleListResponseDto List of rules
2511
2619
  * @throws ApiError
2512
2620
  */
2513
- public static userControllerDeleteUser(
2514
- data: UserControllerDeleteUserData
2515
- ): CancelablePromise<UserControllerDeleteUserResponse> {
2621
+ public static transactionRuleControllerList(
2622
+ data: TransactionRuleControllerListData
2623
+ ): CancelablePromise<TransactionRuleControllerListResponse> {
2516
2624
  return __request(OpenAPI, {
2517
- method: 'DELETE',
2518
- url: '/api/v1/users/{id}',
2625
+ method: 'GET',
2626
+ url: '/api/v1/{region}/bean/transaction-rules',
2519
2627
  path: {
2520
- id: data.id
2628
+ region: data.region
2629
+ },
2630
+ query: {
2631
+ limit: data.limit,
2632
+ offset: data.offset,
2633
+ enabled: data.enabled,
2634
+ learningSource: data.learningSource,
2635
+ autoApplyEnabled: data.autoApplyEnabled
2521
2636
  },
2522
2637
  errors: {
2523
- 403: 'Cannot delete own account or insufficient permissions'
2638
+ 401: 'Unauthorized'
2524
2639
  }
2525
2640
  });
2526
2641
  }
2527
2642
 
2528
2643
  /**
2529
- * Get user info by user ID
2644
+ * Validate transaction rule configuration
2530
2645
  * @param data The data for the request.
2531
- * @param data.id User ID
2532
- * @returns unknown User info retrieved successfully
2646
+ * @param data.region Region code for tenant context
2647
+ * @param data.requestBody
2648
+ * @returns ValidateRuleResponseDto Validation result
2533
2649
  * @throws ApiError
2534
2650
  */
2535
- public static userControllerGetUserInfo(
2536
- data: UserControllerGetUserInfoData
2537
- ): CancelablePromise<UserControllerGetUserInfoResponse> {
2651
+ public static transactionRuleControllerValidate(
2652
+ data: TransactionRuleControllerValidateData
2653
+ ): CancelablePromise<TransactionRuleControllerValidateResponse> {
2538
2654
  return __request(OpenAPI, {
2539
- method: 'GET',
2540
- url: '/api/v1/users/{id}/info',
2655
+ method: 'POST',
2656
+ url: '/api/v1/{region}/bean/transaction-rules/validate',
2541
2657
  path: {
2542
- id: data.id
2658
+ region: data.region
2543
2659
  },
2660
+ body: data.requestBody,
2661
+ mediaType: 'application/json',
2544
2662
  errors: {
2545
- 403: 'Cannot access other user info without admin permission'
2663
+ 400: 'Validation failed',
2664
+ 401: 'Unauthorized'
2546
2665
  }
2547
2666
  });
2548
2667
  }
2549
2668
 
2550
2669
  /**
2551
- * Update user settings
2670
+ * Bulk create transaction rules
2552
2671
  * @param data The data for the request.
2672
+ * @param data.region Region code for tenant context
2553
2673
  * @param data.requestBody
2554
- * @returns unknown Settings updated successfully
2674
+ * @returns BulkCreateRulesResponseDto Bulk create completed
2555
2675
  * @throws ApiError
2556
2676
  */
2557
- public static userControllerUpdateUserSetting(
2558
- data: UserControllerUpdateUserSettingData
2559
- ): CancelablePromise<UserControllerUpdateUserSettingResponse> {
2677
+ public static transactionRuleControllerBulkCreate(
2678
+ data: TransactionRuleControllerBulkCreateData
2679
+ ): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
2560
2680
  return __request(OpenAPI, {
2561
- method: 'PUT',
2562
- url: '/api/v1/users/setting',
2681
+ method: 'POST',
2682
+ url: '/api/v1/{region}/bean/transaction-rules/bulk',
2683
+ path: {
2684
+ region: data.region
2685
+ },
2563
2686
  body: data.requestBody,
2564
2687
  mediaType: 'application/json',
2565
2688
  errors: {
2566
- 403: 'Insufficient permissions'
2689
+ 400: 'Invalid bulk create data',
2690
+ 401: 'Unauthorized'
2567
2691
  }
2568
2692
  });
2569
2693
  }
2570
2694
 
2571
2695
  /**
2572
- * Get all user settings paginated (admin only)
2696
+ * Export transaction rules
2573
2697
  * @param data The data for the request.
2574
- * @param data.pageNo Page number
2575
- * @param data.pageSize Page size
2576
- * @returns unknown Settings list retrieved successfully
2698
+ * @param data.format Export format (currently only JSON supported)
2699
+ * @param data.region Region code for tenant context
2700
+ * @returns ExportRulesResponseDto Exported rules
2577
2701
  * @throws ApiError
2578
2702
  */
2579
- public static userControllerGetAllUserSettingsByPage(
2580
- data: UserControllerGetAllUserSettingsByPageData
2581
- ): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
2703
+ public static transactionRuleControllerExport(
2704
+ data: TransactionRuleControllerExportData
2705
+ ): CancelablePromise<TransactionRuleControllerExportResponse> {
2582
2706
  return __request(OpenAPI, {
2583
2707
  method: 'GET',
2584
- url: '/api/v1/users/settings-by-page',
2585
- query: {
2586
- pageNo: data.pageNo,
2587
- pageSize: data.pageSize
2708
+ url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
2709
+ path: {
2710
+ format: data.format,
2711
+ region: data.region
2712
+ },
2713
+ errors: {
2714
+ 400: 'Unsupported format',
2715
+ 401: 'Unauthorized'
2588
2716
  }
2589
2717
  });
2590
2718
  }
2591
2719
 
2592
2720
  /**
2593
- * Get asset and liability summary for current user
2594
- * @returns unknown Summary retrieved successfully
2721
+ * Get transaction rule statistics
2722
+ * @param data The data for the request.
2723
+ * @param data.period Statistics time period
2724
+ * @param data.region Region code for tenant context
2725
+ * @returns RuleStatisticsResponseDto Rule statistics
2595
2726
  * @throws ApiError
2596
2727
  */
2597
- public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
2728
+ public static transactionRuleControllerGetStatistics(
2729
+ data: TransactionRuleControllerGetStatisticsData
2730
+ ): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
2598
2731
  return __request(OpenAPI, {
2599
2732
  method: 'GET',
2600
- url: '/api/v1/users/asset-liability-summary'
2733
+ url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
2734
+ path: {
2735
+ period: data.period,
2736
+ region: data.region
2737
+ },
2738
+ errors: {
2739
+ 401: 'Unauthorized'
2740
+ }
2601
2741
  });
2602
2742
  }
2603
- }
2604
2743
 
2605
- export class PropertiesService {
2606
2744
  /**
2607
- * Get all system properties
2608
- * @returns unknown Properties retrieved successfully
2745
+ * Get transaction rule detail
2746
+ * @param data The data for the request.
2747
+ * @param data.ruleId Rule ID
2748
+ * @param data.region Region code for tenant context
2749
+ * @returns TransactionRuleResponseDto Rule details
2609
2750
  * @throws ApiError
2610
2751
  */
2611
- public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
2752
+ public static transactionRuleControllerGetDetail(
2753
+ data: TransactionRuleControllerGetDetailData
2754
+ ): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
2612
2755
  return __request(OpenAPI, {
2613
2756
  method: 'GET',
2614
- url: '/api/v1/admin/properties',
2757
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2758
+ path: {
2759
+ ruleId: data.ruleId,
2760
+ region: data.region
2761
+ },
2615
2762
  errors: {
2616
2763
  401: 'Unauthorized',
2617
- 403: 'Forbidden - insufficient permissions'
2764
+ 403: 'Forbidden - not owner of rule',
2765
+ 404: 'Rule not found'
2618
2766
  }
2619
2767
  });
2620
2768
  }
2621
2769
 
2622
2770
  /**
2623
- * Get property by key
2771
+ * Update a transaction rule
2624
2772
  * @param data The data for the request.
2625
- * @param data.key Property key
2626
- * @returns unknown Property retrieved successfully
2773
+ * @param data.ruleId Rule ID to update
2774
+ * @param data.region Region code for tenant context
2775
+ * @param data.requestBody
2776
+ * @returns TransactionRuleResponseDto Rule updated successfully
2627
2777
  * @throws ApiError
2628
2778
  */
2629
- public static propertyControllerGetByKey(
2630
- data: PropertyControllerGetByKeyData
2631
- ): CancelablePromise<PropertyControllerGetByKeyResponse> {
2779
+ public static transactionRuleControllerUpdate(
2780
+ data: TransactionRuleControllerUpdateData
2781
+ ): CancelablePromise<TransactionRuleControllerUpdateResponse> {
2632
2782
  return __request(OpenAPI, {
2633
- method: 'GET',
2634
- url: '/api/v1/admin/properties/{key}',
2783
+ method: 'PUT',
2784
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2635
2785
  path: {
2636
- key: data.key
2786
+ ruleId: data.ruleId,
2787
+ region: data.region
2637
2788
  },
2789
+ body: data.requestBody,
2790
+ mediaType: 'application/json',
2638
2791
  errors: {
2792
+ 400: 'Validation failed',
2639
2793
  401: 'Unauthorized',
2640
- 403: 'Forbidden - insufficient permissions',
2641
- 404: 'Property not found'
2794
+ 403: 'Forbidden - not owner of rule',
2795
+ 404: 'Rule not found',
2796
+ 409: 'Resource conflict - rule is being modified by another process'
2642
2797
  }
2643
2798
  });
2644
2799
  }
2645
2800
 
2646
2801
  /**
2647
- * Update a system property
2802
+ * Delete a transaction rule
2648
2803
  * @param data The data for the request.
2649
- * @param data.key Property key
2650
- * @param data.requestBody
2651
- * @returns unknown Property updated successfully
2804
+ * @param data.ruleId Rule ID to delete
2805
+ * @param data.region Region code for tenant context
2806
+ * @returns void Rule deleted successfully
2652
2807
  * @throws ApiError
2653
2808
  */
2654
- public static propertyControllerUpdate(
2655
- data: PropertyControllerUpdateData
2656
- ): CancelablePromise<PropertyControllerUpdateResponse> {
2809
+ public static transactionRuleControllerDelete(
2810
+ data: TransactionRuleControllerDeleteData
2811
+ ): CancelablePromise<TransactionRuleControllerDeleteResponse> {
2657
2812
  return __request(OpenAPI, {
2658
- method: 'PUT',
2659
- url: '/api/v1/admin/properties/{key}',
2813
+ method: 'DELETE',
2814
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2660
2815
  path: {
2661
- key: data.key
2816
+ ruleId: data.ruleId,
2817
+ region: data.region
2662
2818
  },
2663
- body: data.requestBody,
2664
- mediaType: 'application/json',
2665
2819
  errors: {
2666
2820
  401: 'Unauthorized',
2667
- 403: 'Forbidden - insufficient permissions'
2821
+ 403: 'Forbidden - not owner of rule',
2822
+ 404: 'Rule not found',
2823
+ 409: 'Resource conflict - rule is being modified by another process'
2668
2824
  }
2669
2825
  });
2670
2826
  }
2671
2827
 
2672
2828
  /**
2673
- * Delete a system property
2829
+ * Test rule matching
2674
2830
  * @param data The data for the request.
2675
- * @param data.key Property key
2676
- * @returns void Property deleted successfully
2831
+ * @param data.ruleId Rule ID to test
2832
+ * @param data.region Region code for tenant context
2833
+ * @param data.requestBody
2834
+ * @returns TestRuleResponseDto Test result
2677
2835
  * @throws ApiError
2678
2836
  */
2679
- public static propertyControllerDelete(
2680
- data: PropertyControllerDeleteData
2681
- ): CancelablePromise<PropertyControllerDeleteResponse> {
2837
+ public static transactionRuleControllerTest(
2838
+ data: TransactionRuleControllerTestData
2839
+ ): CancelablePromise<TransactionRuleControllerTestResponse> {
2682
2840
  return __request(OpenAPI, {
2683
- method: 'DELETE',
2684
- url: '/api/v1/admin/properties/{key}',
2841
+ method: 'POST',
2842
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
2685
2843
  path: {
2686
- key: data.key
2844
+ ruleId: data.ruleId,
2845
+ region: data.region
2687
2846
  },
2847
+ body: data.requestBody,
2848
+ mediaType: 'application/json',
2688
2849
  errors: {
2689
2850
  401: 'Unauthorized',
2690
- 403: 'Forbidden - insufficient permissions',
2691
- 404: 'Property not found'
2851
+ 403: 'Forbidden - not owner of rule',
2852
+ 404: 'Rule not found'
2692
2853
  }
2693
2854
  });
2694
2855
  }
@@ -3584,7 +3745,7 @@ export class BeanPlatformsService {
3584
3745
  * @param data The data for the request.
3585
3746
  * @param data.q Search query — Chinese name, English name, or abbreviation
3586
3747
  * @param data.region Region code for category override lookup
3587
- * @returns unknown List of matching platforms with suggested segment names
3748
+ * @returns PlatformMatchResponseDto Matching platforms with overall match type and truncation flag
3588
3749
  * @throws ApiError
3589
3750
  */
3590
3751
  public static platformControllerMatchPlatforms(
@@ -3802,163 +3963,6 @@ export class InvestmentService {
3802
3963
  }
3803
3964
  }
3804
3965
 
3805
- export class ReportingService {
3806
- /**
3807
- * Get portfolio value trends
3808
- *
3809
- * Returns time series data of portfolio net worth.
3810
- *
3811
- * **Multi-currency Support:**
3812
- * - `series[].byCurrency` - Currency breakdown for each data point
3813
- * - `byCurrency` - Separate time series grouped by currency
3814
- * - `warnings` - Exchange rate warnings if conversion failed
3815
- *
3816
- * **Parameters:**
3817
- * - `period`: Time period (1m, 3m, 6m, 1y)
3818
- * - `granularity`: Data granularity (day, week, month)
3819
- *
3820
- * @param data The data for the request.
3821
- * @param data.region Region code for tenant context
3822
- * @param data.period Time period
3823
- * @param data.granularity Data granularity
3824
- * @returns PortfolioTrendsResponseDto Trends retrieved successfully
3825
- * @throws ApiError
3826
- */
3827
- public static reportingControllerGetPortfolioTrends(
3828
- data: ReportingControllerGetPortfolioTrendsData
3829
- ): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
3830
- return __request(OpenAPI, {
3831
- method: 'GET',
3832
- url: '/api/v1/{region}/reporting/portfolio/trends',
3833
- path: {
3834
- region: data.region
3835
- },
3836
- query: {
3837
- period: data.period,
3838
- granularity: data.granularity
3839
- },
3840
- errors: {
3841
- 401: 'User not authenticated'
3842
- }
3843
- });
3844
- }
3845
-
3846
- /**
3847
- * Get cash-flow trends
3848
- *
3849
- * Monthly income / expense / netSavings over a fixed N-month window
3850
- * (current month + N−1 prior). Missing months are zero-filled (flow metric).
3851
- *
3852
- * **Parameters:**
3853
- * - `period`: 1m | 3m | 6m | 1y (default 6m)
3854
- * - `granularity`: accepted for API symmetry; v1 returns month buckets
3855
- *
3856
- * @param data The data for the request.
3857
- * @param data.region Region code for tenant context
3858
- * @param data.period Time period
3859
- * @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
3860
- * @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
3861
- * @throws ApiError
3862
- */
3863
- public static reportingControllerGetCashFlowTrends(
3864
- data: ReportingControllerGetCashFlowTrendsData
3865
- ): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
3866
- return __request(OpenAPI, {
3867
- method: 'GET',
3868
- url: '/api/v1/{region}/reporting/cash-flow/trends',
3869
- path: {
3870
- region: data.region
3871
- },
3872
- query: {
3873
- period: data.period,
3874
- granularity: data.granularity
3875
- },
3876
- errors: {
3877
- 401: 'User not authenticated'
3878
- }
3879
- });
3880
- }
3881
-
3882
- /**
3883
- * Generate portfolio snapshot
3884
- *
3885
- * Manually generate a portfolio snapshot for a specific date.
3886
- *
3887
- * **Multi-currency Support:**
3888
- * - Fetches balances grouped by currency
3889
- * - Uses user's baseCurrency setting for conversion
3890
- * - Stores exchange rates and warnings
3891
- *
3892
- * **Use Cases:**
3893
- * - Testing snapshot generation
3894
- * - Force regeneration after data correction
3895
- * - Initial setup for new users
3896
- *
3897
- * @param data The data for the request.
3898
- * @param data.region Region code for tenant context
3899
- * @param data.requestBody Optional date (defaults to today)
3900
- * @returns GenerateSnapshotResponse Snapshot generated successfully
3901
- * @throws ApiError
3902
- */
3903
- public static reportingControllerGenerateSnapshot(
3904
- data: ReportingControllerGenerateSnapshotData
3905
- ): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
3906
- return __request(OpenAPI, {
3907
- method: 'POST',
3908
- url: '/api/v1/{region}/reporting/snapshots/generate',
3909
- path: {
3910
- region: data.region
3911
- },
3912
- body: data.requestBody,
3913
- mediaType: 'application/json',
3914
- errors: {
3915
- 400: 'Invalid date format',
3916
- 401: 'User not authenticated'
3917
- }
3918
- });
3919
- }
3920
-
3921
- /**
3922
- * Backfill portfolio snapshots
3923
- *
3924
- * Generate snapshots for a date range (historical data backfill).
3925
- *
3926
- * **Multi-currency Support:**
3927
- * - Each snapshot includes multi-currency data
3928
- * - Uses exchange rates available at generation time
3929
- * - Warnings stored for missing exchange rates
3930
- *
3931
- * **Best Practices:**
3932
- * - Use for initial setup after account configuration
3933
- * - Run during low-traffic periods for large date ranges
3934
- * - Existing snapshots are skipped (not regenerated)
3935
- *
3936
- * @param data The data for the request.
3937
- * @param data.region Region code for tenant context
3938
- * @param data.requestBody
3939
- * @returns BackfillSnapshotsResponse Backfill completed successfully
3940
- * @throws ApiError
3941
- */
3942
- public static reportingControllerBackfillSnapshots(
3943
- data: ReportingControllerBackfillSnapshotsData
3944
- ): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
3945
- return __request(OpenAPI, {
3946
- method: 'POST',
3947
- url: '/api/v1/{region}/reporting/snapshots/backfill',
3948
- path: {
3949
- region: data.region
3950
- },
3951
- body: data.requestBody,
3952
- mediaType: 'application/json',
3953
- errors: {
3954
- 400: 'Invalid date format or range',
3955
- 401: 'User not authenticated',
3956
- 409: 'Backfill already in progress for this user'
3957
- }
3958
- });
3959
- }
3960
- }
3961
-
3962
3966
  export class ApiKeysService {
3963
3967
  /**
3964
3968
  * Create API key
@@ -3982,7 +3986,7 @@ export class AuthService {
3982
3986
  * Anonymous login with access token
3983
3987
  * @param data The data for the request.
3984
3988
  * @param data.requestBody
3985
- * @returns unknown Login successful
3989
+ * @returns AnonymousLoginResponseDto Login successful
3986
3990
  * @throws ApiError
3987
3991
  */
3988
3992
  public static authControllerAccessTokenLogin(
@@ -4169,3 +4173,53 @@ export class InfoService {
4169
4173
  });
4170
4174
  }
4171
4175
  }
4176
+
4177
+ export class MarketDataService {
4178
+ /**
4179
+ * Search market symbols by name or code
4180
+ * Ranked search over the openbb catalog. Empty `q` returns [].
4181
+ * @param data The data for the request.
4182
+ * @param data.q Search term — matched against symbol and instrument name. Empty string returns [].
4183
+ * @param data.limit Maximum number of results (clamped 1..50)
4184
+ * @param data.exchange Filter by exchange code (e.g. US, HK, SS, SZ)
4185
+ * @param data.assetType Filter by OpenBB asset_type (e.g. stock, etf)
4186
+ * @returns SymbolSearchResultDto Ranked search results
4187
+ * @throws ApiError
4188
+ */
4189
+ public static symbolControllerSearch(
4190
+ data: SymbolControllerSearchData
4191
+ ): CancelablePromise<SymbolControllerSearchResponse> {
4192
+ return __request(OpenAPI, {
4193
+ method: 'GET',
4194
+ url: '/api/v1/market/symbols/search',
4195
+ query: {
4196
+ q: data.q,
4197
+ limit: data.limit,
4198
+ exchange: data.exchange,
4199
+ assetType: data.assetType
4200
+ }
4201
+ });
4202
+ }
4203
+
4204
+ /**
4205
+ * Get a market symbol quote
4206
+ * @param data The data for the request.
4207
+ * @param data.symbol
4208
+ * @returns SymbolQuoteDto Symbol quote
4209
+ * @throws ApiError
4210
+ */
4211
+ public static symbolControllerGetQuote(
4212
+ data: SymbolControllerGetQuoteData
4213
+ ): CancelablePromise<SymbolControllerGetQuoteResponse> {
4214
+ return __request(OpenAPI, {
4215
+ method: 'GET',
4216
+ url: '/api/v1/market/symbols/{symbol}/quote',
4217
+ path: {
4218
+ symbol: data.symbol
4219
+ },
4220
+ errors: {
4221
+ 404: 'Symbol not found in the openbb catalog'
4222
+ }
4223
+ });
4224
+ }
4225
+ }