@firela/api-types 0.0.0-canary.614ff760 → 0.0.0-canary.6e40e263

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.
@@ -316,6 +316,53 @@ export type RegionsMetadataResponseDto = {
316
316
  regions: Array<RegionInfoDto>;
317
317
  };
318
318
 
319
+ export type CostSpecDto = {
320
+ /**
321
+ * Cost specification mode (mirrors engine CostSpec)
322
+ */
323
+ mode: 'per-unit' | 'total' | 'date' | 'label' | 'auto';
324
+ /**
325
+ * Per-unit cost (required when mode is "per-unit")
326
+ */
327
+ numberPerUnit?: string;
328
+ /**
329
+ * Total cost for all units (required when mode is "total")
330
+ */
331
+ totalNumber?: string;
332
+ /**
333
+ * Cost currency (required in all modes)
334
+ */
335
+ currency: string;
336
+ /**
337
+ * Lot acquisition date, ISO 8601 (required when mode is "date")
338
+ */
339
+ date?: string;
340
+ /**
341
+ * Lot label (required when mode is "label"; optional tag in buy modes)
342
+ */
343
+ label?: string;
344
+ /**
345
+ * Merge lots for AVERAGE booking (mode: auto)
346
+ */
347
+ merge?: boolean;
348
+ };
349
+
350
+ /**
351
+ * Cost specification mode (mirrors engine CostSpec)
352
+ */
353
+ export type mode = 'per-unit' | 'total' | 'date' | 'label' | 'auto';
354
+
355
+ export type AmountDto = {
356
+ /**
357
+ * Amount as decimal string (max 15 integer + 15 decimal digits)
358
+ */
359
+ number: string;
360
+ /**
361
+ * Currency/commodity code
362
+ */
363
+ currency: string;
364
+ };
365
+
319
366
  export type CreatePostingDto = {
320
367
  /**
321
368
  * Account name in Beancount format (must start with uppercase, colon-separated)
@@ -335,6 +382,14 @@ export type CreatePostingDto = {
335
382
  meta?: {
336
383
  [key: string]: unknown;
337
384
  };
385
+ /**
386
+ * Cost basis (Beancount `{...}`). Maps to engine costSpec. Required for commodity holdings so they carry a monetary weight that can balance.
387
+ */
388
+ cost?: CostSpecDto;
389
+ /**
390
+ * Price annotation (Beancount `@...`). Maps to engine price. Used for valuation; cost takes priority for balance weight.
391
+ */
392
+ price?: AmountDto;
338
393
  };
339
394
 
