@firela/api-types 0.0.0-canary.9256c41b → 0.0.0-canary.97006feb

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,
@@ -2161,534 +2161,691 @@ export class RecurringForecastService {
2161
2161
  }
2162
2162
  }
2163
2163
 
2164
- export class BeanTransactionRulesService {
2164
+ export class ReportingService {
2165
2165
  /**
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.
2166
+ * Get portfolio value trends
2167
+ *
2168
+ * Returns time series data of portfolio net worth.
2169
+ *
2170
+ * **Multi-currency Support:**
2171
+ * - `series[].byCurrency` - Currency breakdown for each data point
2172
+ * - `byCurrency` - Separate time series grouped by currency
2173
+ * - `warnings` - Exchange rate warnings if conversion failed
2174
+ *
2175
+ * **Parameters:**
2176
+ * - `period`: Time period (1m, 3m, 6m, 1y)
2177
+ * - `granularity`: Data granularity (day, week, month)
2178
+ *
2168
2179
  * @param data The data for the request.
2169
2180
  * @param data.region Region code for tenant context
2170
- * @param data.requestBody
2171
- * @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
2181
+ * @param data.period Time period
2182
+ * @param data.granularity Data granularity
2183
+ * @returns PortfolioTrendsResponseDto Trends retrieved successfully
2172
2184
  * @throws ApiError
2173
2185
  */
2174
- public static transactionRuleControllerCreate(
2175
- data: TransactionRuleControllerCreateData
2176
- ): CancelablePromise<TransactionRuleControllerCreateResponse> {
2186
+ public static reportingControllerGetPortfolioTrends(
2187
+ data: ReportingControllerGetPortfolioTrendsData
2188
+ ): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
2177
2189
  return __request(OpenAPI, {
2178
- method: 'POST',
2179
- url: '/api/v1/{region}/bean/transaction-rules',
2190
+ method: 'GET',
2191
+ url: '/api/v1/{region}/reporting/portfolio/trends',
2180
2192
  path: {
2181
2193
  region: data.region
2182
2194
  },
2183
- body: data.requestBody,
2184
- mediaType: 'application/json',
2195
+ query: {
2196
+ period: data.period,
2197
+ granularity: data.granularity
2198
+ },
2185
2199
  errors: {
2186
- 400: 'Validation failed',
2187
- 401: 'Unauthorized',
2188
- 409: 'Resource conflict - another process is updating this rule'
2200
+ 401: 'User not authenticated'
2189
2201
  }
2190
2202
  });
2191
2203
  }
2192
2204
 
2193
2205
  /**
2194
- * Get all transaction rules for user
2206
+ * Get cash-flow trends
2207
+ *
2208
+ * Monthly income / expense / netSavings over a fixed N-month window
2209
+ * (current month + N−1 prior). Missing months are zero-filled (flow metric).
2210
+ *
2211
+ * **Parameters:**
2212
+ * - `period`: 1m | 3m | 6m | 1y (default 6m)
2213
+ * - `granularity`: accepted for API symmetry; v1 returns month buckets
2214
+ *
2195
2215
  * @param data The data for the request.
2196
2216
  * @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
2217
+ * @param data.period Time period
2218
+ * @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
2219
+ * @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
2203
2220
  * @throws ApiError
2204
2221
  */
2205
- public static transactionRuleControllerList(
2206
- data: TransactionRuleControllerListData
2207
- ): CancelablePromise<TransactionRuleControllerListResponse> {
2222
+ public static reportingControllerGetCashFlowTrends(
2223
+ data: ReportingControllerGetCashFlowTrendsData
2224
+ ): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
2208
2225
  return __request(OpenAPI, {
2209
2226
  method: 'GET',
2210
- url: '/api/v1/{region}/bean/transaction-rules',
2227
+ url: '/api/v1/{region}/reporting/cash-flow/trends',
2211
2228
  path: {
2212
2229
  region: data.region
2213
2230
  },
2214
2231
  query: {
2215
- limit: data.limit,
2216
- offset: data.offset,
2217
- enabled: data.enabled,
2218
- learningSource: data.learningSource,
2219
- autoApplyEnabled: data.autoApplyEnabled
2232
+ period: data.period,
2233
+ granularity: data.granularity
2220
2234
  },
2221
2235
  errors: {
2222
- 401: 'Unauthorized'
2236
+ 401: 'User not authenticated'
2223
2237
  }
2224
2238
  });
2225
2239
  }
2226
2240
 
2227
2241
  /**
2228
- * Validate transaction rule configuration
2242
+ * Generate portfolio snapshot
2243
+ *
2244
+ * Manually generate a portfolio snapshot for a specific date.
2245
+ *
2246
+ * **Multi-currency Support:**
2247
+ * - Fetches balances grouped by currency
2248
+ * - Uses user's baseCurrency setting for conversion
2249
+ * - Stores exchange rates and warnings
2250
+ *
2251
+ * **Use Cases:**
2252
+ * - Testing snapshot generation
2253
+ * - Force regeneration after data correction
2254
+ * - Initial setup for new users
2255
+ *
2229
2256
  * @param data The data for the request.
2230
2257
  * @param data.region Region code for tenant context
2231
- * @param data.requestBody
2232
- * @returns ValidateRuleResponseDto Validation result
2258
+ * @param data.requestBody Optional date (defaults to today)
2259
+ * @returns GenerateSnapshotResponse Snapshot generated successfully
2233
2260
  * @throws ApiError
2234
2261
  */
2235
- public static transactionRuleControllerValidate(
2236
- data: TransactionRuleControllerValidateData
2237
- ): CancelablePromise<TransactionRuleControllerValidateResponse> {
2262
+ public static reportingControllerGenerateSnapshot(
2263
+ data: ReportingControllerGenerateSnapshotData
2264
+ ): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
2238
2265
  return __request(OpenAPI, {
2239
2266
  method: 'POST',
2240
- url: '/api/v1/{region}/bean/transaction-rules/validate',
2267
+ url: '/api/v1/{region}/reporting/snapshots/generate',
2241
2268
  path: {
2242
2269
  region: data.region
2243
2270
  },
2244
2271
  body: data.requestBody,
2245
2272
  mediaType: 'application/json',
2246
2273
  errors: {
2247
- 400: 'Validation failed',
2248
- 401: 'Unauthorized'
2274
+ 400: 'Invalid date format',
2275
+ 401: 'User not authenticated'
2249
2276
  }
2250
2277
  });
2251
2278
  }
2252
2279
 
2253
2280
  /**
2254
- * Bulk create transaction rules
2281
+ * Backfill portfolio snapshots
2282
+ *
2283
+ * Generate snapshots for a date range (historical data backfill).
2284
+ *
2285
+ * **Multi-currency Support:**
2286
+ * - Each snapshot includes multi-currency data
2287
+ * - Uses exchange rates available at generation time
2288
+ * - Warnings stored for missing exchange rates
2289
+ *
2290
+ * **Best Practices:**
2291
+ * - Use for initial setup after account configuration
2292
+ * - Run during low-traffic periods for large date ranges
2293
+ * - Existing snapshots are skipped (not regenerated)
2294
+ *
2255
2295
  * @param data The data for the request.
2256
2296
  * @param data.region Region code for tenant context
2257
2297
  * @param data.requestBody
2258
- * @returns BulkCreateRulesResponseDto Bulk create completed
2298
+ * @returns BackfillSnapshotsResponse Backfill completed successfully
2259
2299
  * @throws ApiError
2260
2300
  */
2261
- public static transactionRuleControllerBulkCreate(
2262
- data: TransactionRuleControllerBulkCreateData
2263
- ): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
2301
+ public static reportingControllerBackfillSnapshots(
2302
+ data: ReportingControllerBackfillSnapshotsData
2303
+ ): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
2264
2304
  return __request(OpenAPI, {
2265
2305
  method: 'POST',
2266
- url: '/api/v1/{region}/bean/transaction-rules/bulk',
2306
+ url: '/api/v1/{region}/reporting/snapshots/backfill',
2267
2307
  path: {
2268
2308
  region: data.region
2269
2309
  },
2270
2310
  body: data.requestBody,
2271
2311
  mediaType: 'application/json',
2272
2312
  errors: {
2273
- 400: 'Invalid bulk create data',
2274
- 401: 'Unauthorized'
2313
+ 400: 'Invalid date format or range',
2314
+ 401: 'User not authenticated',
2315
+ 409: 'Backfill already in progress for this user'
2275
2316
  }
2276
2317
  });
2277
2318
  }
2319
+ }
2278
2320
 
2321
+ export class UsersService {
2279
2322
  /**
2280
- * Export transaction rules
2323
+ * Delete own user account
2281
2324
  * @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
2325
+ * @param data.requestBody
2326
+ * @returns void User deleted successfully
2285
2327
  * @throws ApiError
2286
2328
  */
2287
- public static transactionRuleControllerExport(
2288
- data: TransactionRuleControllerExportData
2289
- ): CancelablePromise<TransactionRuleControllerExportResponse> {
2329
+ public static userControllerDeleteOwnUser(
2330
+ data: UserControllerDeleteOwnUserData
2331
+ ): CancelablePromise<UserControllerDeleteOwnUserResponse> {
2290
2332
  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
- },
2333
+ method: 'DELETE',
2334
+ url: '/api/v1/users',
2335
+ body: data.requestBody,
2336
+ mediaType: 'application/json',
2297
2337
  errors: {
2298
- 400: 'Unsupported format',
2299
- 401: 'Unauthorized'
2338
+ 403: 'Invalid access token'
2300
2339
  }
2301
2340
  });
2302
2341
  }
2303
2342
 
2304
2343
  /**
2305
- * Get transaction rule statistics
2344
+ * Get current authenticated user
2306
2345
  * @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
2346
+ * @param data.acceptLanguage
2347
+ * @returns unknown User retrieved successfully
2310
2348
  * @throws ApiError
2311
2349
  */