340
395
  export type CreateTransactionDto = {
@@ -387,6 +442,25 @@ export type CreateTransactionDto = {
387
442
  */
388
443
  export type flag = '*' | '!';
389
444
 
445
+ export type CostDetailDto = {
446
+ /**
447
+ * Per-unit cost basis (mirrors engine Cost.number)
448
+ */
449
+ number?: string;
450
+ /**
451
+ * Cost currency
452
+ */
453
+ currency?: string;
454
+ /**
455
+ * Lot acquisition date (ISO yyyy-mm-dd)
456
+ */
457
+ date?: string;
458
+ /**
459
+ * Lot label
460
+ */
461
+ label?: string;
462
+ };
463
+
390
464
  export type PostingResponseDto = {
391
465
  /**
392
466
  * Account name
@@ -400,6 +474,10 @@ export type PostingResponseDto = {
400
474
  * Currency
401
475
  */
402
476
  currency?: string;
477
+ /**
478
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
479
+ */
480
+ cost?: CostDetailDto;
403
481
  };
404
482
 
405
483
  export type RecurringSuggestionDto = {
@@ -620,9 +698,9 @@ export type PostingDetailDto = {
620
698
  */
621
699
  accountId: string;
622
700
  /**
623
- * Account name
701
+ * Fully-qualified Beancount account path
624
702
  */
625
- accountName: string;
703
+ account: string;
626
704
  /**
627
705
  * Amount as decimal string. Typed optional but always present in responses: interpolation fills any MISSING posting before it is persisted or returned.
628
706
  */
@@ -643,6 +721,10 @@ export type PostingDetailDto = {
643
721
  * Cost date
644
722
  */
645
723
  costDate?: string;
724
+ /**
725
+ * Booking-resolved cost (mirrors engine Cost). Undefined when the posting has no cost basis.
726
+ */
727
+ cost?: CostDetailDto;
646
728
  /**
647
729
  * Price amount
648
730
  */
@@ -3411,6 +3493,8 @@ export type SupportedProvidersResponseDto = {
3411
3493
 
3412
3494
  export type ParserTelemetryReportDto = unknown;
3413
3495
 
3496
+ export type UncoveredFormatMissDto = unknown;
3497
+
3414
3498
  export type ProcessNlpDto = {
3415
3499
  /**
3416
3500
  * Natural language text describing a transaction (Chinese)
@@ -4196,8 +4280,21 @@ export type AccountItemWithAssetClassDto = {
4196
4280
  * Risk level
4197
4281
  */
4198
4282
  riskLevel?: string;
4283
+ /**
4284
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4285
+ */
4286
+ source?: 'USER_META' | 'FIAT_CURRENCY' | 'OPENBB_MAPPING' | 'FALLBACK';
4199
4287
  };
4200
4288
 
4289
+ /**
4290
+ * ADR-0105 classification provenance (holding level always; account level only on FALLBACK)
4291
+ */
4292
+ export type source2 =
4293
+ | 'USER_META'
4294
+ | 'FIAT_CURRENCY'
4295
+ | 'OPENBB_MAPPING'
4296
+ | 'FALLBACK';
4297
+
4201
4298
  export type AssetClassGroupDto = {
4202
4299
  /**
4203
4300
  * Asset class name
@@ -4284,6 +4381,12 @@ export type AssetClassSummaryDto = {
4284
4381
  * Exchange rate warnings
4285
4382
  */
4286
4383
  warnings?: Array<AccountExchangeRateWarningDto>;
4384
+ /**
4385
+ * ADR-0105 §4 fallback provenance stats (holding level only). valueRatio is the grey-area share of total converted value; count is the number of source=FALLBACK holdings.
4386
+ */
4387
+ fallback?: {
4388
+ [key: string]: unknown;
4389
+ };
4287
4390
  };
4288
4391
 
4289
4392
  export type AssetClassAccountsResponseDto = {
@@ -4295,6 +4398,56 @@ export type AssetClassAccountsResponseDto = {
4295
4398
  * Summary statistics
4296
4399
  */
4297
4400
  summary: AssetClassSummaryDto;
4401
+ /**
4402
+ * ADR-0105 §6 holding-level grey-area bucket (source=FALLBACK holdings peeled out of groups). Present only for groupBy=holdingAssetClass when FALLBACK holdings exist.
4403
+ */
4404
+ uncategorized?: AssetClassGroupDto;
4405
+ };
4406
+
4407
+ export type HoldingAssetClassAccountSliceDto = {
4408
+ /**
4409
+ * Account ID
4410
+ */
4411
+ accountId: string;
4412
+ /**
4413
+ * Full account path
4414
+ */
4415
+ accountPath: string;
4416
+ /**
4417
+ * Currency of the holding with the largest converted base value; undefined when no holding is convertible
4418
+ */
4419
+ accountCurrency?: string;
4420
+ /**
4421
+ * Account's market value in base currency (Σ converted holdings; grey bucket included)
4422
+ */
4423
+ marketValueBase: string;
4424
+ /**
4425
+ * Share of the global total (0-100). 0 when globalTotal is zero (no NaN/Infinity).
4426
+ */
4427
+ shareOfTotalPct: number;
4428
+ /**
4429
+ * Per-account asset-class breakdown
4430
+ */
4431
+ groups: Array<AssetClassGroupDto>;
4432
+ /**
4433
+ * Per-account grey bucket (source=FALLBACK holdings, incl. broker cash)
4434
+ */
4435
+ uncategorized?: AssetClassGroupDto;
4436
+ /**
4437
+ * Every holding row for this account (account ID in each row’s `id` field)
4438
+ */
4439
+ holdings: Array<AccountItemWithAssetClassDto>;
4440
+ };
4441
+
4442
+ export type HoldingAssetClassCrossAccountResponseDto = {
4443
+ /**
4444
+ * Merged cross-account holding aggregation
4445
+ */
4446
+ global: AssetClassAccountsResponseDto;
4447
+ /**
4448
+ * Per-account slices
4449
+ */
4450
+ byAccount: Array<HoldingAssetClassAccountSliceDto>;
4298
4451
  };
4299
4452
 
4300
4453
  export type CashFlowByCurrencyDto = {
@@ -4376,6 +4529,303 @@ export type CashFlowResponseDto = {
4376
4529
  warnings?: Array<ExchangeRateWarningDto>;
4377
4530
  };
4378
4531
 
4532
+ export type MonetaryDto = {
4533
+ /**
4534
+ * Amount (Decimal string)
4535
+ */
4536
+ amount: string;
4537
+ /**
4538
+ * ISO 4217 currency
4539
+ */
4540
+ currency: string;
4541
+ /**
4542
+ * Converted to user base currency (Decimal string)
4543
+ */
4544
+ baseCcyEquivalent?: {
4545
+ [key: string]: unknown;
4546
+ } | null;
4547
+ };
4548
+
4549
+ export type CurrentPriceDto = {
4550
+ /**
4551
+ * Price amount (Decimal string)
4552
+ */
4553
+ amount: string;
4554
+ /**
4555
+ * Price currency (ISO 4217)
4556
+ */
4557
+ currency: string;
4558
+ /**
4559
+ * Price date (ISO 8601)
4560
+ */
4561
+ date: string;
4562
+ /**
4563
+ * Price source
4564
+ */
4565
+ source: 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4566
+ };
4567
+
4568
+ /**
4569
+ * Price source
4570
+ */
4571
+ export type source3 = 'USER_OVERRIDE' | 'OPENBB_EQUITY' | 'OPENBB_CURRENCY';
4572
+
4573
+ export type FxRateDto = {
4574
+ from: string;
4575
+ to: string;
4576
+ /**
4577
+ * FX rate (Decimal string)
4578
+ */
4579
+ rate: string;
4580
+ /**
4581
+ * Rate date (ISO 8601)
4582
+ */
4583
+ date: string;
4584
+ };
4585
+
4586
+ export type HoldingPnlRowDto = {
4587
+ /**
4588
+ * Account UUID
4589
+ */
4590
+ accountId: string;
4591
+ /**
4592
+ * Full account path
4593
+ */
4594
+ accountPath: string;
4595
+ /**
4596
+ * Account settlement currency (ISO 4217), from cost currency
4597
+ */
4598
+ accountCcy?: {
4599
+ [key: string]: unknown;
4600
+ } | null;
4601
+ /**
4602
+ * Broker type derived from Platform.type
4603
+ */
4604
+ brokerType?: {
4605
+ [key: string]: unknown;
4606
+ } | null;
4607
+ /**
4608
+ * Commodity symbol
4609
+ */
4610
+ symbol: string;
4611
+ /**
4612
+ * Chart segment token (libs/common resolver)
4613
+ */
4614
+ chartToken: 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4615
+ assetClass: string;
4616
+ assetSubClass?: {
4617
+ [key: string]: unknown;
4618
+ } | null;
4619
+ /**
4620
+ * Net held units (Decimal string)
4621
+ */
4622
+ units: string;
4623
+ /**
4624
+ * Average cost per unit; null when cost currency conflicts or no cost
4625
+ */
4626
+ averageCostPerUnit?: MonetaryDto | null;
4627
+ /**
4628
+ * Cost basis of held units
4629
+ */
4630
+ costBasis?: MonetaryDto | null;
4631
+ /**
4632
+ * Market value at asOf price
4633
+ */
4634
+ marketValue?: MonetaryDto | null;
4635
+ /**
4636
+ * Price used for market value
4637
+ */
4638
+ currentPrice?: CurrentPriceDto | null;
4639
+ /**
4640
+ * Unrealized P&L in base currency (Decimal string); null when any FX/price missing
4641
+ */
4642
+ unrealizedPnlBase?: {
4643
+ [key: string]: unknown;
4644
+ } | null;
4645
+ /**
4646
+ * Unrealized P&L % (Decimal string)
4647
+ */
4648
+ unrealizedPnlPct?: {
4649
+ [key: string]: unknown;
4650
+ } | null;
4651
+ /**
4652
+ * Historical FX rate applied to cost basis
4653
+ */
4654
+ costFxRate?: FxRateDto | null;
4655
+ /**
4656
+ * FX rate applied to market value
4657
+ */
4658
+ marketFxRate?: FxRateDto | null;
4659
+ /**
4660
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4661
+ */
4662
+ pctOfInvestedAssets?: {
4663
+ [key: string]: unknown;
4664
+ } | null;
4665
+ /**
4666
+ * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4667
+ */
4668
+ realizedPnl?: MonetaryDto | null;
4669
+ };
4670
+
4671
+ /**
4672
+ * Chart segment token (libs/common resolver)
4673
+ */
4674
+ export type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4675
+
4676
+ export type HoldingPnlWarningDto = {
4677
+ /**
4678
+ * Warning type
4679
+ */
4680
+ type:
4681
+ | 'MISSING_COST_FX_RATE'
4682
+ | 'MISSING_MARKET_FX_RATE'
4683
+ | 'MISSING_SALE_PRICE'
4684
+ | 'MISSING_REALIZED_FX_RATE'
4685
+ | 'OVERSOLD_LOTS'
4686
+ | 'NO_PRICE'
4687
+ | 'MIXED_COST_CURRENCY';
4688
+ symbol?: {
4689
+ [key: string]: unknown;
4690
+ } | null;
4691
+ accountId?: {
4692
+ [key: string]: unknown;
4693
+ } | null;
4694
+ currency?: {
4695
+ [key: string]: unknown;
4696
+ } | null;
4697
+ };
4698
+
4699
+ /**
4700
+ * Warning type
4701
+ */
4702
+ export type type4 =
4703
+ | 'MISSING_COST_FX_RATE'
4704
+ | 'MISSING_MARKET_FX_RATE'
4705
+ | 'MISSING_SALE_PRICE'
4706
+ | 'MISSING_REALIZED_FX_RATE'
4707
+ | 'OVERSOLD_LOTS'
4708
+ | 'NO_PRICE'
4709
+ | 'MIXED_COST_CURRENCY';
4710
+
4711
+ export type HoldingPnlResponseDto = {
4712
+ asOfDate: string;
4713
+ baseCurrency: string;
4714
+ /**
4715
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4716
+ */
4717
+ method: 'average' | 'FIFO';
4718
+ rows: Array<HoldingPnlRowDto>;
4719
+ warnings: Array<HoldingPnlWarningDto>;
4720
+ };
4721
+
4722
+ /**
4723
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4724
+ */
4725
+ export type method = 'average' | 'FIFO';
4726
+
4727
+ export type CreateBeanPriceDto = {
4728
+ /**
4729
+ * Currency being priced (e.g., USD, AAPL, BTC)
4730
+ */
4731
+ currency: string;
4732
+ /**
4733
+ * Quote currency (pricing currency, e.g., CNY, EUR)
4734
+ */
4735
+ quoteCurrency: string;
4736
+ /**
4737
+ * Price amount (MUST be >= 0 per Beancount spec, supports up to 15 decimal places). Zero allowed for conversion entries, negative strictly prohibited.
4738
+ */
4739
+ amount: number;
4740
+ /**
4741
+ * Price date (ISO 8601 format)
4742
+ */
4743
+ date: string;
4744
+ /**
4745
+ * Metadata (validated by Zod schema, max field lengths enforced)
4746
+ */
4747
+ metadata?: {
4748
+ [key: string]: unknown;
4749
+ };
4750
+ };
4751
+
4752
+ export type PriceResponseDto = {
4753
+ /**
4754
+ * Unique identifier
4755
+ */
4756
+ id: string;
4757
+ /**
4758
+ * User ID (owner of the price)
4759
+ */
4760
+ userId: string;
4761
+ /**
4762
+ * Currency being priced (e.g., USD, AAPL, BTC)
4763
+ */
4764
+ currency: string;
4765
+ /**
4766
+ * Quote currency (pricing currency, e.g., USD, CNY)
4767
+ */
4768
+ quoteCurrency: string;
4769
+ /**
4770
+ * Price amount (corresponds to Beancount Amount.number). Supports up to 15 decimal places.
4771
+ */
4772
+ amount: number;
4773
+ /**
4774
+ * Price date (ISO 8601 format). Represents the date this price was valid.
4775
+ */
4776
+ date: string;
4777
+ /**
4778
+ * Metadata (corresponds to Beancount meta field). Contains source, confidence, note, etc.
4779
+ */
4780
+ meta: {
4781
+ [key: string]: unknown;
4782
+ };
4783
+ /**
4784
+ * Creation timestamp
4785
+ */
4786
+ createdAt: string;
4787
+ /**
4788
+ * Last update timestamp
4789
+ */
4790
+ updatedAt: string;
4791
+ };
4792
+
4793
+ export type PriceListResponseDto = {
4794
+ /**
4795
+ * List of prices
4796
+ */
4797
+ items: Array<PriceResponseDto>;
4798
+ /**
4799
+ * Total number of prices
4800
+ */
4801
+ total: number;
4802
+ };
4803
+
4804
+ export type UpdateBeanPriceDto = {
4805
+ /**
4806
+ * Currency being priced
4807
+ */
4808
+ currency?: string;
4809
+ /**
4810
+ * Quote currency (pricing currency)
4811
+ */
4812
+ quoteCurrency?: string;
4813
+ /**
4814
+ * Price amount (MUST be >= 0 per Beancount spec)
4815
+ */
4816
+ amount?: number;
4817
+ /**
4818
+ * Price date (ISO 8601 format)
4819
+ */
4820
+ date?: string;
4821
+ /**
4822
+ * Metadata
4823
+ */
4824
+ metadata?: {
4825
+ [key: string]: unknown;
4826
+ };
4827
+ };
4828
+
4379
4829
  export type CurrencyBalanceDto = {
4380
4830
  /**
4381
4831
  * ISO 4217 currency code
@@ -5794,9 +6244,9 @@ export type ProviderSyncControllerSyncData = {
5794
6244
  | 'beancount-direct'
5795
6245
  | 'parsed-bill';
5796
6246
  /**
5797
- * Region code
6247
+ * Region code for tenant context
5798
6248
  */
5799
- region: unknown;
6249
+ region: 'cn' | 'us' | 'de' | 'gb';
5800
6250
  requestBody: ProviderSyncDto;
5801
6251
  };
5802
6252
 
@@ -5835,6 +6285,29 @@ export type TelemetryControllerReportTelemetryData = {
5835
6285
 
5836
6286
  export type TelemetryControllerReportTelemetryResponse = unknown;
5837
6287
 
6288
+ export type TelemetryControllerReportCoverageMissData = {
6289
+ /**
6290
+ * Region code for tenant context
6291
+ */
6292
+ region: 'cn' | 'us' | 'de' | 'gb';
6293
+ requestBody: UncoveredFormatMissDto;
6294
+ };
6295
+
6296
+ export type TelemetryControllerReportCoverageMissResponse = unknown;
6297
+
6298
+ export type TelemetryControllerGetCoverageMetricsData = {
6299
+ /**
6300
+ * Region code for tenant context
6301
+ */
6302
+ region: 'cn' | 'us' | 'de' | 'gb';
6303
+ /**
6304
+ * Top-N uncovered formats (default 10)
6305
+ */
6306
+ topN?: unknown;
6307
+ };
6308
+
6309
+ export type TelemetryControllerGetCoverageMetricsResponse = unknown;
6310
+
5838
6311
  export type NlpControllerProcessNaturalLanguageData = {
5839
6312
  /**
5840
6313
  * Region code for tenant context
@@ -5888,6 +6361,10 @@ export type DashboardControllerGetNetWorthData = {
5888
6361
  export type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
5889
6362
 
5890
6363
  export type DashboardControllerGetAccountsData = {
6364
+ /**
6365
+ * Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
6366
+ */
6367
+ accountId?: string;
5891
6368
  /**
5892
6369
  * Date for balance calculation (ISO 8601 format)
5893
6370
  */
@@ -5895,7 +6372,11 @@ export type DashboardControllerGetAccountsData = {
5895
6372
  /**
5896
6373
  * Grouping strategy
5897
6374
  */
5898
- groupBy?: 'platform' | 'assetClass';
6375
+ groupBy?:
6376
+ | 'platform'
6377
+ | 'assetClass'
6378
+ | 'holdingAssetClass'
6379
+ | 'holdingAssetClassByAccount';
5899
6380
  /**
5900
6381
  * Region code for tenant context
5901
6382
  */
@@ -5904,7 +6385,8 @@ export type DashboardControllerGetAccountsData = {
5904
6385
 
5905
6386
  export type DashboardControllerGetAccountsResponse =
5906
6387
  | AccountsResponseDto
5907
- | AssetClassAccountsResponseDto;
6388
+ | AssetClassAccountsResponseDto
6389
+ | HoldingAssetClassCrossAccountResponseDto;
5908
6390
 
5909
6391
  export type DashboardControllerGetCashFlowData = {
5910
6392
  /**
@@ -5919,6 +6401,124 @@ export type DashboardControllerGetCashFlowData = {
5919
6401
 
5920
6402
  export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
5921
6403
 
6404
+ export type HoldingPnlControllerGetHoldingPnlData = {
6405
+ /**
6406
+ * Scope to a single account
6407
+ */
6408
+ accountId?: string;
6409
+ /**
6410
+ * As-of date (ISO 8601), defaults to today
6411
+ */
6412
+ asOf?: string;
6413
+ /**
6414
+ * Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
6415
+ */
6416
+ method?: 'FIFO' | 'average';
6417
+ /**
6418
+ * Region code for tenant context
6419
+ */
6420
+ region: 'cn' | 'us' | 'de' | 'gb';
6421
+ };
6422
+
6423
+ export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6424
+
6425
+ export type PriceControllerCreateData = {
6426
+ /**
6427
+ * Region code for tenant context
6428
+ */
6429
+ region: 'cn' | 'us' | 'de' | 'gb';
6430
+ requestBody: CreateBeanPriceDto;
6431
+ };
6432
+
6433
+ export type PriceControllerCreateResponse = PriceResponseDto;
6434
+
6435
+ export type PriceControllerFindAllData = {
6436
+ /**
6437
+ * Filter by currency (e.g., BTC, AAPL, USD)
6438
+ */
6439
+ currency?: string;
6440
+ /**
6441
+ * Filter prices from this date (ISO 8601 format)
6442
+ */
6443
+ dateFrom?: string;
6444
+ /**
6445
+ * Filter prices to this date (ISO 8601 format)
6446
+ */
6447
+ dateTo?: string;
6448
+ /**
6449
+ * Number of items per page (default: 20, max: 100)
6450
+ */
6451
+ limit?: number;
6452
+ /**
6453
+ * Page number for pagination (default: 1)
6454
+ */
6455
+ page?: number;
6456
+ /**
6457
+ * Filter by quote currency (pricing currency, e.g., USD, CNY)
6458
+ */
6459
+ quoteCurrency?: string;
6460
+ /**
6461
+ * Region code for tenant context
6462
+ */
6463
+ region: 'cn' | 'us' | 'de' | 'gb';
6464
+ /**
6465
+ * Search term for currency or quoteCurrency (case-insensitive partial match)
6466
+ */
6467
+ search?: string;
6468
+ };
6469
+
6470
+ export type PriceControllerFindAllResponse = PriceListResponseDto;
6471
+
6472
+ export type PriceControllerFindOneData = {
6473
+ /**
6474
+ * Price ID
6475
+ */
6476
+ id: string;
6477
+ /**
6478
+ * Region code for tenant context
6479
+ */
6480
+ region: 'cn' | 'us' | 'de' | 'gb';
6481
+ };
6482
+
6483
+ export type PriceControllerFindOneResponse = PriceResponseDto;
6484
+
6485
+ export type PriceControllerUpdateData = {
6486
+ /**
6487
+ * Price ID
6488
+ */
6489
+ id: string;
6490
+ /**
6491
+ * Region code for tenant context
6492
+ */
6493
+ region: 'cn' | 'us' | 'de' | 'gb';
6494
+ requestBody: UpdateBeanPriceDto;
6495
+ };
6496
+
6497
+ export type PriceControllerUpdateResponse = PriceResponseDto;
6498
+
6499
+ export type PriceControllerDeleteData = {
6500
+ /**
6501
+ * Price ID
6502
+ */
6503
+ id: string;
6504
+ /**
6505
+ * Region code for tenant context
6506
+ */
6507
+ region: 'cn' | 'us' | 'de' | 'gb';
6508
+ };
6509
+
6510
+ export type PriceControllerDeleteResponse = void;
6511
+
6512
+ export type PriceControllerBulkCreateData = {
6513
+ /**
6514
+ * Region code for tenant context
6515
+ */
6516
+ region: 'cn' | 'us' | 'de' | 'gb';
6517
+ requestBody: Array<string>;
6518
+ };
6519
+
6520
+ export type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
6521
+
5922
6522
  export type ReportingControllerGetPortfolioTrendsData = {
5923
6523
  /**
5924
6524
  * Data granularity
@@ -7658,6 +8258,32 @@ export type $OpenApiTs = {
7658
8258
  };
7659
8259
  };
7660
8260
  };
8261
+ '/api/v1/{region}/bean/import/parser-coverage-miss': {
8262
+ post: {
8263
+ req: TelemetryControllerReportCoverageMissData;
8264
+ res: {
8265
+ /**
8266
+ * Coverage miss report received
8267
+ */
8268
+ 200: unknown;
8269
+ /**
8270
+ * Unauthorized
8271
+ */
8272
+ 401: unknown;
8273
+ };
8274
+ };
8275
+ };
8276
+ '/api/v1/{region}/bean/import/parser-coverage-metrics': {
8277
+ get: {
8278
+ req: TelemetryControllerGetCoverageMetricsData;
8279
+ res: {
8280
+ /**
8281
+ * Coverage metrics
8282
+ */
8283
+ 200: unknown;
8284
+ };
8285
+ };
8286
+ };
7661
8287
  '/api/v1/{region}/bean/nlp/process': {
7662
8288
  post: {
7663
8289
  req: NlpControllerProcessNaturalLanguageData;
@@ -7727,7 +8353,10 @@ export type $OpenApiTs = {
7727
8353
  /**
7728
8354
  * Accounts retrieved successfully. Response type depends on groupBy parameter.
7729
8355
  */
7730
- 200: AccountsResponseDto | AssetClassAccountsResponseDto;
8356
+ 200:
8357
+ | AccountsResponseDto
8358
+ | AssetClassAccountsResponseDto
8359
+ | HoldingAssetClassCrossAccountResponseDto;
7731
8360
  /**
7732
8361
  * User not authenticated
7733
8362
  */
@@ -7754,6 +8383,109 @@ export type $OpenApiTs = {
7754
8383
  };
7755
8384
  };
7756
8385
  };
8386
+ '/api/v1/{region}/investment/holdings/pnl': {
8387
+ get: {
8388
+ req: HoldingPnlControllerGetHoldingPnlData;
8389
+ res: {
8390
+ /**
8391
+ * Holding P&L retrieved successfully
8392
+ */
8393
+ 200: HoldingPnlResponseDto;
8394
+ /**
8395
+ * Invalid asOf format/value/future date, invalid accountId format, or unsupported method
8396
+ */
8397
+ 400: unknown;
8398
+ /**
8399
+ * User not authenticated
8400
+ */
8401
+ 401: unknown;
8402
+ };
8403
+ };
8404
+ };
8405
+ '/api/v1/{region}/bean/prices': {
8406
+ post: {
8407
+ req: PriceControllerCreateData;
8408
+ res: {
8409
+ /**
8410
+ * Price created successfully
8411
+ */
8412
+ 201: PriceResponseDto;
8413
+ /**
8414
+ * Currency or quoteCurrency commodity not found
8415
+ */
8416
+ 404: unknown;
8417
+ /**
8418
+ * Price already exists for this currency pair and date
8419
+ */
8420
+ 409: unknown;
8421
+ };
8422
+ };
8423
+ get: {
8424
+ req: PriceControllerFindAllData;
8425
+ res: {
8426
+ /**
8427
+ * Prices retrieved successfully
8428
+ */
8429
+ 200: PriceListResponseDto;
8430
+ };
8431
+ };
8432
+ };
8433
+ '/api/v1/{region}/bean/prices/{id}': {
8434
+ get: {
8435
+ req: PriceControllerFindOneData;
8436
+ res: {
8437
+ /**
8438
+ * Price retrieved successfully
8439
+ */
8440
+ 200: PriceResponseDto;
8441
+ /**
8442
+ * Price not found
8443
+ */
8444
+ 404: unknown;
8445
+ };
8446
+ };
8447
+ put: {
8448
+ req: PriceControllerUpdateData;
8449
+ res: {
8450
+ /**
8451
+ * Price updated successfully
8452
+ */
8453
+ 200: PriceResponseDto;
8454
+ /**
8455
+ * Price not found
8456
+ */
8457
+ 404: unknown;
8458
+ /**
8459
+ * Updated price conflicts with existing price
8460
+ */
8461
+ 409: unknown;
8462
+ };
8463
+ };
8464
+ delete: {
8465
+ req: PriceControllerDeleteData;
8466
+ res: {
8467
+ /**
8468
+ * Price deleted successfully
8469
+ */
8470
+ 204: void;
8471
+ /**
8472
+ * Price not found
8473
+ */
8474
+ 404: unknown;
8475
+ };
8476
+ };
8477
+ };
8478
+ '/api/v1/{region}/bean/prices/bulk': {
8479
+ post: {
8480
+ req: PriceControllerBulkCreateData;
8481
+ res: {
8482
+ /**
8483
+ * Prices created successfully
8484
+ */
8485
+ 201: Array<PriceResponseDto>;
8486
+ };
8487
+ };
8488
+ };
7757
8489
  '/api/v1/{region}/reporting/portfolio/trends': {
7758
8490
  get: {
7759
8491
  req: ReportingControllerGetPortfolioTrendsData;