2312
- public static transactionRuleControllerGetStatistics(
2313
- data: TransactionRuleControllerGetStatisticsData
2314
- ): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
2350
+ public static userControllerGetUser(
2351
+ data: UserControllerGetUserData
2352
+ ): CancelablePromise<UserControllerGetUserResponse> {
2315
2353
  return __request(OpenAPI, {
2316
2354
  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'
2355
+ url: '/api/v1/users',
2356
+ headers: {
2357
+ 'accept-language': data.acceptLanguage
2324
2358
  }
2325
2359
  });
2326
2360
  }
2327
2361
 
2328
2362
  /**
2329
- * Get transaction rule detail
2363
+ * Sign up new user
2364
+ * Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
2330
2365
  * @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
2366
+ * @param data.requestBody
2367
+ * @returns SignupResponseDto User created successfully
2334
2368
  * @throws ApiError
2335
2369
  */
2336
- public static transactionRuleControllerGetDetail(
2337
- data: TransactionRuleControllerGetDetailData
2338
- ): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
2370
+ public static userControllerSignupUser(
2371
+ data: UserControllerSignupUserData
2372
+ ): CancelablePromise<UserControllerSignupUserResponse> {
2339
2373
  return __request(OpenAPI, {
2340
- method: 'GET',
2341
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2342
- path: {
2343
- ruleId: data.ruleId,
2344
- region: data.region
2345
- },
2374
+ method: 'POST',
2375
+ url: '/api/v1/users',
2376
+ body: data.requestBody,
2377
+ mediaType: 'application/json',
2346
2378
  errors: {
2347
- 401: 'Unauthorized',
2348
- 403: 'Forbidden - not owner of rule',
2349
- 404: 'Rule not found'
2379
+ 400: 'Invalid Turnstile token (when Turnstile is enabled)',
2380
+ 403: 'User signup is disabled'
2350
2381
  }
2351
2382
  });
2352
2383
  }
2353
2384
 
2354
2385
  /**
2355
- * Update a transaction rule
2386
+ * Delete user by ID (admin only)
2356
2387
  * @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
- * @param data.requestBody
2360
- * @returns TransactionRuleResponseDto Rule updated successfully
2388
+ * @param data.id User ID to delete
2389
+ * @returns void User deleted successfully
2361
2390
  * @throws ApiError
2362
2391
  */
2363
- public static transactionRuleControllerUpdate(
2364
- data: TransactionRuleControllerUpdateData
2365
- ): CancelablePromise<TransactionRuleControllerUpdateResponse> {
2392
+ public static userControllerDeleteUser(
2393
+ data: UserControllerDeleteUserData
2394
+ ): CancelablePromise<UserControllerDeleteUserResponse> {
2366
2395
  return __request(OpenAPI, {
2367
- method: 'PUT',
2368
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2396
+ method: 'DELETE',
2397
+ url: '/api/v1/users/{id}',
2369
2398
  path: {
2370
- ruleId: data.ruleId,
2371
- region: data.region
2399
+ id: data.id
2372
2400
  },
2373
- body: data.requestBody,
2374
- mediaType: 'application/json',
2375
2401
  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'
2402
+ 403: 'Cannot delete own account or insufficient permissions'
2381
2403
  }
2382
2404
  });
2383
2405
  }
2384
2406
 
2385
2407
  /**
2386
- * Delete a transaction rule
2408
+ * Get user info by user ID
2387
2409
  * @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
2410
+ * @param data.id User ID
2411
+ * @returns unknown User info retrieved successfully
2391
2412
  * @throws ApiError
2392
2413
  */
2393
- public static transactionRuleControllerDelete(
2394
- data: TransactionRuleControllerDeleteData
2395
- ): CancelablePromise<TransactionRuleControllerDeleteResponse> {
2414
+ public static userControllerGetUserInfo(
2415
+ data: UserControllerGetUserInfoData
2416
+ ): CancelablePromise<UserControllerGetUserInfoResponse> {
2396
2417
  return __request(OpenAPI, {
2397
- method: 'DELETE',
2398
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2418
+ method: 'GET',
2419
+ url: '/api/v1/users/{id}/info',
2399
2420
  path: {
2400
- ruleId: data.ruleId,
2401
- region: data.region
2421
+ id: data.id
2402
2422
  },
2403
2423
  errors: {
2404
- 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'
2424
+ 403: 'Cannot access other user info without admin permission'
2408
2425
  }
2409
2426
  });
2410
2427
  }
2411
2428
 
2412
2429
  /**
2413
- * Test rule matching
2430
+ * Update user settings
2414
2431
  * @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
2432
  * @param data.requestBody
2418
- * @returns TestRuleResponseDto Test result
2433
+ * @returns unknown Settings updated successfully
2419
2434
  * @throws ApiError
2420
2435
  */
2421
- public static transactionRuleControllerTest(
2422
- data: TransactionRuleControllerTestData
2423
- ): CancelablePromise<TransactionRuleControllerTestResponse> {
2436
+ public static userControllerUpdateUserSetting(
2437
+ data: UserControllerUpdateUserSettingData
2438
+ ): CancelablePromise<UserControllerUpdateUserSettingResponse> {
2424
2439
  return __request(OpenAPI, {
2425
- method: 'POST',
2426
- url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
2427
- path: {
2428
- ruleId: data.ruleId,
2429
- region: data.region
2430
- },
2440
+ method: 'PUT',
2441
+ url: '/api/v1/users/setting',
2431
2442
  body: data.requestBody,
2432
2443
  mediaType: 'application/json',
2433
2444
  errors: {
2434
- 401: 'Unauthorized',
2435
- 403: 'Forbidden - not owner of rule',
2436
- 404: 'Rule not found'
2445
+ 403: 'Insufficient permissions'
2437
2446
  }
2438
2447
  });
2439
2448
  }
2440
- }
2441
2449
 
2442
- export class UsersService {
2443
2450
  /**
2444
- * Delete own user account
2451
+ * Get all user settings paginated (admin only)
2445
2452
  * @param data The data for the request.
2446
- * @param data.requestBody
2447
- * @returns void User deleted successfully
2453
+ * @param data.pageNo Page number
2454
+ * @param data.pageSize Page size
2455
+ * @returns unknown Settings list retrieved successfully
2448
2456
  * @throws ApiError
2449
2457
  */
2450
- public static userControllerDeleteOwnUser(
2451
- data: UserControllerDeleteOwnUserData
2452
- ): CancelablePromise<UserControllerDeleteOwnUserResponse> {
2458
+ public static userControllerGetAllUserSettingsByPage(
2459
+ data: UserControllerGetAllUserSettingsByPageData
2460
+ ): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
2453
2461
  return __request(OpenAPI, {
2454
- method: 'DELETE',
2455
- url: '/api/v1/users',
2456
- body: data.requestBody,
2457
- mediaType: 'application/json',
2462
+ method: 'GET',
2463
+ url: '/api/v1/users/settings-by-page',
2464
+ query: {
2465
+ pageNo: data.pageNo,
2466
+ pageSize: data.pageSize
2467
+ }
2468
+ });
2469
+ }
2470
+
2471
+ /**
2472
+ * Get asset and liability summary for current user
2473
+ * @returns unknown Summary retrieved successfully
2474
+ * @throws ApiError
2475
+ */
2476
+ public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
2477
+ return __request(OpenAPI, {
2478
+ method: 'GET',
2479
+ url: '/api/v1/users/asset-liability-summary'
2480
+ });
2481
+ }
2482
+ }
2483
+
2484
+ export class PropertiesService {
2485
+ /**
2486
+ * Get all system properties
2487
+ * @returns unknown Properties retrieved successfully
2488
+ * @throws ApiError
2489
+ */
2490
+ public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
2491
+ return __request(OpenAPI, {
2492
+ method: 'GET',
2493
+ url: '/api/v1/admin/properties',
2458
2494
  errors: {
2459
- 403: 'Invalid access token'
2495
+ 401: 'Unauthorized',
2496
+ 403: 'Forbidden - insufficient permissions'
2460
2497
  }
2461
2498
  });
2462
2499
  }
2463
2500
 
2464
2501
  /**
2465
- * Get current authenticated user
2502
+ * Get property by key
2466
2503
  * @param data The data for the request.
2467
- * @param data.acceptLanguage
2468
- * @returns unknown User retrieved successfully
2504
+ * @param data.key Property key
2505
+ * @returns unknown Property retrieved successfully
2469
2506
  * @throws ApiError
2470
2507
  */
2471
- public static userControllerGetUser(
2472
- data: UserControllerGetUserData
2473
- ): CancelablePromise<UserControllerGetUserResponse> {
2508
+ public static propertyControllerGetByKey(
2509
+ data: PropertyControllerGetByKeyData
2510
+ ): CancelablePromise<PropertyControllerGetByKeyResponse> {
2474
2511
  return __request(OpenAPI, {
2475
2512
  method: 'GET',
2476
- url: '/api/v1/users',
2477
- headers: {
2478
- 'accept-language': data.acceptLanguage
2513
+ url: '/api/v1/admin/properties/{key}',
2514
+ path: {
2515
+ key: data.key
2516
+ },
2517
+ errors: {
2518
+ 401: 'Unauthorized',
2519
+ 403: 'Forbidden - insufficient permissions',
2520
+ 404: 'Property not found'
2479
2521
  }
2480
2522
  });
2481
2523
  }
2482
2524
 
2483
2525
  /**
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).
2526
+ * Update a system property
2486
2527
  * @param data The data for the request.
2528
+ * @param data.key Property key
2487
2529
  * @param data.requestBody
2488
- * @returns SignupResponseDto User created successfully
2530
+ * @returns unknown Property updated successfully
2489
2531
  * @throws ApiError
2490
2532
  */
2491
- public static userControllerSignupUser(
2492
- data: UserControllerSignupUserData
2493
- ): CancelablePromise<UserControllerSignupUserResponse> {
2533
+ public static propertyControllerUpdate(
2534
+ data: PropertyControllerUpdateData
2535
+ ): CancelablePromise<PropertyControllerUpdateResponse> {
2494
2536
  return __request(OpenAPI, {
2495
- method: 'POST',
2496
- url: '/api/v1/users',
2537
+ method: 'PUT',
2538
+ url: '/api/v1/admin/properties/{key}',
2539
+ path: {
2540
+ key: data.key
2541
+ },
2497
2542
  body: data.requestBody,
2498
2543
  mediaType: 'application/json',
2499
2544
  errors: {
2500
- 400: 'Invalid Turnstile token (when Turnstile is enabled)',
2501
- 403: 'User signup is disabled'
2545
+ 401: 'Unauthorized',
2546
+ 403: 'Forbidden - insufficient permissions'
2502
2547
  }
2503
2548
  });
2504
2549
  }
2505
2550
 
2506
2551
  /**
2507
- * Delete user by ID (admin only)
2552
+ * Delete a system property
2508
2553
  * @param data The data for the request.
2509
- * @param data.id User ID to delete
2510
- * @returns void User deleted successfully
2554
+ * @param data.key Property key
2555
+ * @returns void Property deleted successfully
2511
2556
  * @throws ApiError
2512
2557
  */
2513
- public static userControllerDeleteUser(
2514
- data: UserControllerDeleteUserData
2515
- ): CancelablePromise<UserControllerDeleteUserResponse> {
2558
+ public static propertyControllerDelete(
2559
+ data: PropertyControllerDeleteData
2560
+ ): CancelablePromise<PropertyControllerDeleteResponse> {
2516
2561
  return __request(OpenAPI, {
2517
2562
  method: 'DELETE',
2518
- url: '/api/v1/users/{id}',
2563
+ url: '/api/v1/admin/properties/{key}',
2519
2564
  path: {
2520
- id: data.id
2565
+ key: data.key
2521
2566
  },
2522
2567
  errors: {
2523
- 403: 'Cannot delete own account or insufficient permissions'
2568
+ 401: 'Unauthorized',
2569
+ 403: 'Forbidden - insufficient permissions',
2570
+ 404: 'Property not found'
2524
2571
  }
2525
2572
  });
2526
2573
  }
2574
+ }
2527
2575
 
2576
+ export class BeanTransactionRulesService {
2528
2577
  /**
2529
- * Get user info by user ID
2578
+ * Create a new transaction rule (or upsert if upsertByPayee=true)
2579
+ * Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
2530
2580
  * @param data The data for the request.
2531
- * @param data.id User ID
2532
- * @returns unknown User info retrieved successfully
2581
+ * @param data.region Region code for tenant context
2582
+ * @param data.requestBody
2583
+ * @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
2533
2584
  * @throws ApiError
2534
2585
  */
2535
- public static userControllerGetUserInfo(
2536
- data: UserControllerGetUserInfoData
2537
- ): CancelablePromise<UserControllerGetUserInfoResponse> {
2586
+ public static transactionRuleControllerCreate(
2587
+ data: TransactionRuleControllerCreateData
2588
+ ): CancelablePromise<TransactionRuleControllerCreateResponse> {
2589
+ return __request(OpenAPI, {
2590
+ method: 'POST',
2591
+ url: '/api/v1/{region}/bean/transaction-rules',
2592
+ path: {
2593
+ region: data.region
2594
+ },
2595
+ body: data.requestBody,
2596
+ mediaType: 'application/json',
2597
+ errors: {
2598
+ 400: 'Validation failed',
2599
+ 401: 'Unauthorized',
2600
+ 409: 'Resource conflict - another process is updating this rule'
2601
+ }
2602
+ });
2603
+ }
2604
+
2605
+ /**
2606
+ * Get all transaction rules for user
2607
+ * @param data The data for the request.
2608
+ * @param data.region Region code for tenant context
2609
+ * @param data.limit Max results per page (default: 20, max: 100)
2610
+ * @param data.offset Pagination offset (default: 0)
2611
+ * @param data.enabled Filter by enabled status
2612
+ * @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
2613
+ * @param data.autoApplyEnabled Filter by auto-apply status
2614
+ * @returns TransactionRuleListResponseDto List of rules
2615
+ * @throws ApiError
2616
+ */
2617
+ public static transactionRuleControllerList(
2618
+ data: TransactionRuleControllerListData
2619
+ ): CancelablePromise<TransactionRuleControllerListResponse> {
2538
2620
  return __request(OpenAPI, {
2539
2621
  method: 'GET',
2540
- url: '/api/v1/users/{id}/info',
2622
+ url: '/api/v1/{region}/bean/transaction-rules',
2541
2623
  path: {
2542
- id: data.id
2624
+ region: data.region
2625
+ },
2626
+ query: {
2627
+ limit: data.limit,
2628
+ offset: data.offset,
2629
+ enabled: data.enabled,
2630
+ learningSource: data.learningSource,
2631
+ autoApplyEnabled: data.autoApplyEnabled
2543
2632
  },
2544
2633
  errors: {
2545
- 403: 'Cannot access other user info without admin permission'
2634
+ 401: 'Unauthorized'
2546
2635
  }
2547
2636
  });
2548
2637
  }
2549
2638
 
2550
2639
  /**
2551
- * Update user settings
2640
+ * Validate transaction rule configuration
2552
2641
  * @param data The data for the request.
2642
+ * @param data.region Region code for tenant context
2553
2643
  * @param data.requestBody
2554
- * @returns unknown Settings updated successfully
2644
+ * @returns ValidateRuleResponseDto Validation result
2555
2645
  * @throws ApiError
2556
2646
  */
2557
- public static userControllerUpdateUserSetting(
2558
- data: UserControllerUpdateUserSettingData
2559
- ): CancelablePromise<UserControllerUpdateUserSettingResponse> {
2647
+ public static transactionRuleControllerValidate(
2648
+ data: TransactionRuleControllerValidateData
2649
+ ): CancelablePromise<TransactionRuleControllerValidateResponse> {
2560
2650
  return __request(OpenAPI, {
2561
- method: 'PUT',
2562
- url: '/api/v1/users/setting',
2651
+ method: 'POST',
2652
+ url: '/api/v1/{region}/bean/transaction-rules/validate',
2653
+ path: {
2654
+ region: data.region
2655
+ },
2563
2656
  body: data.requestBody,
2564
2657
  mediaType: 'application/json',
2565
2658
  errors: {
2566
- 403: 'Insufficient permissions'
2659
+ 400: 'Validation failed',
2660
+ 401: 'Unauthorized'
2567
2661
  }
2568
2662
  });
2569
2663
  }
2570
2664
 
2571
2665
  /**
2572
- * Get all user settings paginated (admin only)
2666
+ * Bulk create transaction rules
2573
2667
  * @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
2668
+ * @param data.region Region code for tenant context
2669
+ * @param data.requestBody
2670
+ * @returns BulkCreateRulesResponseDto Bulk create completed
2577
2671
  * @throws ApiError
2578
2672
  */
2579
- public static userControllerGetAllUserSettingsByPage(
2580
- data: UserControllerGetAllUserSettingsByPageData
2581
- ): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
2673
+ public static transactionRuleControllerBulkCreate(
2674
+ data: TransactionRuleControllerBulkCreateData
2675
+ ): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
2582
2676
  return __request(OpenAPI, {
2583
- method: 'GET',
2584
- url: '/api/v1/users/settings-by-page',
2585
- query: {
2586
- pageNo: data.pageNo,
2587
- pageSize: data.pageSize
2677
+ method: 'POST',
2678
+ url: '/api/v1/{region}/bean/transaction-rules/bulk',
2679
+ path: {
2680
+ region: data.region
2681
+ },
2682
+ body: data.requestBody,
2683
+ mediaType: 'application/json',
2684
+ errors: {
2685
+ 400: 'Invalid bulk create data',
2686
+ 401: 'Unauthorized'
2588
2687
  }
2589
2688
  });
2590
2689
  }
2591
2690
 
2592
2691
  /**
2593
- * Get asset and liability summary for current user
2594
- * @returns unknown Summary retrieved successfully
2692
+ * Export transaction rules
2693
+ * @param data The data for the request.
2694
+ * @param data.format Export format (currently only JSON supported)
2695
+ * @param data.region Region code for tenant context
2696
+ * @returns ExportRulesResponseDto Exported rules
2595
2697
  * @throws ApiError
2596
2698
  */
2597
- public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
2699
+ public static transactionRuleControllerExport(
2700
+ data: TransactionRuleControllerExportData
2701
+ ): CancelablePromise<TransactionRuleControllerExportResponse> {
2598
2702
  return __request(OpenAPI, {
2599
2703
  method: 'GET',
2600
- url: '/api/v1/users/asset-liability-summary'
2704
+ url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
2705
+ path: {
2706
+ format: data.format,
2707
+ region: data.region
2708
+ },
2709
+ errors: {
2710
+ 400: 'Unsupported format',
2711
+ 401: 'Unauthorized'
2712
+ }
2601
2713
  });
2602
2714
  }
2603
- }
2604
2715
 
2605
- export class PropertiesService {
2606
2716
  /**
2607
- * Get all system properties
2608
- * @returns unknown Properties retrieved successfully
2717
+ * Get transaction rule statistics
2718
+ * @param data The data for the request.
2719
+ * @param data.period Statistics time period
2720
+ * @param data.region Region code for tenant context
2721
+ * @returns RuleStatisticsResponseDto Rule statistics
2609
2722
  * @throws ApiError
2610
2723
  */
2611
- public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
2724
+ public static transactionRuleControllerGetStatistics(
2725
+ data: TransactionRuleControllerGetStatisticsData
2726
+ ): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
2612
2727
  return __request(OpenAPI, {
2613
2728
  method: 'GET',
2614
- url: '/api/v1/admin/properties',
2615
- errors: {
2616
- 401: 'Unauthorized',
2617
- 403: 'Forbidden - insufficient permissions'
2729
+ url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
2730
+ path: {
2731
+ period: data.period,
2732
+ region: data.region
2733
+ },
2734
+ errors: {
2735
+ 401: 'Unauthorized'
2618
2736
  }
2619
2737
  });
2620
2738
  }
2621
2739
 
2622
2740
  /**
2623
- * Get property by key
2741
+ * Get transaction rule detail
2624
2742
  * @param data The data for the request.
2625
- * @param data.key Property key
2626
- * @returns unknown Property retrieved successfully
2743
+ * @param data.ruleId Rule ID
2744
+ * @param data.region Region code for tenant context
2745
+ * @returns TransactionRuleResponseDto Rule details
2627
2746
  * @throws ApiError
2628
2747
  */
2629
- public static propertyControllerGetByKey(
2630
- data: PropertyControllerGetByKeyData
2631
- ): CancelablePromise<PropertyControllerGetByKeyResponse> {
2748
+ public static transactionRuleControllerGetDetail(
2749
+ data: TransactionRuleControllerGetDetailData
2750
+ ): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
2632
2751
  return __request(OpenAPI, {
2633
2752
  method: 'GET',
2634
- url: '/api/v1/admin/properties/{key}',
2753
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2635
2754
  path: {
2636
- key: data.key
2755
+ ruleId: data.ruleId,
2756
+ region: data.region
2637
2757
  },
2638
2758
  errors: {
2639
2759
  401: 'Unauthorized',
2640
- 403: 'Forbidden - insufficient permissions',
2641
- 404: 'Property not found'
2760
+ 403: 'Forbidden - not owner of rule',
2761
+ 404: 'Rule not found'
2642
2762
  }
2643
2763
  });
2644
2764
  }
2645
2765
 
2646
2766
  /**
2647
- * Update a system property
2767
+ * Update a transaction rule
2648
2768
  * @param data The data for the request.
2649
- * @param data.key Property key
2769
+ * @param data.ruleId Rule ID to update
2770
+ * @param data.region Region code for tenant context
2650
2771
  * @param data.requestBody
2651
- * @returns unknown Property updated successfully
2772
+ * @returns TransactionRuleResponseDto Rule updated successfully
2652
2773
  * @throws ApiError
2653
2774
  */
2654
- public static propertyControllerUpdate(
2655
- data: PropertyControllerUpdateData
2656
- ): CancelablePromise<PropertyControllerUpdateResponse> {
2775
+ public static transactionRuleControllerUpdate(
2776
+ data: TransactionRuleControllerUpdateData
2777
+ ): CancelablePromise<TransactionRuleControllerUpdateResponse> {
2657
2778
  return __request(OpenAPI, {
2658
2779
  method: 'PUT',
2659
- url: '/api/v1/admin/properties/{key}',
2780
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2660
2781
  path: {
2661
- key: data.key
2782
+ ruleId: data.ruleId,
2783
+ region: data.region
2662
2784
  },
2663
2785
  body: data.requestBody,
2664
2786
  mediaType: 'application/json',
2665
2787
  errors: {
2788
+ 400: 'Validation failed',
2666
2789
  401: 'Unauthorized',
2667
- 403: 'Forbidden - insufficient permissions'
2790
+ 403: 'Forbidden - not owner of rule',
2791
+ 404: 'Rule not found',
2792
+ 409: 'Resource conflict - rule is being modified by another process'
2668
2793
  }
2669
2794
  });
2670
2795
  }
2671
2796
 
2672
2797
  /**
2673
- * Delete a system property
2798
+ * Delete a transaction rule
2674
2799
  * @param data The data for the request.
2675
- * @param data.key Property key
2676
- * @returns void Property deleted successfully
2800
+ * @param data.ruleId Rule ID to delete
2801
+ * @param data.region Region code for tenant context
2802
+ * @returns void Rule deleted successfully
2677
2803
  * @throws ApiError
2678
2804
  */
2679
- public static propertyControllerDelete(
2680
- data: PropertyControllerDeleteData
2681
- ): CancelablePromise<PropertyControllerDeleteResponse> {
2805
+ public static transactionRuleControllerDelete(
2806
+ data: TransactionRuleControllerDeleteData
2807
+ ): CancelablePromise<TransactionRuleControllerDeleteResponse> {
2682
2808
  return __request(OpenAPI, {
2683
2809
  method: 'DELETE',
2684
- url: '/api/v1/admin/properties/{key}',
2810
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
2685
2811
  path: {
2686
- key: data.key
2812
+ ruleId: data.ruleId,
2813
+ region: data.region
2687
2814
  },
2688
2815
  errors: {
2689
2816
  401: 'Unauthorized',
2690
- 403: 'Forbidden - insufficient permissions',
2691
- 404: 'Property not found'
2817
+ 403: 'Forbidden - not owner of rule',
2818
+ 404: 'Rule not found',
2819
+ 409: 'Resource conflict - rule is being modified by another process'
2820
+ }
2821
+ });
2822
+ }
2823
+
2824
+ /**
2825
+ * Test rule matching
2826
+ * @param data The data for the request.
2827
+ * @param data.ruleId Rule ID to test
2828
+ * @param data.region Region code for tenant context
2829
+ * @param data.requestBody
2830
+ * @returns TestRuleResponseDto Test result
2831
+ * @throws ApiError
2832
+ */
2833
+ public static transactionRuleControllerTest(
2834
+ data: TransactionRuleControllerTestData
2835
+ ): CancelablePromise<TransactionRuleControllerTestResponse> {
2836
+ return __request(OpenAPI, {
2837
+ method: 'POST',
2838
+ url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
2839
+ path: {
2840
+ ruleId: data.ruleId,
2841
+ region: data.region
2842
+ },
2843
+ body: data.requestBody,
2844
+ mediaType: 'application/json',
2845
+ errors: {
2846
+ 401: 'Unauthorized',
2847
+ 403: 'Forbidden - not owner of rule',
2848
+ 404: 'Rule not found'
2692
2849
  }
2693
2850
  });
2694
2851
  }
@@ -3802,163 +3959,6 @@ export class InvestmentService {
3802
3959
  }
3803
3960
  }
3804
3961
 
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
3962
  export class ApiKeysService {
3963
3963
  /**
3964
3964
  * Create API key