orb-billing 5.6.0 → 5.8.0

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/core.js +3 -3
  3. package/core.js.map +1 -1
  4. package/core.mjs +3 -3
  5. package/core.mjs.map +1 -1
  6. package/index.d.mts +2 -4
  7. package/index.d.ts +2 -4
  8. package/index.d.ts.map +1 -1
  9. package/index.js.map +1 -1
  10. package/index.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/resources/beta/beta.d.ts +288 -10
  13. package/resources/beta/beta.d.ts.map +1 -1
  14. package/resources/beta/beta.js.map +1 -1
  15. package/resources/beta/beta.mjs.map +1 -1
  16. package/resources/beta/external-plan-id.d.ts +288 -10
  17. package/resources/beta/external-plan-id.d.ts.map +1 -1
  18. package/resources/customers/customers.d.ts +27 -6
  19. package/resources/customers/customers.d.ts.map +1 -1
  20. package/resources/customers/customers.js.map +1 -1
  21. package/resources/customers/customers.mjs.map +1 -1
  22. package/resources/index.d.ts +1 -1
  23. package/resources/index.d.ts.map +1 -1
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs.map +1 -1
  26. package/resources/invoices.d.ts +3 -0
  27. package/resources/invoices.d.ts.map +1 -1
  28. package/resources/invoices.js.map +1 -1
  29. package/resources/invoices.mjs.map +1 -1
  30. package/resources/plans/plans.d.ts +144 -5
  31. package/resources/plans/plans.d.ts.map +1 -1
  32. package/resources/plans/plans.js.map +1 -1
  33. package/resources/plans/plans.mjs.map +1 -1
  34. package/resources/prices/prices.d.ts +926 -123
  35. package/resources/prices/prices.d.ts.map +1 -1
  36. package/resources/prices/prices.js.map +1 -1
  37. package/resources/prices/prices.mjs.map +1 -1
  38. package/resources/shared.d.ts +2474 -338
  39. package/resources/shared.d.ts.map +1 -1
  40. package/resources/shared.js.map +1 -1
  41. package/resources/shared.mjs.map +1 -1
  42. package/resources/subscriptions.d.ts +1369 -174
  43. package/resources/subscriptions.d.ts.map +1 -1
  44. package/resources/subscriptions.js.map +1 -1
  45. package/resources/subscriptions.mjs.map +1 -1
  46. package/src/core.ts +3 -3
  47. package/src/index.ts +0 -4
  48. package/src/resources/beta/beta.ts +348 -20
  49. package/src/resources/beta/external-plan-id.ts +348 -20
  50. package/src/resources/customers/customers.ts +48 -6
  51. package/src/resources/index.ts +0 -1
  52. package/src/resources/invoices.ts +3 -0
  53. package/src/resources/plans/plans.ts +174 -10
  54. package/src/resources/prices/prices.ts +1060 -113
  55. package/src/resources/shared.ts +2792 -288
  56. package/src/resources/subscriptions.ts +1609 -202
  57. package/src/version.ts +1 -1
  58. package/version.d.ts +1 -1
  59. package/version.js +1 -1
  60. package/version.mjs +1 -1
@@ -110,12 +110,18 @@ export interface BillingCycleConfiguration {
110
110
  duration_unit: 'day' | 'month';
111
111
  }
112
112
  export type BillingCycleRelativeDate = 'start_of_term' | 'end_of_term';
113
+ /**
114
+ * Configuration for bulk pricing
115
+ */
113
116
  export interface BulkConfig {
114
117
  /**
115
118
  * Bulk tiers for rating based on total usage volume
116
119
  */
117
120
  tiers: Array<BulkTier>;
118
121
  }
122
+ /**
123
+ * Configuration for a single bulk pricing tier
124
+ */
119
125
  export interface BulkTier {
120
126
  /**
121
127
  * Amount per unit
@@ -1024,6 +1030,9 @@ export interface ItemSlim {
1024
1030
  id: string;
1025
1031
  name: string;
1026
1032
  }
1033
+ /**
1034
+ * Configuration for matrix pricing
1035
+ */
1027
1036
  export interface MatrixConfig {
1028
1037
  /**
1029
1038
  * Default per unit rate for any usage not bucketed into a specified matrix_value
@@ -1034,7 +1043,7 @@ export interface MatrixConfig {
1034
1043
  */
1035
1044
  dimensions: Array<string | null>;
1036
1045
  /**
1037
- * Matrix values for specified matrix grouping keys
1046
+ * Matrix values configuration
1038
1047
  */
1039
1048
  matrix_values: Array<MatrixValue>;
1040
1049
  }
@@ -1049,11 +1058,12 @@ export interface MatrixSubLineItem {
1049
1058
  quantity: number;
1050
1059
  type: 'matrix';
1051
1060
  }
1061
+ /**
1062
+ * Configuration for a single matrix value
1063
+ */
1052
1064
  export interface MatrixValue {
1053
1065
  /**
1054
- * One or two matrix keys to filter usage to this Matrix value by. For example,
1055
- * ["region", "tier"] could be used to filter cloud usage by a cloud region and an
1056
- * instance tier.
1066
+ * One or two matrix keys to filter usage to this Matrix value by
1057
1067
  */
1058
1068
  dimension_values: Array<string | null>;
1059
1069
  /**
@@ -1061,11 +1071,14 @@ export interface MatrixValue {
1061
1071
  */
1062
1072
  unit_amount: string;
1063
1073
  }
1074
+ /**
1075
+ * Configuration for matrix pricing with usage allocation
1076
+ */
1064
1077
  export interface MatrixWithAllocationConfig {
1065
1078
  /**
1066
- * Allocation to be used to calculate the price
1079
+ * Usage allocation
1067
1080
  */
1068
- allocation: number;
1081
+ allocation: string;
1069
1082
  /**
1070
1083
  * Default per unit rate for any usage not bucketed into a specified matrix_value
1071
1084
  */
@@ -1075,9 +1088,26 @@ export interface MatrixWithAllocationConfig {
1075
1088
  */
1076
1089
  dimensions: Array<string | null>;
1077
1090
  /**
1078
- * Matrix values for specified matrix grouping keys
1091
+ * Matrix values configuration
1079
1092
  */
1080
- matrix_values: Array<MatrixValue>;
1093
+ matrix_values: Array<MatrixWithAllocationConfig.MatrixValue>;
1094
+ }
1095
+ export declare namespace MatrixWithAllocationConfig {
1096
+ /**
1097
+ * Configuration for a single matrix value
1098
+ */
1099
+ interface MatrixValue {
1100
+ /**
1101
+ * One or two matrix keys to filter usage to this Matrix value by. For example,
1102
+ * ["region", "tier"] could be used to filter cloud usage by a cloud region and an
1103
+ * instance tier.
1104
+ */
1105
+ dimension_values: Array<string | null>;
1106
+ /**
1107
+ * Unit price for the specified dimension_values
1108
+ */
1109
+ unit_amount: string;
1110
+ }
1081
1111
  }
1082
1112
  export interface Maximum {
1083
1113
  /**
@@ -1417,6 +1447,9 @@ export interface NewDimensionalPriceConfiguration {
1417
1447
  external_dimensional_price_group_id?: string | null;
1418
1448
  }
1419
1449
  export interface NewFloatingBulkPrice {
1450
+ /**
1451
+ * Configuration for bulk pricing
1452
+ */
1420
1453
  bulk_config: BulkConfig;
1421
1454
  /**
1422
1455
  * The cadence to bill for this price on.
@@ -1430,6 +1463,9 @@ export interface NewFloatingBulkPrice {
1430
1463
  * The id of the item the price will be associated with.
1431
1464
  */
1432
1465
  item_id: string;
1466
+ /**
1467
+ * The pricing model type
1468
+ */
1433
1469
  model_type: 'bulk';
1434
1470
  /**
1435
1471
  * The name of the price.
@@ -1490,9 +1526,10 @@ export interface NewFloatingBulkPrice {
1490
1526
  } | null;
1491
1527
  }
1492
1528
  export interface NewFloatingBulkWithProrationPrice {
1493
- bulk_with_proration_config: {
1494
- [key: string]: unknown;
1495
- };
1529
+ /**
1530
+ * Configuration for bulk_with_proration pricing
1531
+ */
1532
+ bulk_with_proration_config: NewFloatingBulkWithProrationPrice.BulkWithProrationConfig;
1496
1533
  /**
1497
1534
  * The cadence to bill for this price on.
1498
1535
  */
@@ -1505,6 +1542,9 @@ export interface NewFloatingBulkWithProrationPrice {
1505
1542
  * The id of the item the price will be associated with.
1506
1543
  */
1507
1544
  item_id: string;
1545
+ /**
1546
+ * The pricing model type
1547
+ */
1508
1548
  model_type: 'bulk_with_proration';
1509
1549
  /**
1510
1550
  * The name of the price.
@@ -1564,14 +1604,41 @@ export interface NewFloatingBulkWithProrationPrice {
1564
1604
  [key: string]: string | null;
1565
1605
  } | null;
1566
1606
  }
1607
+ export declare namespace NewFloatingBulkWithProrationPrice {
1608
+ /**
1609
+ * Configuration for bulk_with_proration pricing
1610
+ */
1611
+ interface BulkWithProrationConfig {
1612
+ /**
1613
+ * Bulk tiers for rating based on total usage volume
1614
+ */
1615
+ tiers: Array<BulkWithProrationConfig.Tier>;
1616
+ }
1617
+ namespace BulkWithProrationConfig {
1618
+ /**
1619
+ * Configuration for a single bulk pricing tier with proration
1620
+ */
1621
+ interface Tier {
1622
+ /**
1623
+ * Cost per unit
1624
+ */
1625
+ unit_amount: string;
1626
+ /**
1627
+ * The lower bound for this tier
1628
+ */
1629
+ tier_lower_bound?: string | null;
1630
+ }
1631
+ }
1632
+ }
1567
1633
  export interface NewFloatingCumulativeGroupedBulkPrice {
1568
1634
  /**
1569
1635
  * The cadence to bill for this price on.
1570
1636
  */
1571
1637
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
1572
- cumulative_grouped_bulk_config: {
1573
- [key: string]: unknown;
1574
- };
1638
+ /**
1639
+ * Configuration for cumulative_grouped_bulk pricing
1640
+ */
1641
+ cumulative_grouped_bulk_config: NewFloatingCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
1575
1642
  /**
1576
1643
  * An ISO 4217 currency string for which this price is billed in.
1577
1644
  */
@@ -1580,6 +1647,9 @@ export interface NewFloatingCumulativeGroupedBulkPrice {
1580
1647
  * The id of the item the price will be associated with.
1581
1648
  */
1582
1649
  item_id: string;
1650
+ /**
1651
+ * The pricing model type
1652
+ */
1583
1653
  model_type: 'cumulative_grouped_bulk';
1584
1654
  /**
1585
1655
  * The name of the price.
@@ -1639,6 +1709,40 @@ export interface NewFloatingCumulativeGroupedBulkPrice {
1639
1709
  [key: string]: string | null;
1640
1710
  } | null;
1641
1711
  }
1712
+ export declare namespace NewFloatingCumulativeGroupedBulkPrice {
1713
+ /**
1714
+ * Configuration for cumulative_grouped_bulk pricing
1715
+ */
1716
+ interface CumulativeGroupedBulkConfig {
1717
+ /**
1718
+ * Each tier lower bound must have the same group of values.
1719
+ */
1720
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
1721
+ /**
1722
+ * Grouping key name
1723
+ */
1724
+ group: string;
1725
+ }
1726
+ namespace CumulativeGroupedBulkConfig {
1727
+ /**
1728
+ * Configuration for a dimension value entry
1729
+ */
1730
+ interface DimensionValue {
1731
+ /**
1732
+ * Grouping key value
1733
+ */
1734
+ grouping_key: string;
1735
+ /**
1736
+ * Tier lower bound
1737
+ */
1738
+ tier_lower_bound: string;
1739
+ /**
1740
+ * Unit amount for this combination
1741
+ */
1742
+ unit_amount: string;
1743
+ }
1744
+ }
1745
+ }
1642
1746
  export interface NewFloatingGroupedAllocationPrice {
1643
1747
  /**
1644
1748
  * The cadence to bill for this price on.
@@ -1648,13 +1752,17 @@ export interface NewFloatingGroupedAllocationPrice {
1648
1752
  * An ISO 4217 currency string for which this price is billed in.
1649
1753
  */
1650
1754
  currency: string;
1651
- grouped_allocation_config: {
1652
- [key: string]: unknown;
1653
- };
1755
+ /**
1756
+ * Configuration for grouped_allocation pricing
1757
+ */
1758
+ grouped_allocation_config: NewFloatingGroupedAllocationPrice.GroupedAllocationConfig;
1654
1759
  /**
1655
1760
  * The id of the item the price will be associated with.
1656
1761
  */
1657
1762
  item_id: string;
1763
+ /**
1764
+ * The pricing model type
1765
+ */
1658
1766
  model_type: 'grouped_allocation';
1659
1767
  /**
1660
1768
  * The name of the price.
@@ -1714,6 +1822,25 @@ export interface NewFloatingGroupedAllocationPrice {
1714
1822
  [key: string]: string | null;
1715
1823
  } | null;
1716
1824
  }
1825
+ export declare namespace NewFloatingGroupedAllocationPrice {
1826
+ /**
1827
+ * Configuration for grouped_allocation pricing
1828
+ */
1829
+ interface GroupedAllocationConfig {
1830
+ /**
1831
+ * Usage allocation per group
1832
+ */
1833
+ allocation: string;
1834
+ /**
1835
+ * How to determine the groups that should each be allocated some quantity
1836
+ */
1837
+ grouping_key: string;
1838
+ /**
1839
+ * Unit rate for post-allocation
1840
+ */
1841
+ overage_unit_rate: string;
1842
+ }
1843
+ }
1717
1844
  export interface NewFloatingGroupedTieredPackagePrice {
1718
1845
  /**
1719
1846
  * The cadence to bill for this price on.
@@ -1723,13 +1850,17 @@ export interface NewFloatingGroupedTieredPackagePrice {
1723
1850
  * An ISO 4217 currency string for which this price is billed in.
1724
1851
  */
1725
1852
  currency: string;
1726
- grouped_tiered_package_config: {
1727
- [key: string]: unknown;
1728
- };
1853
+ /**
1854
+ * Configuration for grouped_tiered_package pricing
1855
+ */
1856
+ grouped_tiered_package_config: NewFloatingGroupedTieredPackagePrice.GroupedTieredPackageConfig;
1729
1857
  /**
1730
1858
  * The id of the item the price will be associated with.
1731
1859
  */
1732
1860
  item_id: string;
1861
+ /**
1862
+ * The pricing model type
1863
+ */
1733
1864
  model_type: 'grouped_tiered_package';
1734
1865
  /**
1735
1866
  * The name of the price.
@@ -1789,6 +1920,41 @@ export interface NewFloatingGroupedTieredPackagePrice {
1789
1920
  [key: string]: string | null;
1790
1921
  } | null;
1791
1922
  }
1923
+ export declare namespace NewFloatingGroupedTieredPackagePrice {
1924
+ /**
1925
+ * Configuration for grouped_tiered_package pricing
1926
+ */
1927
+ interface GroupedTieredPackageConfig {
1928
+ /**
1929
+ * The event property used to group before tiering
1930
+ */
1931
+ grouping_key: string;
1932
+ /**
1933
+ * Package size
1934
+ */
1935
+ package_size: string;
1936
+ /**
1937
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
1938
+ * are defined using exclusive lower bounds.
1939
+ */
1940
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
1941
+ }
1942
+ namespace GroupedTieredPackageConfig {
1943
+ /**
1944
+ * Configuration for a single tier
1945
+ */
1946
+ interface Tier {
1947
+ /**
1948
+ * Price per package
1949
+ */
1950
+ per_unit: string;
1951
+ /**
1952
+ * Tier lower bound
1953
+ */
1954
+ tier_lower_bound: string;
1955
+ }
1956
+ }
1957
+ }
1792
1958
  export interface NewFloatingGroupedTieredPrice {
1793
1959
  /**
1794
1960
  * The cadence to bill for this price on.
@@ -1798,13 +1964,17 @@ export interface NewFloatingGroupedTieredPrice {
1798
1964
  * An ISO 4217 currency string for which this price is billed in.
1799
1965
  */
1800
1966
  currency: string;
1801
- grouped_tiered_config: {
1802
- [key: string]: unknown;
1803
- };
1967
+ /**
1968
+ * Configuration for grouped_tiered pricing
1969
+ */
1970
+ grouped_tiered_config: NewFloatingGroupedTieredPrice.GroupedTieredConfig;
1804
1971
  /**
1805
1972
  * The id of the item the price will be associated with.
1806
1973
  */
1807
1974
  item_id: string;
1975
+ /**
1976
+ * The pricing model type
1977
+ */
1808
1978
  model_type: 'grouped_tiered';
1809
1979
  /**
1810
1980
  * The name of the price.
@@ -1864,6 +2034,37 @@ export interface NewFloatingGroupedTieredPrice {
1864
2034
  [key: string]: string | null;
1865
2035
  } | null;
1866
2036
  }
2037
+ export declare namespace NewFloatingGroupedTieredPrice {
2038
+ /**
2039
+ * Configuration for grouped_tiered pricing
2040
+ */
2041
+ interface GroupedTieredConfig {
2042
+ /**
2043
+ * The billable metric property used to group before tiering
2044
+ */
2045
+ grouping_key: string;
2046
+ /**
2047
+ * Apply tiered pricing to each segment generated after grouping with the provided
2048
+ * key
2049
+ */
2050
+ tiers: Array<GroupedTieredConfig.Tier>;
2051
+ }
2052
+ namespace GroupedTieredConfig {
2053
+ /**
2054
+ * Configuration for a single tier
2055
+ */
2056
+ interface Tier {
2057
+ /**
2058
+ * Tier lower bound
2059
+ */
2060
+ tier_lower_bound: string;
2061
+ /**
2062
+ * Per unit amount
2063
+ */
2064
+ unit_amount: string;
2065
+ }
2066
+ }
2067
+ }
1867
2068
  export interface NewFloatingGroupedWithMeteredMinimumPrice {
1868
2069
  /**
1869
2070
  * The cadence to bill for this price on.
@@ -1873,13 +2074,17 @@ export interface NewFloatingGroupedWithMeteredMinimumPrice {
1873
2074
  * An ISO 4217 currency string for which this price is billed in.
1874
2075
  */
1875
2076
  currency: string;
1876
- grouped_with_metered_minimum_config: {
1877
- [key: string]: unknown;
1878
- };
2077
+ /**
2078
+ * Configuration for grouped_with_metered_minimum pricing
2079
+ */
2080
+ grouped_with_metered_minimum_config: NewFloatingGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
1879
2081
  /**
1880
2082
  * The id of the item the price will be associated with.
1881
2083
  */
1882
2084
  item_id: string;
2085
+ /**
2086
+ * The pricing model type
2087
+ */
1883
2088
  model_type: 'grouped_with_metered_minimum';
1884
2089
  /**
1885
2090
  * The name of the price.
@@ -1939,6 +2144,67 @@ export interface NewFloatingGroupedWithMeteredMinimumPrice {
1939
2144
  [key: string]: string | null;
1940
2145
  } | null;
1941
2146
  }
2147
+ export declare namespace NewFloatingGroupedWithMeteredMinimumPrice {
2148
+ /**
2149
+ * Configuration for grouped_with_metered_minimum pricing
2150
+ */
2151
+ interface GroupedWithMeteredMinimumConfig {
2152
+ /**
2153
+ * Used to partition the usage into groups. The minimum amount is applied to each
2154
+ * group.
2155
+ */
2156
+ grouping_key: string;
2157
+ /**
2158
+ * The minimum amount to charge per group per unit
2159
+ */
2160
+ minimum_unit_amount: string;
2161
+ /**
2162
+ * Used to determine the unit rate
2163
+ */
2164
+ pricing_key: string;
2165
+ /**
2166
+ * Scale the unit rates by the scaling factor.
2167
+ */
2168
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
2169
+ /**
2170
+ * Used to determine the unit rate scaling factor
2171
+ */
2172
+ scaling_key: string;
2173
+ /**
2174
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
2175
+ * unmatched usage.
2176
+ */
2177
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
2178
+ }
2179
+ namespace GroupedWithMeteredMinimumConfig {
2180
+ /**
2181
+ * Configuration for a scaling factor
2182
+ */
2183
+ interface ScalingFactor {
2184
+ /**
2185
+ * Scaling factor
2186
+ */
2187
+ scaling_factor: string;
2188
+ /**
2189
+ * Scaling value
2190
+ */
2191
+ scaling_value: string;
2192
+ }
2193
+ /**
2194
+ * Configuration for a unit amount
2195
+ */
2196
+ interface UnitAmount {
2197
+ /**
2198
+ * Pricing value
2199
+ */
2200
+ pricing_value: string;
2201
+ /**
2202
+ * Per unit amount
2203
+ */
2204
+ unit_amount: string;
2205
+ }
2206
+ }
2207
+ }
1942
2208
  export interface NewFloatingGroupedWithProratedMinimumPrice {
1943
2209
  /**
1944
2210
  * The cadence to bill for this price on.
@@ -1948,13 +2214,17 @@ export interface NewFloatingGroupedWithProratedMinimumPrice {
1948
2214
  * An ISO 4217 currency string for which this price is billed in.
1949
2215
  */
1950
2216
  currency: string;
1951
- grouped_with_prorated_minimum_config: {
1952
- [key: string]: unknown;
1953
- };
2217
+ /**
2218
+ * Configuration for grouped_with_prorated_minimum pricing
2219
+ */
2220
+ grouped_with_prorated_minimum_config: NewFloatingGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
1954
2221
  /**
1955
2222
  * The id of the item the price will be associated with.
1956
2223
  */
1957
2224
  item_id: string;
2225
+ /**
2226
+ * The pricing model type
2227
+ */
1958
2228
  model_type: 'grouped_with_prorated_minimum';
1959
2229
  /**
1960
2230
  * The name of the price.
@@ -2014,6 +2284,25 @@ export interface NewFloatingGroupedWithProratedMinimumPrice {
2014
2284
  [key: string]: string | null;
2015
2285
  } | null;
2016
2286
  }
2287
+ export declare namespace NewFloatingGroupedWithProratedMinimumPrice {
2288
+ /**
2289
+ * Configuration for grouped_with_prorated_minimum pricing
2290
+ */
2291
+ interface GroupedWithProratedMinimumConfig {
2292
+ /**
2293
+ * How to determine the groups that should each have a minimum
2294
+ */
2295
+ grouping_key: string;
2296
+ /**
2297
+ * The minimum amount to charge per group
2298
+ */
2299
+ minimum: string;
2300
+ /**
2301
+ * The amount to charge per unit
2302
+ */
2303
+ unit_rate: string;
2304
+ }
2305
+ }
2017
2306
  export interface NewFloatingMatrixPrice {
2018
2307
  /**
2019
2308
  * The cadence to bill for this price on.
@@ -2027,7 +2316,13 @@ export interface NewFloatingMatrixPrice {
2027
2316
  * The id of the item the price will be associated with.
2028
2317
  */
2029
2318
  item_id: string;
2319
+ /**
2320
+ * Configuration for matrix pricing
2321
+ */
2030
2322
  matrix_config: MatrixConfig;
2323
+ /**
2324
+ * The pricing model type
2325
+ */
2031
2326
  model_type: 'matrix';
2032
2327
  /**
2033
2328
  * The name of the price.
@@ -2100,7 +2395,13 @@ export interface NewFloatingMatrixWithAllocationPrice {
2100
2395
  * The id of the item the price will be associated with.
2101
2396
  */
2102
2397
  item_id: string;
2398
+ /**
2399
+ * Configuration for matrix_with_allocation pricing
2400
+ */
2103
2401
  matrix_with_allocation_config: MatrixWithAllocationConfig;
2402
+ /**
2403
+ * The pricing model type
2404
+ */
2104
2405
  model_type: 'matrix_with_allocation';
2105
2406
  /**
2106
2407
  * The name of the price.
@@ -2173,9 +2474,13 @@ export interface NewFloatingMatrixWithDisplayNamePrice {
2173
2474
  * The id of the item the price will be associated with.
2174
2475
  */
2175
2476
  item_id: string;
2176
- matrix_with_display_name_config: {
2177
- [key: string]: unknown;
2178
- };
2477
+ /**
2478
+ * Configuration for matrix_with_display_name pricing
2479
+ */
2480
+ matrix_with_display_name_config: NewFloatingMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
2481
+ /**
2482
+ * The pricing model type
2483
+ */
2179
2484
  model_type: 'matrix_with_display_name';
2180
2485
  /**
2181
2486
  * The name of the price.
@@ -2235,6 +2540,40 @@ export interface NewFloatingMatrixWithDisplayNamePrice {
2235
2540
  [key: string]: string | null;
2236
2541
  } | null;
2237
2542
  }
2543
+ export declare namespace NewFloatingMatrixWithDisplayNamePrice {
2544
+ /**
2545
+ * Configuration for matrix_with_display_name pricing
2546
+ */
2547
+ interface MatrixWithDisplayNameConfig {
2548
+ /**
2549
+ * Used to determine the unit rate
2550
+ */
2551
+ dimension: string;
2552
+ /**
2553
+ * Apply per unit pricing to each dimension value
2554
+ */
2555
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
2556
+ }
2557
+ namespace MatrixWithDisplayNameConfig {
2558
+ /**
2559
+ * Configuration for a unit amount item
2560
+ */
2561
+ interface UnitAmount {
2562
+ /**
2563
+ * The dimension value
2564
+ */
2565
+ dimension_value: string;
2566
+ /**
2567
+ * Display name for this dimension value
2568
+ */
2569
+ display_name: string;
2570
+ /**
2571
+ * Per unit amount
2572
+ */
2573
+ unit_amount: string;
2574
+ }
2575
+ }
2576
+ }
2238
2577
  export interface NewFloatingMaxGroupTieredPackagePrice {
2239
2578
  /**
2240
2579
  * The cadence to bill for this price on.
@@ -2248,9 +2587,13 @@ export interface NewFloatingMaxGroupTieredPackagePrice {
2248
2587
  * The id of the item the price will be associated with.
2249
2588
  */
2250
2589
  item_id: string;
2251
- max_group_tiered_package_config: {
2252
- [key: string]: unknown;
2253
- };
2590
+ /**
2591
+ * Configuration for max_group_tiered_package pricing
2592
+ */
2593
+ max_group_tiered_package_config: NewFloatingMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
2594
+ /**
2595
+ * The pricing model type
2596
+ */
2254
2597
  model_type: 'max_group_tiered_package';
2255
2598
  /**
2256
2599
  * The name of the price.
@@ -2310,6 +2653,40 @@ export interface NewFloatingMaxGroupTieredPackagePrice {
2310
2653
  [key: string]: string | null;
2311
2654
  } | null;
2312
2655
  }
2656
+ export declare namespace NewFloatingMaxGroupTieredPackagePrice {
2657
+ /**
2658
+ * Configuration for max_group_tiered_package pricing
2659
+ */
2660
+ interface MaxGroupTieredPackageConfig {
2661
+ /**
2662
+ * The event property used to group before tiering the group with the highest value
2663
+ */
2664
+ grouping_key: string;
2665
+ /**
2666
+ * Package size
2667
+ */
2668
+ package_size: string;
2669
+ /**
2670
+ * Apply tiered pricing to the largest group after grouping with the provided key.
2671
+ */
2672
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
2673
+ }
2674
+ namespace MaxGroupTieredPackageConfig {
2675
+ /**
2676
+ * Configuration for a single tier
2677
+ */
2678
+ interface Tier {
2679
+ /**
2680
+ * Tier lower bound
2681
+ */
2682
+ tier_lower_bound: string;
2683
+ /**
2684
+ * Per unit amount
2685
+ */
2686
+ unit_amount: string;
2687
+ }
2688
+ }
2689
+ }
2313
2690
  export interface NewFloatingMinimumCompositePrice {
2314
2691
  /**
2315
2692
  * The cadence to bill for this price on.
@@ -2323,7 +2700,13 @@ export interface NewFloatingMinimumCompositePrice {
2323
2700
  * The id of the item the price will be associated with.
2324
2701
  */
2325
2702
  item_id: string;
2703
+ /**
2704
+ * Configuration for minimum pricing
2705
+ */
2326
2706
  minimum_config: NewFloatingMinimumCompositePrice.MinimumConfig;
2707
+ /**
2708
+ * The pricing model type
2709
+ */
2327
2710
  model_type: 'minimum';
2328
2711
  /**
2329
2712
  * The name of the price.
@@ -2384,16 +2767,18 @@ export interface NewFloatingMinimumCompositePrice {
2384
2767
  } | null;
2385
2768
  }
2386
2769
  export declare namespace NewFloatingMinimumCompositePrice {
2770
+ /**
2771
+ * Configuration for minimum pricing
2772
+ */
2387
2773
  interface MinimumConfig {
2388
2774
  /**
2389
2775
  * The minimum amount to apply
2390
2776
  */
2391
2777
  minimum_amount: string;
2392
2778
  /**
2393
- * By default, subtotals from minimum composite prices are prorated based on the
2394
- * service period. Set to false to disable proration.
2779
+ * If true, subtotals from this price are prorated based on the service period
2395
2780
  */
2396
- prorated?: boolean | null;
2781
+ prorated?: boolean;
2397
2782
  }
2398
2783
  }
2399
2784
  export interface NewFloatingPackagePrice {
@@ -2409,11 +2794,17 @@ export interface NewFloatingPackagePrice {
2409
2794
  * The id of the item the price will be associated with.
2410
2795
  */
2411
2796
  item_id: string;
2797
+ /**
2798
+ * The pricing model type
2799
+ */
2412
2800
  model_type: 'package';
2413
2801
  /**
2414
2802
  * The name of the price.
2415
2803
  */
2416
2804
  name: string;
2805
+ /**
2806
+ * Configuration for package pricing
2807
+ */
2417
2808
  package_config: PackageConfig;
2418
2809
  /**
2419
2810
  * The id of the billable metric for the price. Only needed if the price is
@@ -2482,14 +2873,18 @@ export interface NewFloatingPackageWithAllocationPrice {
2482
2873
  * The id of the item the price will be associated with.
2483
2874
  */
2484
2875
  item_id: string;
2876
+ /**
2877
+ * The pricing model type
2878
+ */
2485
2879
  model_type: 'package_with_allocation';
2486
2880
  /**
2487
2881
  * The name of the price.
2488
2882
  */
2489
2883
  name: string;
2490
- package_with_allocation_config: {
2491
- [key: string]: unknown;
2492
- };
2884
+ /**
2885
+ * Configuration for package_with_allocation pricing
2886
+ */
2887
+ package_with_allocation_config: NewFloatingPackageWithAllocationPrice.PackageWithAllocationConfig;
2493
2888
  /**
2494
2889
  * The id of the billable metric for the price. Only needed if the price is
2495
2890
  * usage-based.
@@ -2544,6 +2939,25 @@ export interface NewFloatingPackageWithAllocationPrice {
2544
2939
  [key: string]: string | null;
2545
2940
  } | null;
2546
2941
  }
2942
+ export declare namespace NewFloatingPackageWithAllocationPrice {
2943
+ /**
2944
+ * Configuration for package_with_allocation pricing
2945
+ */
2946
+ interface PackageWithAllocationConfig {
2947
+ /**
2948
+ * Usage allocation
2949
+ */
2950
+ allocation: string;
2951
+ /**
2952
+ * Price per package
2953
+ */
2954
+ package_amount: string;
2955
+ /**
2956
+ * Package size
2957
+ */
2958
+ package_size: string;
2959
+ }
2960
+ }
2547
2961
  export interface NewFloatingScalableMatrixWithTieredPricingPrice {
2548
2962
  /**
2549
2963
  * The cadence to bill for this price on.
@@ -2557,14 +2971,18 @@ export interface NewFloatingScalableMatrixWithTieredPricingPrice {
2557
2971
  * The id of the item the price will be associated with.
2558
2972
  */
2559
2973
  item_id: string;
2974
+ /**
2975
+ * The pricing model type
2976
+ */
2560
2977
  model_type: 'scalable_matrix_with_tiered_pricing';
2561
2978
  /**
2562
2979
  * The name of the price.
2563
2980
  */
2564
2981
  name: string;
2565
- scalable_matrix_with_tiered_pricing_config: {
2566
- [key: string]: unknown;
2567
- };
2982
+ /**
2983
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
2984
+ */
2985
+ scalable_matrix_with_tiered_pricing_config: NewFloatingScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
2568
2986
  /**
2569
2987
  * The id of the billable metric for the price. Only needed if the price is
2570
2988
  * usage-based.
@@ -2619,6 +3037,61 @@ export interface NewFloatingScalableMatrixWithTieredPricingPrice {
2619
3037
  [key: string]: string | null;
2620
3038
  } | null;
2621
3039
  }
3040
+ export declare namespace NewFloatingScalableMatrixWithTieredPricingPrice {
3041
+ /**
3042
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
3043
+ */
3044
+ interface ScalableMatrixWithTieredPricingConfig {
3045
+ /**
3046
+ * Used for the scalable matrix first dimension
3047
+ */
3048
+ first_dimension: string;
3049
+ /**
3050
+ * Apply a scaling factor to each dimension
3051
+ */
3052
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
3053
+ /**
3054
+ * Tier pricing structure
3055
+ */
3056
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
3057
+ /**
3058
+ * Used for the scalable matrix second dimension (optional)
3059
+ */
3060
+ second_dimension?: string | null;
3061
+ }
3062
+ namespace ScalableMatrixWithTieredPricingConfig {
3063
+ /**
3064
+ * Configuration for a single matrix scaling factor
3065
+ */
3066
+ interface MatrixScalingFactor {
3067
+ /**
3068
+ * First dimension value
3069
+ */
3070
+ first_dimension_value: string;
3071
+ /**
3072
+ * Scaling factor
3073
+ */
3074
+ scaling_factor: string;
3075
+ /**
3076
+ * Second dimension value (optional)
3077
+ */
3078
+ second_dimension_value?: string | null;
3079
+ }
3080
+ /**
3081
+ * Configuration for a single tier entry with business logic
3082
+ */
3083
+ interface Tier {
3084
+ /**
3085
+ * Tier lower bound
3086
+ */
3087
+ tier_lower_bound: string;
3088
+ /**
3089
+ * Per unit amount
3090
+ */
3091
+ unit_amount: string;
3092
+ }
3093
+ }
3094
+ }
2622
3095
  export interface NewFloatingScalableMatrixWithUnitPricingPrice {
2623
3096
  /**
2624
3097
  * The cadence to bill for this price on.
@@ -2632,14 +3105,18 @@ export interface NewFloatingScalableMatrixWithUnitPricingPrice {
2632
3105
  * The id of the item the price will be associated with.
2633
3106
  */
2634
3107
  item_id: string;
3108
+ /**
3109
+ * The pricing model type
3110
+ */
2635
3111
  model_type: 'scalable_matrix_with_unit_pricing';
2636
3112
  /**
2637
3113
  * The name of the price.
2638
3114
  */
2639
3115
  name: string;
2640
- scalable_matrix_with_unit_pricing_config: {
2641
- [key: string]: unknown;
2642
- };
3116
+ /**
3117
+ * Configuration for scalable_matrix_with_unit_pricing pricing
3118
+ */
3119
+ scalable_matrix_with_unit_pricing_config: NewFloatingScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
2643
3120
  /**
2644
3121
  * The id of the billable metric for the price. Only needed if the price is
2645
3122
  * usage-based.
@@ -2694,6 +3171,52 @@ export interface NewFloatingScalableMatrixWithUnitPricingPrice {
2694
3171
  [key: string]: string | null;
2695
3172
  } | null;
2696
3173
  }
3174
+ export declare namespace NewFloatingScalableMatrixWithUnitPricingPrice {
3175
+ /**
3176
+ * Configuration for scalable_matrix_with_unit_pricing pricing
3177
+ */
3178
+ interface ScalableMatrixWithUnitPricingConfig {
3179
+ /**
3180
+ * Used to determine the unit rate
3181
+ */
3182
+ first_dimension: string;
3183
+ /**
3184
+ * Apply a scaling factor to each dimension
3185
+ */
3186
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
3187
+ /**
3188
+ * The final unit price to rate against the output of the matrix
3189
+ */
3190
+ unit_price: string;
3191
+ /**
3192
+ * If true, the unit price will be prorated to the billing period
3193
+ */
3194
+ prorate?: boolean | null;
3195
+ /**
3196
+ * Used to determine the unit rate (optional)
3197
+ */
3198
+ second_dimension?: string | null;
3199
+ }
3200
+ namespace ScalableMatrixWithUnitPricingConfig {
3201
+ /**
3202
+ * Configuration for a single matrix scaling factor
3203
+ */
3204
+ interface MatrixScalingFactor {
3205
+ /**
3206
+ * First dimension value
3207
+ */
3208
+ first_dimension_value: string;
3209
+ /**
3210
+ * Scaling factor
3211
+ */
3212
+ scaling_factor: string;
3213
+ /**
3214
+ * Second dimension value (optional)
3215
+ */
3216
+ second_dimension_value?: string | null;
3217
+ }
3218
+ }
3219
+ }
2697
3220
  export interface NewFloatingThresholdTotalAmountPrice {
2698
3221
  /**
2699
3222
  * The cadence to bill for this price on.
@@ -2707,14 +3230,18 @@ export interface NewFloatingThresholdTotalAmountPrice {
2707
3230
  * The id of the item the price will be associated with.
2708
3231
  */
2709
3232
  item_id: string;
3233
+ /**
3234
+ * The pricing model type
3235
+ */
2710
3236
  model_type: 'threshold_total_amount';
2711
3237
  /**
2712
3238
  * The name of the price.
2713
3239
  */
2714
3240
  name: string;
2715
- threshold_total_amount_config: {
2716
- [key: string]: unknown;
2717
- };
3241
+ /**
3242
+ * Configuration for threshold_total_amount pricing
3243
+ */
3244
+ threshold_total_amount_config: NewFloatingThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
2718
3245
  /**
2719
3246
  * The id of the billable metric for the price. Only needed if the price is
2720
3247
  * usage-based.
@@ -2769,6 +3296,37 @@ export interface NewFloatingThresholdTotalAmountPrice {
2769
3296
  [key: string]: string | null;
2770
3297
  } | null;
2771
3298
  }
3299
+ export declare namespace NewFloatingThresholdTotalAmountPrice {
3300
+ /**
3301
+ * Configuration for threshold_total_amount pricing
3302
+ */
3303
+ interface ThresholdTotalAmountConfig {
3304
+ /**
3305
+ * When the quantity consumed passes a provided threshold, the configured total
3306
+ * will be charged
3307
+ */
3308
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
3309
+ /**
3310
+ * If true, the unit price will be prorated to the billing period
3311
+ */
3312
+ prorate?: boolean | null;
3313
+ }
3314
+ namespace ThresholdTotalAmountConfig {
3315
+ /**
3316
+ * Configuration for a single threshold
3317
+ */
3318
+ interface ConsumptionTable {
3319
+ /**
3320
+ * Quantity threshold
3321
+ */
3322
+ threshold: string;
3323
+ /**
3324
+ * Total amount for this threshold
3325
+ */
3326
+ total_amount: string;
3327
+ }
3328
+ }
3329
+ }
2772
3330
  export interface NewFloatingTieredPackagePrice {
2773
3331
  /**
2774
3332
  * The cadence to bill for this price on.
@@ -2782,14 +3340,18 @@ export interface NewFloatingTieredPackagePrice {
2782
3340
  * The id of the item the price will be associated with.
2783
3341
  */
2784
3342
  item_id: string;
3343
+ /**
3344
+ * The pricing model type
3345
+ */
2785
3346
  model_type: 'tiered_package';
2786
3347
  /**
2787
3348
  * The name of the price.
2788
3349
  */
2789
3350
  name: string;
2790
- tiered_package_config: {
2791
- [key: string]: unknown;
2792
- };
3351
+ /**
3352
+ * Configuration for tiered_package pricing
3353
+ */
3354
+ tiered_package_config: NewFloatingTieredPackagePrice.TieredPackageConfig;
2793
3355
  /**
2794
3356
  * The id of the billable metric for the price. Only needed if the price is
2795
3357
  * usage-based.
@@ -2844,6 +3406,39 @@ export interface NewFloatingTieredPackagePrice {
2844
3406
  [key: string]: string | null;
2845
3407
  } | null;
2846
3408
  }
3409
+ export declare namespace NewFloatingTieredPackagePrice {
3410
+ /**
3411
+ * Configuration for tiered_package pricing
3412
+ */
3413
+ interface TieredPackageConfig {
3414
+ /**
3415
+ * Package size
3416
+ */
3417
+ package_size: string;
3418
+ /**
3419
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
3420
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
3421
+ * the total quantity rather than the number of packages, so they must be multiples
3422
+ * of the package size.
3423
+ */
3424
+ tiers: Array<TieredPackageConfig.Tier>;
3425
+ }
3426
+ namespace TieredPackageConfig {
3427
+ /**
3428
+ * Configuration for a single tier with business logic
3429
+ */
3430
+ interface Tier {
3431
+ /**
3432
+ * Price per package
3433
+ */
3434
+ per_unit: string;
3435
+ /**
3436
+ * Tier lower bound
3437
+ */
3438
+ tier_lower_bound: string;
3439
+ }
3440
+ }
3441
+ }
2847
3442
  export interface NewFloatingTieredPackageWithMinimumPrice {
2848
3443
  /**
2849
3444
  * The cadence to bill for this price on.
@@ -2857,14 +3452,18 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
2857
3452
  * The id of the item the price will be associated with.
2858
3453
  */
2859
3454
  item_id: string;
3455
+ /**
3456
+ * The pricing model type
3457
+ */
2860
3458
  model_type: 'tiered_package_with_minimum';
2861
3459
  /**
2862
3460
  * The name of the price.
2863
3461
  */
2864
3462
  name: string;
2865
- tiered_package_with_minimum_config: {
2866
- [key: string]: unknown;
2867
- };
3463
+ /**
3464
+ * Configuration for tiered_package_with_minimum pricing
3465
+ */
3466
+ tiered_package_with_minimum_config: NewFloatingTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
2868
3467
  /**
2869
3468
  * The id of the billable metric for the price. Only needed if the price is
2870
3469
  * usage-based.
@@ -2919,6 +3518,41 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
2919
3518
  [key: string]: string | null;
2920
3519
  } | null;
2921
3520
  }
3521
+ export declare namespace NewFloatingTieredPackageWithMinimumPrice {
3522
+ /**
3523
+ * Configuration for tiered_package_with_minimum pricing
3524
+ */
3525
+ interface TieredPackageWithMinimumConfig {
3526
+ /**
3527
+ * Package size
3528
+ */
3529
+ package_size: number;
3530
+ /**
3531
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
3532
+ * are defined using exclusive lower bounds.
3533
+ */
3534
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
3535
+ }
3536
+ namespace TieredPackageWithMinimumConfig {
3537
+ /**
3538
+ * Configuration for a single tier
3539
+ */
3540
+ interface Tier {
3541
+ /**
3542
+ * Minimum amount
3543
+ */
3544
+ minimum_amount: string;
3545
+ /**
3546
+ * Price per package
3547
+ */
3548
+ per_unit: string;
3549
+ /**
3550
+ * Tier lower bound
3551
+ */
3552
+ tier_lower_bound: string;
3553
+ }
3554
+ }
3555
+ }
2922
3556
  export interface NewFloatingTieredPrice {
2923
3557
  /**
2924
3558
  * The cadence to bill for this price on.
@@ -2932,11 +3566,17 @@ export interface NewFloatingTieredPrice {
2932
3566
  * The id of the item the price will be associated with.
2933
3567
  */
2934
3568
  item_id: string;
3569
+ /**
3570
+ * The pricing model type
3571
+ */
2935
3572
  model_type: 'tiered';
2936
3573
  /**
2937
3574
  * The name of the price.
2938
3575
  */
2939
3576
  name: string;
3577
+ /**
3578
+ * Configuration for tiered pricing
3579
+ */
2940
3580
  tiered_config: TieredConfig;
2941
3581
  /**
2942
3582
  * The id of the billable metric for the price. Only needed if the price is
@@ -3005,14 +3645,18 @@ export interface NewFloatingTieredWithMinimumPrice {
3005
3645
  * The id of the item the price will be associated with.
3006
3646
  */
3007
3647
  item_id: string;
3648
+ /**
3649
+ * The pricing model type
3650
+ */
3008
3651
  model_type: 'tiered_with_minimum';
3009
3652
  /**
3010
3653
  * The name of the price.
3011
3654
  */
3012
3655
  name: string;
3013
- tiered_with_minimum_config: {
3014
- [key: string]: unknown;
3015
- };
3656
+ /**
3657
+ * Configuration for tiered_with_minimum pricing
3658
+ */
3659
+ tiered_with_minimum_config: NewFloatingTieredWithMinimumPrice.TieredWithMinimumConfig;
3016
3660
  /**
3017
3661
  * The id of the billable metric for the price. Only needed if the price is
3018
3662
  * usage-based.
@@ -3067,6 +3711,45 @@ export interface NewFloatingTieredWithMinimumPrice {
3067
3711
  [key: string]: string | null;
3068
3712
  } | null;
3069
3713
  }
3714
+ export declare namespace NewFloatingTieredWithMinimumPrice {
3715
+ /**
3716
+ * Configuration for tiered_with_minimum pricing
3717
+ */
3718
+ interface TieredWithMinimumConfig {
3719
+ /**
3720
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
3721
+ * defined using exclusive lower bounds.
3722
+ */
3723
+ tiers: Array<TieredWithMinimumConfig.Tier>;
3724
+ /**
3725
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
3726
+ */
3727
+ hide_zero_amount_tiers?: boolean;
3728
+ /**
3729
+ * If true, the unit price will be prorated to the billing period
3730
+ */
3731
+ prorate?: boolean;
3732
+ }
3733
+ namespace TieredWithMinimumConfig {
3734
+ /**
3735
+ * Configuration for a single tier
3736
+ */
3737
+ interface Tier {
3738
+ /**
3739
+ * Minimum amount
3740
+ */
3741
+ minimum_amount: string;
3742
+ /**
3743
+ * Tier lower bound
3744
+ */
3745
+ tier_lower_bound: string;
3746
+ /**
3747
+ * Per unit amount
3748
+ */
3749
+ unit_amount: string;
3750
+ }
3751
+ }
3752
+ }
3070
3753
  export interface NewFloatingTieredWithProrationPrice {
3071
3754
  /**
3072
3755
  * The cadence to bill for this price on.
@@ -3080,14 +3763,18 @@ export interface NewFloatingTieredWithProrationPrice {
3080
3763
  * The id of the item the price will be associated with.
3081
3764
  */
3082
3765
  item_id: string;
3766
+ /**
3767
+ * The pricing model type
3768
+ */
3083
3769
  model_type: 'tiered_with_proration';
3084
3770
  /**
3085
3771
  * The name of the price.
3086
3772
  */
3087
3773
  name: string;
3088
- tiered_with_proration_config: {
3089
- [key: string]: unknown;
3090
- };
3774
+ /**
3775
+ * Configuration for tiered_with_proration pricing
3776
+ */
3777
+ tiered_with_proration_config: NewFloatingTieredWithProrationPrice.TieredWithProrationConfig;
3091
3778
  /**
3092
3779
  * The id of the billable metric for the price. Only needed if the price is
3093
3780
  * usage-based.
@@ -3142,6 +3829,33 @@ export interface NewFloatingTieredWithProrationPrice {
3142
3829
  [key: string]: string | null;
3143
3830
  } | null;
3144
3831
  }
3832
+ export declare namespace NewFloatingTieredWithProrationPrice {
3833
+ /**
3834
+ * Configuration for tiered_with_proration pricing
3835
+ */
3836
+ interface TieredWithProrationConfig {
3837
+ /**
3838
+ * Tiers for rating based on total usage quantities into the specified tier with
3839
+ * proration
3840
+ */
3841
+ tiers: Array<TieredWithProrationConfig.Tier>;
3842
+ }
3843
+ namespace TieredWithProrationConfig {
3844
+ /**
3845
+ * Configuration for a single tiered with proration tier
3846
+ */
3847
+ interface Tier {
3848
+ /**
3849
+ * Inclusive tier starting value
3850
+ */
3851
+ tier_lower_bound: string;
3852
+ /**
3853
+ * Amount per unit
3854
+ */
3855
+ unit_amount: string;
3856
+ }
3857
+ }
3858
+ }
3145
3859
  export interface NewFloatingUnitPrice {
3146
3860
  /**
3147
3861
  * The cadence to bill for this price on.
@@ -3155,11 +3869,17 @@ export interface NewFloatingUnitPrice {
3155
3869
  * The id of the item the price will be associated with.
3156
3870
  */
3157
3871
  item_id: string;
3872
+ /**
3873
+ * The pricing model type
3874
+ */
3158
3875
  model_type: 'unit';
3159
3876
  /**
3160
3877
  * The name of the price.
3161
3878
  */
3162
3879
  name: string;
3880
+ /**
3881
+ * Configuration for unit pricing
3882
+ */
3163
3883
  unit_config: UnitConfig;
3164
3884
  /**
3165
3885
  * The id of the billable metric for the price. Only needed if the price is
@@ -3228,14 +3948,18 @@ export interface NewFloatingUnitWithPercentPrice {
3228
3948
  * The id of the item the price will be associated with.
3229
3949
  */
3230
3950
  item_id: string;
3951
+ /**
3952
+ * The pricing model type
3953
+ */
3231
3954
  model_type: 'unit_with_percent';
3232
3955
  /**
3233
3956
  * The name of the price.
3234
3957
  */
3235
3958
  name: string;
3236
- unit_with_percent_config: {
3237
- [key: string]: unknown;
3238
- };
3959
+ /**
3960
+ * Configuration for unit_with_percent pricing
3961
+ */
3962
+ unit_with_percent_config: NewFloatingUnitWithPercentPrice.UnitWithPercentConfig;
3239
3963
  /**
3240
3964
  * The id of the billable metric for the price. Only needed if the price is
3241
3965
  * usage-based.
@@ -3290,6 +4014,21 @@ export interface NewFloatingUnitWithPercentPrice {
3290
4014
  [key: string]: string | null;
3291
4015
  } | null;
3292
4016
  }
4017
+ export declare namespace NewFloatingUnitWithPercentPrice {
4018
+ /**
4019
+ * Configuration for unit_with_percent pricing
4020
+ */
4021
+ interface UnitWithPercentConfig {
4022
+ /**
4023
+ * What percent, out of 100, of the calculated total to charge
4024
+ */
4025
+ percent: string;
4026
+ /**
4027
+ * Rate per unit of usage
4028
+ */
4029
+ unit_amount: string;
4030
+ }
4031
+ }
3293
4032
  export interface NewFloatingUnitWithProrationPrice {
3294
4033
  /**
3295
4034
  * The cadence to bill for this price on.
@@ -3303,14 +4042,18 @@ export interface NewFloatingUnitWithProrationPrice {
3303
4042
  * The id of the item the price will be associated with.
3304
4043
  */
3305
4044
  item_id: string;
4045
+ /**
4046
+ * The pricing model type
4047
+ */
3306
4048
  model_type: 'unit_with_proration';
3307
4049
  /**
3308
4050
  * The name of the price.
3309
4051
  */
3310
4052
  name: string;
3311
- unit_with_proration_config: {
3312
- [key: string]: unknown;
3313
- };
4053
+ /**
4054
+ * Configuration for unit_with_proration pricing
4055
+ */
4056
+ unit_with_proration_config: NewFloatingUnitWithProrationPrice.UnitWithProrationConfig;
3314
4057
  /**
3315
4058
  * The id of the billable metric for the price. Only needed if the price is
3316
4059
  * usage-based.
@@ -3365,6 +4108,17 @@ export interface NewFloatingUnitWithProrationPrice {
3365
4108
  [key: string]: string | null;
3366
4109
  } | null;
3367
4110
  }
4111
+ export declare namespace NewFloatingUnitWithProrationPrice {
4112
+ /**
4113
+ * Configuration for unit_with_proration pricing
4114
+ */
4115
+ interface UnitWithProrationConfig {
4116
+ /**
4117
+ * Rate per unit of usage
4118
+ */
4119
+ unit_amount: string;
4120
+ }
4121
+ }
3368
4122
  export interface NewMaximum {
3369
4123
  adjustment_type: 'maximum';
3370
4124
  maximum_amount: string;
@@ -3469,6 +4223,9 @@ export interface NewPercentageDiscount {
3469
4223
  price_type?: 'usage' | 'fixed_in_advance' | 'fixed_in_arrears' | 'fixed' | 'in_arrears' | null;
3470
4224
  }
3471
4225
  export interface NewPlanBulkPrice {
4226
+ /**
4227
+ * Configuration for bulk pricing
4228
+ */
3472
4229
  bulk_config: BulkConfig;
3473
4230
  /**
3474
4231
  * The cadence to bill for this price on.
@@ -3478,6 +4235,9 @@ export interface NewPlanBulkPrice {
3478
4235
  * The id of the item the price will be associated with.
3479
4236
  */
3480
4237
  item_id: string;
4238
+ /**
4239
+ * The pricing model type
4240
+ */
3481
4241
  model_type: 'bulk';
3482
4242
  /**
3483
4243
  * The name of the price.
@@ -3548,9 +4308,10 @@ export interface NewPlanBulkPrice {
3548
4308
  reference_id?: string | null;
3549
4309
  }
3550
4310
  export interface NewPlanBulkWithProrationPrice {
3551
- bulk_with_proration_config: {
3552
- [key: string]: unknown;
3553
- };
4311
+ /**
4312
+ * Configuration for bulk_with_proration pricing
4313
+ */
4314
+ bulk_with_proration_config: NewPlanBulkWithProrationPrice.BulkWithProrationConfig;
3554
4315
  /**
3555
4316
  * The cadence to bill for this price on.
3556
4317
  */
@@ -3559,6 +4320,9 @@ export interface NewPlanBulkWithProrationPrice {
3559
4320
  * The id of the item the price will be associated with.
3560
4321
  */
3561
4322
  item_id: string;
4323
+ /**
4324
+ * The pricing model type
4325
+ */
3562
4326
  model_type: 'bulk_with_proration';
3563
4327
  /**
3564
4328
  * The name of the price.
@@ -3628,18 +4392,48 @@ export interface NewPlanBulkWithProrationPrice {
3628
4392
  */
3629
4393
  reference_id?: string | null;
3630
4394
  }
4395
+ export declare namespace NewPlanBulkWithProrationPrice {
4396
+ /**
4397
+ * Configuration for bulk_with_proration pricing
4398
+ */
4399
+ interface BulkWithProrationConfig {
4400
+ /**
4401
+ * Bulk tiers for rating based on total usage volume
4402
+ */
4403
+ tiers: Array<BulkWithProrationConfig.Tier>;
4404
+ }
4405
+ namespace BulkWithProrationConfig {
4406
+ /**
4407
+ * Configuration for a single bulk pricing tier with proration
4408
+ */
4409
+ interface Tier {
4410
+ /**
4411
+ * Cost per unit
4412
+ */
4413
+ unit_amount: string;
4414
+ /**
4415
+ * The lower bound for this tier
4416
+ */
4417
+ tier_lower_bound?: string | null;
4418
+ }
4419
+ }
4420
+ }
3631
4421
  export interface NewPlanCumulativeGroupedBulkPrice {
3632
4422
  /**
3633
4423
  * The cadence to bill for this price on.
3634
4424
  */
3635
4425
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3636
- cumulative_grouped_bulk_config: {
3637
- [key: string]: unknown;
3638
- };
4426
+ /**
4427
+ * Configuration for cumulative_grouped_bulk pricing
4428
+ */
4429
+ cumulative_grouped_bulk_config: NewPlanCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
3639
4430
  /**
3640
4431
  * The id of the item the price will be associated with.
3641
4432
  */
3642
4433
  item_id: string;
4434
+ /**
4435
+ * The pricing model type
4436
+ */
3643
4437
  model_type: 'cumulative_grouped_bulk';
3644
4438
  /**
3645
4439
  * The name of the price.
@@ -3709,18 +4503,56 @@ export interface NewPlanCumulativeGroupedBulkPrice {
3709
4503
  */
3710
4504
  reference_id?: string | null;
3711
4505
  }
4506
+ export declare namespace NewPlanCumulativeGroupedBulkPrice {
4507
+ /**
4508
+ * Configuration for cumulative_grouped_bulk pricing
4509
+ */
4510
+ interface CumulativeGroupedBulkConfig {
4511
+ /**
4512
+ * Each tier lower bound must have the same group of values.
4513
+ */
4514
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
4515
+ /**
4516
+ * Grouping key name
4517
+ */
4518
+ group: string;
4519
+ }
4520
+ namespace CumulativeGroupedBulkConfig {
4521
+ /**
4522
+ * Configuration for a dimension value entry
4523
+ */
4524
+ interface DimensionValue {
4525
+ /**
4526
+ * Grouping key value
4527
+ */
4528
+ grouping_key: string;
4529
+ /**
4530
+ * Tier lower bound
4531
+ */
4532
+ tier_lower_bound: string;
4533
+ /**
4534
+ * Unit amount for this combination
4535
+ */
4536
+ unit_amount: string;
4537
+ }
4538
+ }
4539
+ }
3712
4540
  export interface NewPlanGroupedAllocationPrice {
3713
4541
  /**
3714
4542
  * The cadence to bill for this price on.
3715
4543
  */
3716
4544
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3717
- grouped_allocation_config: {
3718
- [key: string]: unknown;
3719
- };
4545
+ /**
4546
+ * Configuration for grouped_allocation pricing
4547
+ */
4548
+ grouped_allocation_config: NewPlanGroupedAllocationPrice.GroupedAllocationConfig;
3720
4549
  /**
3721
4550
  * The id of the item the price will be associated with.
3722
4551
  */
3723
4552
  item_id: string;
4553
+ /**
4554
+ * The pricing model type
4555
+ */
3724
4556
  model_type: 'grouped_allocation';
3725
4557
  /**
3726
4558
  * The name of the price.
@@ -3790,18 +4622,41 @@ export interface NewPlanGroupedAllocationPrice {
3790
4622
  */
3791
4623
  reference_id?: string | null;
3792
4624
  }
3793
- export interface NewPlanGroupedTieredPackagePrice {
4625
+ export declare namespace NewPlanGroupedAllocationPrice {
4626
+ /**
4627
+ * Configuration for grouped_allocation pricing
4628
+ */
4629
+ interface GroupedAllocationConfig {
4630
+ /**
4631
+ * Usage allocation per group
4632
+ */
4633
+ allocation: string;
4634
+ /**
4635
+ * How to determine the groups that should each be allocated some quantity
4636
+ */
4637
+ grouping_key: string;
4638
+ /**
4639
+ * Unit rate for post-allocation
4640
+ */
4641
+ overage_unit_rate: string;
4642
+ }
4643
+ }
4644
+ export interface NewPlanGroupedTieredPackagePrice {
3794
4645
  /**
3795
4646
  * The cadence to bill for this price on.
3796
4647
  */
3797
4648
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3798
- grouped_tiered_package_config: {
3799
- [key: string]: unknown;
3800
- };
4649
+ /**
4650
+ * Configuration for grouped_tiered_package pricing
4651
+ */
4652
+ grouped_tiered_package_config: NewPlanGroupedTieredPackagePrice.GroupedTieredPackageConfig;
3801
4653
  /**
3802
4654
  * The id of the item the price will be associated with.
3803
4655
  */
3804
4656
  item_id: string;
4657
+ /**
4658
+ * The pricing model type
4659
+ */
3805
4660
  model_type: 'grouped_tiered_package';
3806
4661
  /**
3807
4662
  * The name of the price.
@@ -3871,18 +4726,57 @@ export interface NewPlanGroupedTieredPackagePrice {
3871
4726
  */
3872
4727
  reference_id?: string | null;
3873
4728
  }
4729
+ export declare namespace NewPlanGroupedTieredPackagePrice {
4730
+ /**
4731
+ * Configuration for grouped_tiered_package pricing
4732
+ */
4733
+ interface GroupedTieredPackageConfig {
4734
+ /**
4735
+ * The event property used to group before tiering
4736
+ */
4737
+ grouping_key: string;
4738
+ /**
4739
+ * Package size
4740
+ */
4741
+ package_size: string;
4742
+ /**
4743
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
4744
+ * are defined using exclusive lower bounds.
4745
+ */
4746
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
4747
+ }
4748
+ namespace GroupedTieredPackageConfig {
4749
+ /**
4750
+ * Configuration for a single tier
4751
+ */
4752
+ interface Tier {
4753
+ /**
4754
+ * Price per package
4755
+ */
4756
+ per_unit: string;
4757
+ /**
4758
+ * Tier lower bound
4759
+ */
4760
+ tier_lower_bound: string;
4761
+ }
4762
+ }
4763
+ }
3874
4764
  export interface NewPlanGroupedTieredPrice {
3875
4765
  /**
3876
4766
  * The cadence to bill for this price on.
3877
4767
  */
3878
4768
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3879
- grouped_tiered_config: {
3880
- [key: string]: unknown;
3881
- };
4769
+ /**
4770
+ * Configuration for grouped_tiered pricing
4771
+ */
4772
+ grouped_tiered_config: NewPlanGroupedTieredPrice.GroupedTieredConfig;
3882
4773
  /**
3883
4774
  * The id of the item the price will be associated with.
3884
4775
  */
3885
4776
  item_id: string;
4777
+ /**
4778
+ * The pricing model type
4779
+ */
3886
4780
  model_type: 'grouped_tiered';
3887
4781
  /**
3888
4782
  * The name of the price.
@@ -3952,18 +4846,53 @@ export interface NewPlanGroupedTieredPrice {
3952
4846
  */
3953
4847
  reference_id?: string | null;
3954
4848
  }
4849
+ export declare namespace NewPlanGroupedTieredPrice {
4850
+ /**
4851
+ * Configuration for grouped_tiered pricing
4852
+ */
4853
+ interface GroupedTieredConfig {
4854
+ /**
4855
+ * The billable metric property used to group before tiering
4856
+ */
4857
+ grouping_key: string;
4858
+ /**
4859
+ * Apply tiered pricing to each segment generated after grouping with the provided
4860
+ * key
4861
+ */
4862
+ tiers: Array<GroupedTieredConfig.Tier>;
4863
+ }
4864
+ namespace GroupedTieredConfig {
4865
+ /**
4866
+ * Configuration for a single tier
4867
+ */
4868
+ interface Tier {
4869
+ /**
4870
+ * Tier lower bound
4871
+ */
4872
+ tier_lower_bound: string;
4873
+ /**
4874
+ * Per unit amount
4875
+ */
4876
+ unit_amount: string;
4877
+ }
4878
+ }
4879
+ }
3955
4880
  export interface NewPlanGroupedWithMeteredMinimumPrice {
3956
4881
  /**
3957
4882
  * The cadence to bill for this price on.
3958
4883
  */
3959
4884
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3960
- grouped_with_metered_minimum_config: {
3961
- [key: string]: unknown;
3962
- };
4885
+ /**
4886
+ * Configuration for grouped_with_metered_minimum pricing
4887
+ */
4888
+ grouped_with_metered_minimum_config: NewPlanGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
3963
4889
  /**
3964
4890
  * The id of the item the price will be associated with.
3965
4891
  */
3966
4892
  item_id: string;
4893
+ /**
4894
+ * The pricing model type
4895
+ */
3967
4896
  model_type: 'grouped_with_metered_minimum';
3968
4897
  /**
3969
4898
  * The name of the price.
@@ -4033,18 +4962,83 @@ export interface NewPlanGroupedWithMeteredMinimumPrice {
4033
4962
  */
4034
4963
  reference_id?: string | null;
4035
4964
  }
4965
+ export declare namespace NewPlanGroupedWithMeteredMinimumPrice {
4966
+ /**
4967
+ * Configuration for grouped_with_metered_minimum pricing
4968
+ */
4969
+ interface GroupedWithMeteredMinimumConfig {
4970
+ /**
4971
+ * Used to partition the usage into groups. The minimum amount is applied to each
4972
+ * group.
4973
+ */
4974
+ grouping_key: string;
4975
+ /**
4976
+ * The minimum amount to charge per group per unit
4977
+ */
4978
+ minimum_unit_amount: string;
4979
+ /**
4980
+ * Used to determine the unit rate
4981
+ */
4982
+ pricing_key: string;
4983
+ /**
4984
+ * Scale the unit rates by the scaling factor.
4985
+ */
4986
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
4987
+ /**
4988
+ * Used to determine the unit rate scaling factor
4989
+ */
4990
+ scaling_key: string;
4991
+ /**
4992
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
4993
+ * unmatched usage.
4994
+ */
4995
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
4996
+ }
4997
+ namespace GroupedWithMeteredMinimumConfig {
4998
+ /**
4999
+ * Configuration for a scaling factor
5000
+ */
5001
+ interface ScalingFactor {
5002
+ /**
5003
+ * Scaling factor
5004
+ */
5005
+ scaling_factor: string;
5006
+ /**
5007
+ * Scaling value
5008
+ */
5009
+ scaling_value: string;
5010
+ }
5011
+ /**
5012
+ * Configuration for a unit amount
5013
+ */
5014
+ interface UnitAmount {
5015
+ /**
5016
+ * Pricing value
5017
+ */
5018
+ pricing_value: string;
5019
+ /**
5020
+ * Per unit amount
5021
+ */
5022
+ unit_amount: string;
5023
+ }
5024
+ }
5025
+ }
4036
5026
  export interface NewPlanGroupedWithProratedMinimumPrice {
4037
5027
  /**
4038
5028
  * The cadence to bill for this price on.
4039
5029
  */
4040
5030
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4041
- grouped_with_prorated_minimum_config: {
4042
- [key: string]: unknown;
4043
- };
5031
+ /**
5032
+ * Configuration for grouped_with_prorated_minimum pricing
5033
+ */
5034
+ grouped_with_prorated_minimum_config: NewPlanGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
4044
5035
  /**
4045
5036
  * The id of the item the price will be associated with.
4046
5037
  */
4047
5038
  item_id: string;
5039
+ /**
5040
+ * The pricing model type
5041
+ */
4048
5042
  model_type: 'grouped_with_prorated_minimum';
4049
5043
  /**
4050
5044
  * The name of the price.
@@ -4114,6 +5108,25 @@ export interface NewPlanGroupedWithProratedMinimumPrice {
4114
5108
  */
4115
5109
  reference_id?: string | null;
4116
5110
  }
5111
+ export declare namespace NewPlanGroupedWithProratedMinimumPrice {
5112
+ /**
5113
+ * Configuration for grouped_with_prorated_minimum pricing
5114
+ */
5115
+ interface GroupedWithProratedMinimumConfig {
5116
+ /**
5117
+ * How to determine the groups that should each have a minimum
5118
+ */
5119
+ grouping_key: string;
5120
+ /**
5121
+ * The minimum amount to charge per group
5122
+ */
5123
+ minimum: string;
5124
+ /**
5125
+ * The amount to charge per unit
5126
+ */
5127
+ unit_rate: string;
5128
+ }
5129
+ }
4117
5130
  export interface NewPlanMatrixPrice {
4118
5131
  /**
4119
5132
  * The cadence to bill for this price on.
@@ -4123,7 +5136,13 @@ export interface NewPlanMatrixPrice {
4123
5136
  * The id of the item the price will be associated with.
4124
5137
  */
4125
5138
  item_id: string;
5139
+ /**
5140
+ * Configuration for matrix pricing
5141
+ */
4126
5142
  matrix_config: MatrixConfig;
5143
+ /**
5144
+ * The pricing model type
5145
+ */
4127
5146
  model_type: 'matrix';
4128
5147
  /**
4129
5148
  * The name of the price.
@@ -4202,7 +5221,13 @@ export interface NewPlanMatrixWithAllocationPrice {
4202
5221
  * The id of the item the price will be associated with.
4203
5222
  */
4204
5223
  item_id: string;
5224
+ /**
5225
+ * Configuration for matrix_with_allocation pricing
5226
+ */
4205
5227
  matrix_with_allocation_config: MatrixWithAllocationConfig;
5228
+ /**
5229
+ * The pricing model type
5230
+ */
4206
5231
  model_type: 'matrix_with_allocation';
4207
5232
  /**
4208
5233
  * The name of the price.
@@ -4281,9 +5306,13 @@ export interface NewPlanMatrixWithDisplayNamePrice {
4281
5306
  * The id of the item the price will be associated with.
4282
5307
  */
4283
5308
  item_id: string;
4284
- matrix_with_display_name_config: {
4285
- [key: string]: unknown;
4286
- };
5309
+ /**
5310
+ * Configuration for matrix_with_display_name pricing
5311
+ */
5312
+ matrix_with_display_name_config: NewPlanMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
5313
+ /**
5314
+ * The pricing model type
5315
+ */
4287
5316
  model_type: 'matrix_with_display_name';
4288
5317
  /**
4289
5318
  * The name of the price.
@@ -4353,6 +5382,40 @@ export interface NewPlanMatrixWithDisplayNamePrice {
4353
5382
  */
4354
5383
  reference_id?: string | null;
4355
5384
  }
5385
+ export declare namespace NewPlanMatrixWithDisplayNamePrice {
5386
+ /**
5387
+ * Configuration for matrix_with_display_name pricing
5388
+ */
5389
+ interface MatrixWithDisplayNameConfig {
5390
+ /**
5391
+ * Used to determine the unit rate
5392
+ */
5393
+ dimension: string;
5394
+ /**
5395
+ * Apply per unit pricing to each dimension value
5396
+ */
5397
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
5398
+ }
5399
+ namespace MatrixWithDisplayNameConfig {
5400
+ /**
5401
+ * Configuration for a unit amount item
5402
+ */
5403
+ interface UnitAmount {
5404
+ /**
5405
+ * The dimension value
5406
+ */
5407
+ dimension_value: string;
5408
+ /**
5409
+ * Display name for this dimension value
5410
+ */
5411
+ display_name: string;
5412
+ /**
5413
+ * Per unit amount
5414
+ */
5415
+ unit_amount: string;
5416
+ }
5417
+ }
5418
+ }
4356
5419
  export interface NewPlanMaxGroupTieredPackagePrice {
4357
5420
  /**
4358
5421
  * The cadence to bill for this price on.
@@ -4362,9 +5425,13 @@ export interface NewPlanMaxGroupTieredPackagePrice {
4362
5425
  * The id of the item the price will be associated with.
4363
5426
  */
4364
5427
  item_id: string;
4365
- max_group_tiered_package_config: {
4366
- [key: string]: unknown;
4367
- };
5428
+ /**
5429
+ * Configuration for max_group_tiered_package pricing
5430
+ */
5431
+ max_group_tiered_package_config: NewPlanMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
5432
+ /**
5433
+ * The pricing model type
5434
+ */
4368
5435
  model_type: 'max_group_tiered_package';
4369
5436
  /**
4370
5437
  * The name of the price.
@@ -4434,6 +5501,40 @@ export interface NewPlanMaxGroupTieredPackagePrice {
4434
5501
  */
4435
5502
  reference_id?: string | null;
4436
5503
  }
5504
+ export declare namespace NewPlanMaxGroupTieredPackagePrice {
5505
+ /**
5506
+ * Configuration for max_group_tiered_package pricing
5507
+ */
5508
+ interface MaxGroupTieredPackageConfig {
5509
+ /**
5510
+ * The event property used to group before tiering the group with the highest value
5511
+ */
5512
+ grouping_key: string;
5513
+ /**
5514
+ * Package size
5515
+ */
5516
+ package_size: string;
5517
+ /**
5518
+ * Apply tiered pricing to the largest group after grouping with the provided key.
5519
+ */
5520
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
5521
+ }
5522
+ namespace MaxGroupTieredPackageConfig {
5523
+ /**
5524
+ * Configuration for a single tier
5525
+ */
5526
+ interface Tier {
5527
+ /**
5528
+ * Tier lower bound
5529
+ */
5530
+ tier_lower_bound: string;
5531
+ /**
5532
+ * Per unit amount
5533
+ */
5534
+ unit_amount: string;
5535
+ }
5536
+ }
5537
+ }
4437
5538
  export interface NewPlanMinimumCompositePrice {
4438
5539
  /**
4439
5540
  * The cadence to bill for this price on.
@@ -4443,7 +5544,13 @@ export interface NewPlanMinimumCompositePrice {
4443
5544
  * The id of the item the price will be associated with.
4444
5545
  */
4445
5546
  item_id: string;
5547
+ /**
5548
+ * Configuration for minimum pricing
5549
+ */
4446
5550
  minimum_config: NewPlanMinimumCompositePrice.MinimumConfig;
5551
+ /**
5552
+ * The pricing model type
5553
+ */
4447
5554
  model_type: 'minimum';
4448
5555
  /**
4449
5556
  * The name of the price.
@@ -4514,16 +5621,18 @@ export interface NewPlanMinimumCompositePrice {
4514
5621
  reference_id?: string | null;
4515
5622
  }
4516
5623
  export declare namespace NewPlanMinimumCompositePrice {
5624
+ /**
5625
+ * Configuration for minimum pricing
5626
+ */
4517
5627
  interface MinimumConfig {
4518
5628
  /**
4519
5629
  * The minimum amount to apply
4520
5630
  */
4521
5631
  minimum_amount: string;
4522
5632
  /**
4523
- * By default, subtotals from minimum composite prices are prorated based on the
4524
- * service period. Set to false to disable proration.
5633
+ * If true, subtotals from this price are prorated based on the service period
4525
5634
  */
4526
- prorated?: boolean | null;
5635
+ prorated?: boolean;
4527
5636
  }
4528
5637
  }
4529
5638
  export interface NewPlanPackagePrice {
@@ -4535,11 +5644,17 @@ export interface NewPlanPackagePrice {
4535
5644
  * The id of the item the price will be associated with.
4536
5645
  */
4537
5646
  item_id: string;
5647
+ /**
5648
+ * The pricing model type
5649
+ */
4538
5650
  model_type: 'package';
4539
5651
  /**
4540
5652
  * The name of the price.
4541
5653
  */
4542
5654
  name: string;
5655
+ /**
5656
+ * Configuration for package pricing
5657
+ */
4543
5658
  package_config: PackageConfig;
4544
5659
  /**
4545
5660
  * The id of the billable metric for the price. Only needed if the price is
@@ -4614,14 +5729,18 @@ export interface NewPlanPackageWithAllocationPrice {
4614
5729
  * The id of the item the price will be associated with.
4615
5730
  */
4616
5731
  item_id: string;
5732
+ /**
5733
+ * The pricing model type
5734
+ */
4617
5735
  model_type: 'package_with_allocation';
4618
5736
  /**
4619
5737
  * The name of the price.
4620
5738
  */
4621
5739
  name: string;
4622
- package_with_allocation_config: {
4623
- [key: string]: unknown;
4624
- };
5740
+ /**
5741
+ * Configuration for package_with_allocation pricing
5742
+ */
5743
+ package_with_allocation_config: NewPlanPackageWithAllocationPrice.PackageWithAllocationConfig;
4625
5744
  /**
4626
5745
  * The id of the billable metric for the price. Only needed if the price is
4627
5746
  * usage-based.
@@ -4686,6 +5805,25 @@ export interface NewPlanPackageWithAllocationPrice {
4686
5805
  */
4687
5806
  reference_id?: string | null;
4688
5807
  }
5808
+ export declare namespace NewPlanPackageWithAllocationPrice {
5809
+ /**
5810
+ * Configuration for package_with_allocation pricing
5811
+ */
5812
+ interface PackageWithAllocationConfig {
5813
+ /**
5814
+ * Usage allocation
5815
+ */
5816
+ allocation: string;
5817
+ /**
5818
+ * Price per package
5819
+ */
5820
+ package_amount: string;
5821
+ /**
5822
+ * Package size
5823
+ */
5824
+ package_size: string;
5825
+ }
5826
+ }
4689
5827
  export interface NewPlanScalableMatrixWithTieredPricingPrice {
4690
5828
  /**
4691
5829
  * The cadence to bill for this price on.
@@ -4695,14 +5833,18 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
4695
5833
  * The id of the item the price will be associated with.
4696
5834
  */
4697
5835
  item_id: string;
5836
+ /**
5837
+ * The pricing model type
5838
+ */
4698
5839
  model_type: 'scalable_matrix_with_tiered_pricing';
4699
5840
  /**
4700
5841
  * The name of the price.
4701
5842
  */
4702
5843
  name: string;
4703
- scalable_matrix_with_tiered_pricing_config: {
4704
- [key: string]: unknown;
4705
- };
5844
+ /**
5845
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
5846
+ */
5847
+ scalable_matrix_with_tiered_pricing_config: NewPlanScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
4706
5848
  /**
4707
5849
  * The id of the billable metric for the price. Only needed if the price is
4708
5850
  * usage-based.
@@ -4767,6 +5909,61 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
4767
5909
  */
4768
5910
  reference_id?: string | null;
4769
5911
  }
5912
+ export declare namespace NewPlanScalableMatrixWithTieredPricingPrice {
5913
+ /**
5914
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
5915
+ */
5916
+ interface ScalableMatrixWithTieredPricingConfig {
5917
+ /**
5918
+ * Used for the scalable matrix first dimension
5919
+ */
5920
+ first_dimension: string;
5921
+ /**
5922
+ * Apply a scaling factor to each dimension
5923
+ */
5924
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
5925
+ /**
5926
+ * Tier pricing structure
5927
+ */
5928
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
5929
+ /**
5930
+ * Used for the scalable matrix second dimension (optional)
5931
+ */
5932
+ second_dimension?: string | null;
5933
+ }
5934
+ namespace ScalableMatrixWithTieredPricingConfig {
5935
+ /**
5936
+ * Configuration for a single matrix scaling factor
5937
+ */
5938
+ interface MatrixScalingFactor {
5939
+ /**
5940
+ * First dimension value
5941
+ */
5942
+ first_dimension_value: string;
5943
+ /**
5944
+ * Scaling factor
5945
+ */
5946
+ scaling_factor: string;
5947
+ /**
5948
+ * Second dimension value (optional)
5949
+ */
5950
+ second_dimension_value?: string | null;
5951
+ }
5952
+ /**
5953
+ * Configuration for a single tier entry with business logic
5954
+ */
5955
+ interface Tier {
5956
+ /**
5957
+ * Tier lower bound
5958
+ */
5959
+ tier_lower_bound: string;
5960
+ /**
5961
+ * Per unit amount
5962
+ */
5963
+ unit_amount: string;
5964
+ }
5965
+ }
5966
+ }
4770
5967
  export interface NewPlanScalableMatrixWithUnitPricingPrice {
4771
5968
  /**
4772
5969
  * The cadence to bill for this price on.
@@ -4776,14 +5973,18 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
4776
5973
  * The id of the item the price will be associated with.
4777
5974
  */
4778
5975
  item_id: string;
5976
+ /**
5977
+ * The pricing model type
5978
+ */
4779
5979
  model_type: 'scalable_matrix_with_unit_pricing';
4780
5980
  /**
4781
5981
  * The name of the price.
4782
5982
  */
4783
5983
  name: string;
4784
- scalable_matrix_with_unit_pricing_config: {
4785
- [key: string]: unknown;
4786
- };
5984
+ /**
5985
+ * Configuration for scalable_matrix_with_unit_pricing pricing
5986
+ */
5987
+ scalable_matrix_with_unit_pricing_config: NewPlanScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
4787
5988
  /**
4788
5989
  * The id of the billable metric for the price. Only needed if the price is
4789
5990
  * usage-based.
@@ -4848,6 +6049,52 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
4848
6049
  */
4849
6050
  reference_id?: string | null;
4850
6051
  }
6052
+ export declare namespace NewPlanScalableMatrixWithUnitPricingPrice {
6053
+ /**
6054
+ * Configuration for scalable_matrix_with_unit_pricing pricing
6055
+ */
6056
+ interface ScalableMatrixWithUnitPricingConfig {
6057
+ /**
6058
+ * Used to determine the unit rate
6059
+ */
6060
+ first_dimension: string;
6061
+ /**
6062
+ * Apply a scaling factor to each dimension
6063
+ */
6064
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
6065
+ /**
6066
+ * The final unit price to rate against the output of the matrix
6067
+ */
6068
+ unit_price: string;
6069
+ /**
6070
+ * If true, the unit price will be prorated to the billing period
6071
+ */
6072
+ prorate?: boolean | null;
6073
+ /**
6074
+ * Used to determine the unit rate (optional)
6075
+ */
6076
+ second_dimension?: string | null;
6077
+ }
6078
+ namespace ScalableMatrixWithUnitPricingConfig {
6079
+ /**
6080
+ * Configuration for a single matrix scaling factor
6081
+ */
6082
+ interface MatrixScalingFactor {
6083
+ /**
6084
+ * First dimension value
6085
+ */
6086
+ first_dimension_value: string;
6087
+ /**
6088
+ * Scaling factor
6089
+ */
6090
+ scaling_factor: string;
6091
+ /**
6092
+ * Second dimension value (optional)
6093
+ */
6094
+ second_dimension_value?: string | null;
6095
+ }
6096
+ }
6097
+ }
4851
6098
  export interface NewPlanThresholdTotalAmountPrice {
4852
6099
  /**
4853
6100
  * The cadence to bill for this price on.
@@ -4857,14 +6104,18 @@ export interface NewPlanThresholdTotalAmountPrice {
4857
6104
  * The id of the item the price will be associated with.
4858
6105
  */
4859
6106
  item_id: string;
6107
+ /**
6108
+ * The pricing model type
6109
+ */
4860
6110
  model_type: 'threshold_total_amount';
4861
6111
  /**
4862
6112
  * The name of the price.
4863
6113
  */
4864
6114
  name: string;
4865
- threshold_total_amount_config: {
4866
- [key: string]: unknown;
4867
- };
6115
+ /**
6116
+ * Configuration for threshold_total_amount pricing
6117
+ */
6118
+ threshold_total_amount_config: NewPlanThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
4868
6119
  /**
4869
6120
  * The id of the billable metric for the price. Only needed if the price is
4870
6121
  * usage-based.
@@ -4929,86 +6180,36 @@ export interface NewPlanThresholdTotalAmountPrice {
4929
6180
  */
4930
6181
  reference_id?: string | null;
4931
6182
  }
4932
- export interface NewPlanTierWithProrationPrice {
6183
+ export declare namespace NewPlanThresholdTotalAmountPrice {
4933
6184
  /**
4934
- * The cadence to bill for this price on.
6185
+ * Configuration for threshold_total_amount pricing
4935
6186
  */
4936
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4937
- /**
4938
- * The id of the item the price will be associated with.
4939
- */
4940
- item_id: string;
4941
- model_type: 'tiered_with_proration';
4942
- /**
4943
- * The name of the price.
4944
- */
4945
- name: string;
4946
- tiered_with_proration_config: {
4947
- [key: string]: unknown;
4948
- };
4949
- /**
4950
- * The id of the billable metric for the price. Only needed if the price is
4951
- * usage-based.
4952
- */
4953
- billable_metric_id?: string | null;
4954
- /**
4955
- * If the Price represents a fixed cost, the price will be billed in-advance if
4956
- * this is true, and in-arrears if this is false.
4957
- */
4958
- billed_in_advance?: boolean | null;
4959
- /**
4960
- * For custom cadence: specifies the duration of the billing period in days or
4961
- * months.
4962
- */
4963
- billing_cycle_configuration?: NewBillingCycleConfiguration | null;
4964
- /**
4965
- * The per unit conversion rate of the price currency to the invoicing currency.
4966
- */
4967
- conversion_rate?: number | null;
4968
- /**
4969
- * The configuration for the rate of the price currency to the invoicing currency.
4970
- */
4971
- conversion_rate_config?: UnitConversionRateConfig | TieredConversionRateConfig | null;
4972
- /**
4973
- * An ISO 4217 currency string, or custom pricing unit identifier, in which this
4974
- * price is billed.
4975
- */
4976
- currency?: string | null;
4977
- /**
4978
- * For dimensional price: specifies a price group and dimension values
4979
- */
4980
- dimensional_price_configuration?: NewDimensionalPriceConfiguration | null;
4981
- /**
4982
- * An alias for the price.
4983
- */
4984
- external_price_id?: string | null;
4985
- /**
4986
- * If the Price represents a fixed cost, this represents the quantity of units
4987
- * applied.
4988
- */
4989
- fixed_price_quantity?: number | null;
4990
- /**
4991
- * The property used to group this price on an invoice
4992
- */
4993
- invoice_grouping_key?: string | null;
4994
- /**
4995
- * Within each billing cycle, specifies the cadence at which invoices are produced.
4996
- * If unspecified, a single invoice is produced per billing cycle.
4997
- */
4998
- invoicing_cycle_configuration?: NewBillingCycleConfiguration | null;
4999
- /**
5000
- * User-specified key/value pairs for the resource. Individual keys can be removed
5001
- * by setting the value to `null`, and the entire metadata mapping can be cleared
5002
- * by setting `metadata` to `null`.
5003
- */
5004
- metadata?: {
5005
- [key: string]: string | null;
5006
- } | null;
5007
- /**
5008
- * A transient ID that can be used to reference this price when adding adjustments
5009
- * in the same API call.
5010
- */
5011
- reference_id?: string | null;
6187
+ interface ThresholdTotalAmountConfig {
6188
+ /**
6189
+ * When the quantity consumed passes a provided threshold, the configured total
6190
+ * will be charged
6191
+ */
6192
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
6193
+ /**
6194
+ * If true, the unit price will be prorated to the billing period
6195
+ */
6196
+ prorate?: boolean | null;
6197
+ }
6198
+ namespace ThresholdTotalAmountConfig {
6199
+ /**
6200
+ * Configuration for a single threshold
6201
+ */
6202
+ interface ConsumptionTable {
6203
+ /**
6204
+ * Quantity threshold
6205
+ */
6206
+ threshold: string;
6207
+ /**
6208
+ * Total amount for this threshold
6209
+ */
6210
+ total_amount: string;
6211
+ }
6212
+ }
5012
6213
  }
5013
6214
  export interface NewPlanTieredPackagePrice {
5014
6215
  /**
@@ -5019,14 +6220,18 @@ export interface NewPlanTieredPackagePrice {
5019
6220
  * The id of the item the price will be associated with.
5020
6221
  */
5021
6222
  item_id: string;
6223
+ /**
6224
+ * The pricing model type
6225
+ */
5022
6226
  model_type: 'tiered_package';
5023
6227
  /**
5024
6228
  * The name of the price.
5025
6229
  */
5026
6230
  name: string;
5027
- tiered_package_config: {
5028
- [key: string]: unknown;
5029
- };
6231
+ /**
6232
+ * Configuration for tiered_package pricing
6233
+ */
6234
+ tiered_package_config: NewPlanTieredPackagePrice.TieredPackageConfig;
5030
6235
  /**
5031
6236
  * The id of the billable metric for the price. Only needed if the price is
5032
6237
  * usage-based.
@@ -5091,6 +6296,39 @@ export interface NewPlanTieredPackagePrice {
5091
6296
  */
5092
6297
  reference_id?: string | null;
5093
6298
  }
6299
+ export declare namespace NewPlanTieredPackagePrice {
6300
+ /**
6301
+ * Configuration for tiered_package pricing
6302
+ */
6303
+ interface TieredPackageConfig {
6304
+ /**
6305
+ * Package size
6306
+ */
6307
+ package_size: string;
6308
+ /**
6309
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
6310
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
6311
+ * the total quantity rather than the number of packages, so they must be multiples
6312
+ * of the package size.
6313
+ */
6314
+ tiers: Array<TieredPackageConfig.Tier>;
6315
+ }
6316
+ namespace TieredPackageConfig {
6317
+ /**
6318
+ * Configuration for a single tier with business logic
6319
+ */
6320
+ interface Tier {
6321
+ /**
6322
+ * Price per package
6323
+ */
6324
+ per_unit: string;
6325
+ /**
6326
+ * Tier lower bound
6327
+ */
6328
+ tier_lower_bound: string;
6329
+ }
6330
+ }
6331
+ }
5094
6332
  export interface NewPlanTieredPackageWithMinimumPrice {
5095
6333
  /**
5096
6334
  * The cadence to bill for this price on.
@@ -5100,14 +6338,18 @@ export interface NewPlanTieredPackageWithMinimumPrice {
5100
6338
  * The id of the item the price will be associated with.
5101
6339
  */
5102
6340
  item_id: string;
6341
+ /**
6342
+ * The pricing model type
6343
+ */
5103
6344
  model_type: 'tiered_package_with_minimum';
5104
6345
  /**
5105
6346
  * The name of the price.
5106
6347
  */
5107
6348
  name: string;
5108
- tiered_package_with_minimum_config: {
5109
- [key: string]: unknown;
5110
- };
6349
+ /**
6350
+ * Configuration for tiered_package_with_minimum pricing
6351
+ */
6352
+ tiered_package_with_minimum_config: NewPlanTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
5111
6353
  /**
5112
6354
  * The id of the billable metric for the price. Only needed if the price is
5113
6355
  * usage-based.
@@ -5172,6 +6414,41 @@ export interface NewPlanTieredPackageWithMinimumPrice {
5172
6414
  */
5173
6415
  reference_id?: string | null;
5174
6416
  }
6417
+ export declare namespace NewPlanTieredPackageWithMinimumPrice {
6418
+ /**
6419
+ * Configuration for tiered_package_with_minimum pricing
6420
+ */
6421
+ interface TieredPackageWithMinimumConfig {
6422
+ /**
6423
+ * Package size
6424
+ */
6425
+ package_size: number;
6426
+ /**
6427
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
6428
+ * are defined using exclusive lower bounds.
6429
+ */
6430
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
6431
+ }
6432
+ namespace TieredPackageWithMinimumConfig {
6433
+ /**
6434
+ * Configuration for a single tier
6435
+ */
6436
+ interface Tier {
6437
+ /**
6438
+ * Minimum amount
6439
+ */
6440
+ minimum_amount: string;
6441
+ /**
6442
+ * Price per package
6443
+ */
6444
+ per_unit: string;
6445
+ /**
6446
+ * Tier lower bound
6447
+ */
6448
+ tier_lower_bound: string;
6449
+ }
6450
+ }
6451
+ }
5175
6452
  export interface NewPlanTieredPrice {
5176
6453
  /**
5177
6454
  * The cadence to bill for this price on.
@@ -5181,11 +6458,17 @@ export interface NewPlanTieredPrice {
5181
6458
  * The id of the item the price will be associated with.
5182
6459
  */
5183
6460
  item_id: string;
6461
+ /**
6462
+ * The pricing model type
6463
+ */
5184
6464
  model_type: 'tiered';
5185
6465
  /**
5186
6466
  * The name of the price.
5187
6467
  */
5188
6468
  name: string;
6469
+ /**
6470
+ * Configuration for tiered pricing
6471
+ */
5189
6472
  tiered_config: TieredConfig;
5190
6473
  /**
5191
6474
  * The id of the billable metric for the price. Only needed if the price is
@@ -5260,14 +6543,18 @@ export interface NewPlanTieredWithMinimumPrice {
5260
6543
  * The id of the item the price will be associated with.
5261
6544
  */
5262
6545
  item_id: string;
6546
+ /**
6547
+ * The pricing model type
6548
+ */
5263
6549
  model_type: 'tiered_with_minimum';
5264
6550
  /**
5265
6551
  * The name of the price.
5266
6552
  */
5267
6553
  name: string;
5268
- tiered_with_minimum_config: {
5269
- [key: string]: unknown;
5270
- };
6554
+ /**
6555
+ * Configuration for tiered_with_minimum pricing
6556
+ */
6557
+ tiered_with_minimum_config: NewPlanTieredWithMinimumPrice.TieredWithMinimumConfig;
5271
6558
  /**
5272
6559
  * The id of the billable metric for the price. Only needed if the price is
5273
6560
  * usage-based.
@@ -5332,6 +6619,45 @@ export interface NewPlanTieredWithMinimumPrice {
5332
6619
  */
5333
6620
  reference_id?: string | null;
5334
6621
  }
6622
+ export declare namespace NewPlanTieredWithMinimumPrice {
6623
+ /**
6624
+ * Configuration for tiered_with_minimum pricing
6625
+ */
6626
+ interface TieredWithMinimumConfig {
6627
+ /**
6628
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
6629
+ * defined using exclusive lower bounds.
6630
+ */
6631
+ tiers: Array<TieredWithMinimumConfig.Tier>;
6632
+ /**
6633
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
6634
+ */
6635
+ hide_zero_amount_tiers?: boolean;
6636
+ /**
6637
+ * If true, the unit price will be prorated to the billing period
6638
+ */
6639
+ prorate?: boolean;
6640
+ }
6641
+ namespace TieredWithMinimumConfig {
6642
+ /**
6643
+ * Configuration for a single tier
6644
+ */
6645
+ interface Tier {
6646
+ /**
6647
+ * Minimum amount
6648
+ */
6649
+ minimum_amount: string;
6650
+ /**
6651
+ * Tier lower bound
6652
+ */
6653
+ tier_lower_bound: string;
6654
+ /**
6655
+ * Per unit amount
6656
+ */
6657
+ unit_amount: string;
6658
+ }
6659
+ }
6660
+ }
5335
6661
  export interface NewPlanUnitPrice {
5336
6662
  /**
5337
6663
  * The cadence to bill for this price on.
@@ -5341,11 +6667,17 @@ export interface NewPlanUnitPrice {
5341
6667
  * The id of the item the price will be associated with.
5342
6668
  */
5343
6669
  item_id: string;
6670
+ /**
6671
+ * The pricing model type
6672
+ */
5344
6673
  model_type: 'unit';
5345
6674
  /**
5346
6675
  * The name of the price.
5347
6676
  */
5348
6677
  name: string;
6678
+ /**
6679
+ * Configuration for unit pricing
6680
+ */
5349
6681
  unit_config: UnitConfig;
5350
6682
  /**
5351
6683
  * The id of the billable metric for the price. Only needed if the price is
@@ -5420,14 +6752,18 @@ export interface NewPlanUnitWithPercentPrice {
5420
6752
  * The id of the item the price will be associated with.
5421
6753
  */
5422
6754
  item_id: string;
6755
+ /**
6756
+ * The pricing model type
6757
+ */
5423
6758
  model_type: 'unit_with_percent';
5424
6759
  /**
5425
6760
  * The name of the price.
5426
6761
  */
5427
6762
  name: string;
5428
- unit_with_percent_config: {
5429
- [key: string]: unknown;
5430
- };
6763
+ /**
6764
+ * Configuration for unit_with_percent pricing
6765
+ */
6766
+ unit_with_percent_config: NewPlanUnitWithPercentPrice.UnitWithPercentConfig;
5431
6767
  /**
5432
6768
  * The id of the billable metric for the price. Only needed if the price is
5433
6769
  * usage-based.
@@ -5492,6 +6828,21 @@ export interface NewPlanUnitWithPercentPrice {
5492
6828
  */
5493
6829
  reference_id?: string | null;
5494
6830
  }
6831
+ export declare namespace NewPlanUnitWithPercentPrice {
6832
+ /**
6833
+ * Configuration for unit_with_percent pricing
6834
+ */
6835
+ interface UnitWithPercentConfig {
6836
+ /**
6837
+ * What percent, out of 100, of the calculated total to charge
6838
+ */
6839
+ percent: string;
6840
+ /**
6841
+ * Rate per unit of usage
6842
+ */
6843
+ unit_amount: string;
6844
+ }
6845
+ }
5495
6846
  export interface NewPlanUnitWithProrationPrice {
5496
6847
  /**
5497
6848
  * The cadence to bill for this price on.
@@ -5501,14 +6852,18 @@ export interface NewPlanUnitWithProrationPrice {
5501
6852
  * The id of the item the price will be associated with.
5502
6853
  */
5503
6854
  item_id: string;
6855
+ /**
6856
+ * The pricing model type
6857
+ */
5504
6858
  model_type: 'unit_with_proration';
5505
6859
  /**
5506
6860
  * The name of the price.
5507
6861
  */
5508
6862
  name: string;
5509
- unit_with_proration_config: {
5510
- [key: string]: unknown;
5511
- };
6863
+ /**
6864
+ * Configuration for unit_with_proration pricing
6865
+ */
6866
+ unit_with_proration_config: NewPlanUnitWithProrationPrice.UnitWithProrationConfig;
5512
6867
  /**
5513
6868
  * The id of the billable metric for the price. Only needed if the price is
5514
6869
  * usage-based.
@@ -5573,6 +6928,17 @@ export interface NewPlanUnitWithProrationPrice {
5573
6928
  */
5574
6929
  reference_id?: string | null;
5575
6930
  }
6931
+ export declare namespace NewPlanUnitWithProrationPrice {
6932
+ /**
6933
+ * Configuration for unit_with_proration pricing
6934
+ */
6935
+ interface UnitWithProrationConfig {
6936
+ /**
6937
+ * Rate per unit of usage
6938
+ */
6939
+ unit_amount: string;
6940
+ }
6941
+ }
5576
6942
  export interface NewUsageDiscount {
5577
6943
  adjustment_type: 'usage_discount';
5578
6944
  usage_discount: number;
@@ -5616,6 +6982,9 @@ export interface OtherSubLineItem {
5616
6982
  quantity: number;
5617
6983
  type: "'null'";
5618
6984
  }
6985
+ /**
6986
+ * Configuration for package pricing
6987
+ */
5619
6988
  export interface PackageConfig {
5620
6989
  /**
5621
6990
  * A currency amount to rate usage by
@@ -5886,7 +7255,7 @@ export interface PlanPhaseUsageDiscountAdjustment {
5886
7255
  * For more on the types of prices, see
5887
7256
  * [the core concepts documentation](/core-concepts#plan-and-price)
5888
7257
  */
5889
- export type Price = Price.UnitPrice | Price.PackagePrice | Price.MatrixPrice | Price.TieredPrice | Price.BulkPrice | Price.ThresholdTotalAmountPrice | Price.TieredPackagePrice | Price.GroupedTieredPrice | Price.TieredWithMinimumPrice | Price.TieredPackageWithMinimumPrice | Price.PackageWithAllocationPrice | Price.UnitWithPercentPrice | Price.MatrixWithAllocationPrice | Price.TieredWithProrationPrice | Price.UnitWithProrationPrice | Price.GroupedAllocationPrice | Price.GroupedWithProratedMinimumPrice | Price.GroupedWithMeteredMinimumPrice | Price.MatrixWithDisplayNamePrice | Price.BulkWithProrationPrice | Price.GroupedTieredPackagePrice | Price.MaxGroupTieredPackagePrice | Price.ScalableMatrixWithUnitPricingPrice | Price.ScalableMatrixWithTieredPricingPrice | Price.CumulativeGroupedBulkPrice | Price.GroupedWithMinMaxThresholdsPrice | Price.MinimumCompositePrice;
7258
+ export type Price = Price.UnitPrice | Price.TieredPrice | Price.BulkPrice | Price.PackagePrice | Price.MatrixPrice | Price.ThresholdTotalAmountPrice | Price.TieredPackagePrice | Price.TieredWithMinimumPrice | Price.GroupedTieredPrice | Price.TieredPackageWithMinimumPrice | Price.PackageWithAllocationPrice | Price.UnitWithPercentPrice | Price.MatrixWithAllocationPrice | Price.TieredWithProrationPrice | Price.UnitWithProrationPrice | Price.GroupedAllocationPrice | Price.BulkWithProrationPrice | Price.GroupedWithProratedMinimumPrice | Price.GroupedWithMeteredMinimumPrice | Price.GroupedWithMinMaxThresholdsPrice | Price.MatrixWithDisplayNamePrice | Price.GroupedTieredPackagePrice | Price.MaxGroupTieredPackagePrice | Price.ScalableMatrixWithUnitPricingPrice | Price.ScalableMatrixWithTieredPricingPrice | Price.CumulativeGroupedBulkPrice | Price.MinimumCompositePrice;
5890
7259
  export declare namespace Price {
5891
7260
  interface UnitPrice {
5892
7261
  id: string;
@@ -5932,19 +7301,25 @@ export declare namespace Price {
5932
7301
  * @deprecated
5933
7302
  */
5934
7303
  minimum_amount: string | null;
7304
+ /**
7305
+ * The pricing model type
7306
+ */
5935
7307
  model_type: 'unit';
5936
7308
  name: string;
5937
7309
  plan_phase_order: number | null;
5938
- price_type: 'usage_price' | 'fixed_price';
7310
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
5939
7311
  /**
5940
7312
  * The price id this price replaces. This price will take the place of the replaced
5941
7313
  * price in plan version migrations.
5942
7314
  */
5943
7315
  replaces_price_id: string | null;
7316
+ /**
7317
+ * Configuration for unit pricing
7318
+ */
5944
7319
  unit_config: Shared.UnitConfig;
5945
7320
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
5946
7321
  }
5947
- interface PackagePrice {
7322
+ interface TieredPrice {
5948
7323
  id: string;
5949
7324
  billable_metric: Shared.BillableMetricTiny | null;
5950
7325
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -5988,22 +7363,32 @@ export declare namespace Price {
5988
7363
  * @deprecated
5989
7364
  */
5990
7365
  minimum_amount: string | null;
5991
- model_type: 'package';
7366
+ /**
7367
+ * The pricing model type
7368
+ */
7369
+ model_type: 'tiered';
5992
7370
  name: string;
5993
- package_config: Shared.PackageConfig;
5994
7371
  plan_phase_order: number | null;
5995
- price_type: 'usage_price' | 'fixed_price';
7372
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
5996
7373
  /**
5997
7374
  * The price id this price replaces. This price will take the place of the replaced
5998
7375
  * price in plan version migrations.
5999
7376
  */
6000
7377
  replaces_price_id: string | null;
7378
+ /**
7379
+ * Configuration for tiered pricing
7380
+ */
7381
+ tiered_config: Shared.TieredConfig;
6001
7382
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6002
7383
  }
6003
- interface MatrixPrice {
7384
+ interface BulkPrice {
6004
7385
  id: string;
6005
7386
  billable_metric: Shared.BillableMetricTiny | null;
6006
7387
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7388
+ /**
7389
+ * Configuration for bulk pricing
7390
+ */
7391
+ bulk_config: Shared.BulkConfig;
6007
7392
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6008
7393
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6009
7394
  conversion_rate: number | null;
@@ -6019,7 +7404,6 @@ export declare namespace Price {
6019
7404
  fixed_price_quantity: number | null;
6020
7405
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6021
7406
  item: Shared.ItemSlim;
6022
- matrix_config: Shared.MatrixConfig;
6023
7407
  /**
6024
7408
  * @deprecated
6025
7409
  */
@@ -6045,10 +7429,13 @@ export declare namespace Price {
6045
7429
  * @deprecated
6046
7430
  */
6047
7431
  minimum_amount: string | null;
6048
- model_type: 'matrix';
7432
+ /**
7433
+ * The pricing model type
7434
+ */
7435
+ model_type: 'bulk';
6049
7436
  name: string;
6050
7437
  plan_phase_order: number | null;
6051
- price_type: 'usage_price' | 'fixed_price';
7438
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6052
7439
  /**
6053
7440
  * The price id this price replaces. This price will take the place of the replaced
6054
7441
  * price in plan version migrations.
@@ -6056,7 +7443,7 @@ export declare namespace Price {
6056
7443
  replaces_price_id: string | null;
6057
7444
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6058
7445
  }
6059
- interface TieredPrice {
7446
+ interface PackagePrice {
6060
7447
  id: string;
6061
7448
  billable_metric: Shared.BillableMetricTiny | null;
6062
7449
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6100,23 +7487,28 @@ export declare namespace Price {
6100
7487
  * @deprecated
6101
7488
  */
6102
7489
  minimum_amount: string | null;
6103
- model_type: 'tiered';
7490
+ /**
7491
+ * The pricing model type
7492
+ */
7493
+ model_type: 'package';
6104
7494
  name: string;
7495
+ /**
7496
+ * Configuration for package pricing
7497
+ */
7498
+ package_config: Shared.PackageConfig;
6105
7499
  plan_phase_order: number | null;
6106
- price_type: 'usage_price' | 'fixed_price';
7500
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6107
7501
  /**
6108
7502
  * The price id this price replaces. This price will take the place of the replaced
6109
7503
  * price in plan version migrations.
6110
7504
  */
6111
7505
  replaces_price_id: string | null;
6112
- tiered_config: Shared.TieredConfig;
6113
7506
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6114
7507
  }
6115
- interface BulkPrice {
7508
+ interface MatrixPrice {
6116
7509
  id: string;
6117
7510
  billable_metric: Shared.BillableMetricTiny | null;
6118
7511
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
6119
- bulk_config: Shared.BulkConfig;
6120
7512
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6121
7513
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6122
7514
  conversion_rate: number | null;
@@ -6132,6 +7524,10 @@ export declare namespace Price {
6132
7524
  fixed_price_quantity: number | null;
6133
7525
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6134
7526
  item: Shared.ItemSlim;
7527
+ /**
7528
+ * Configuration for matrix pricing
7529
+ */
7530
+ matrix_config: Shared.MatrixConfig;
6135
7531
  /**
6136
7532
  * @deprecated
6137
7533
  */
@@ -6157,10 +7553,13 @@ export declare namespace Price {
6157
7553
  * @deprecated
6158
7554
  */
6159
7555
  minimum_amount: string | null;
6160
- model_type: 'bulk';
7556
+ /**
7557
+ * The pricing model type
7558
+ */
7559
+ model_type: 'matrix';
6161
7560
  name: string;
6162
7561
  plan_phase_order: number | null;
6163
- price_type: 'usage_price' | 'fixed_price';
7562
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6164
7563
  /**
6165
7564
  * The price id this price replaces. This price will take the place of the replaced
6166
7565
  * price in plan version migrations.
@@ -6212,20 +7611,55 @@ export declare namespace Price {
6212
7611
  * @deprecated
6213
7612
  */
6214
7613
  minimum_amount: string | null;
7614
+ /**
7615
+ * The pricing model type
7616
+ */
6215
7617
  model_type: 'threshold_total_amount';
6216
7618
  name: string;
6217
7619
  plan_phase_order: number | null;
6218
- price_type: 'usage_price' | 'fixed_price';
7620
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6219
7621
  /**
6220
7622
  * The price id this price replaces. This price will take the place of the replaced
6221
7623
  * price in plan version migrations.
6222
7624
  */
6223
7625
  replaces_price_id: string | null;
6224
- threshold_total_amount_config: {
6225
- [key: string]: unknown;
6226
- };
7626
+ /**
7627
+ * Configuration for threshold_total_amount pricing
7628
+ */
7629
+ threshold_total_amount_config: ThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
6227
7630
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6228
7631
  }
7632
+ namespace ThresholdTotalAmountPrice {
7633
+ /**
7634
+ * Configuration for threshold_total_amount pricing
7635
+ */
7636
+ interface ThresholdTotalAmountConfig {
7637
+ /**
7638
+ * When the quantity consumed passes a provided threshold, the configured total
7639
+ * will be charged
7640
+ */
7641
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
7642
+ /**
7643
+ * If true, the unit price will be prorated to the billing period
7644
+ */
7645
+ prorate?: boolean | null;
7646
+ }
7647
+ namespace ThresholdTotalAmountConfig {
7648
+ /**
7649
+ * Configuration for a single threshold
7650
+ */
7651
+ interface ConsumptionTable {
7652
+ /**
7653
+ * Quantity threshold
7654
+ */
7655
+ threshold: string;
7656
+ /**
7657
+ * Total amount for this threshold
7658
+ */
7659
+ total_amount: string;
7660
+ }
7661
+ }
7662
+ }
6229
7663
  interface TieredPackagePrice {
6230
7664
  id: string;
6231
7665
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6270,21 +7704,58 @@ export declare namespace Price {
6270
7704
  * @deprecated
6271
7705
  */
6272
7706
  minimum_amount: string | null;
7707
+ /**
7708
+ * The pricing model type
7709
+ */
6273
7710
  model_type: 'tiered_package';
6274
7711
  name: string;
6275
7712
  plan_phase_order: number | null;
6276
- price_type: 'usage_price' | 'fixed_price';
7713
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6277
7714
  /**
6278
7715
  * The price id this price replaces. This price will take the place of the replaced
6279
7716
  * price in plan version migrations.
6280
7717
  */
6281
7718
  replaces_price_id: string | null;
6282
- tiered_package_config: {
6283
- [key: string]: unknown;
6284
- };
7719
+ /**
7720
+ * Configuration for tiered_package pricing
7721
+ */
7722
+ tiered_package_config: TieredPackagePrice.TieredPackageConfig;
6285
7723
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6286
7724
  }
6287
- interface GroupedTieredPrice {
7725
+ namespace TieredPackagePrice {
7726
+ /**
7727
+ * Configuration for tiered_package pricing
7728
+ */
7729
+ interface TieredPackageConfig {
7730
+ /**
7731
+ * Package size
7732
+ */
7733
+ package_size: string;
7734
+ /**
7735
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7736
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
7737
+ * the total quantity rather than the number of packages, so they must be multiples
7738
+ * of the package size.
7739
+ */
7740
+ tiers: Array<TieredPackageConfig.Tier>;
7741
+ }
7742
+ namespace TieredPackageConfig {
7743
+ /**
7744
+ * Configuration for a single tier with business logic
7745
+ */
7746
+ interface Tier {
7747
+ /**
7748
+ * Price per package
7749
+ */
7750
+ per_unit: string;
7751
+ /**
7752
+ * Tier lower bound
7753
+ */
7754
+ tier_lower_bound: string;
7755
+ }
7756
+ }
7757
+ }
7758
+ interface TieredWithMinimumPrice {
6288
7759
  id: string;
6289
7760
  billable_metric: Shared.BillableMetricTiny | null;
6290
7761
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6301,9 +7772,6 @@ export declare namespace Price {
6301
7772
  discount: Shared.Discount | null;
6302
7773
  external_price_id: string | null;
6303
7774
  fixed_price_quantity: number | null;
6304
- grouped_tiered_config: {
6305
- [key: string]: unknown;
6306
- };
6307
7775
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6308
7776
  item: Shared.ItemSlim;
6309
7777
  /**
@@ -6331,18 +7799,64 @@ export declare namespace Price {
6331
7799
  * @deprecated
6332
7800
  */
6333
7801
  minimum_amount: string | null;
6334
- model_type: 'grouped_tiered';
7802
+ /**
7803
+ * The pricing model type
7804
+ */
7805
+ model_type: 'tiered_with_minimum';
6335
7806
  name: string;
6336
7807
  plan_phase_order: number | null;
6337
- price_type: 'usage_price' | 'fixed_price';
7808
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6338
7809
  /**
6339
7810
  * The price id this price replaces. This price will take the place of the replaced
6340
7811
  * price in plan version migrations.
6341
7812
  */
6342
7813
  replaces_price_id: string | null;
7814
+ /**
7815
+ * Configuration for tiered_with_minimum pricing
7816
+ */
7817
+ tiered_with_minimum_config: TieredWithMinimumPrice.TieredWithMinimumConfig;
6343
7818
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6344
7819
  }
6345
- interface TieredWithMinimumPrice {
7820
+ namespace TieredWithMinimumPrice {
7821
+ /**
7822
+ * Configuration for tiered_with_minimum pricing
7823
+ */
7824
+ interface TieredWithMinimumConfig {
7825
+ /**
7826
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
7827
+ * defined using exclusive lower bounds.
7828
+ */
7829
+ tiers: Array<TieredWithMinimumConfig.Tier>;
7830
+ /**
7831
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
7832
+ */
7833
+ hide_zero_amount_tiers?: boolean;
7834
+ /**
7835
+ * If true, the unit price will be prorated to the billing period
7836
+ */
7837
+ prorate?: boolean;
7838
+ }
7839
+ namespace TieredWithMinimumConfig {
7840
+ /**
7841
+ * Configuration for a single tier
7842
+ */
7843
+ interface Tier {
7844
+ /**
7845
+ * Minimum amount
7846
+ */
7847
+ minimum_amount: string;
7848
+ /**
7849
+ * Tier lower bound
7850
+ */
7851
+ tier_lower_bound: string;
7852
+ /**
7853
+ * Per unit amount
7854
+ */
7855
+ unit_amount: string;
7856
+ }
7857
+ }
7858
+ }
7859
+ interface GroupedTieredPrice {
6346
7860
  id: string;
6347
7861
  billable_metric: Shared.BillableMetricTiny | null;
6348
7862
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6359,6 +7873,10 @@ export declare namespace Price {
6359
7873
  discount: Shared.Discount | null;
6360
7874
  external_price_id: string | null;
6361
7875
  fixed_price_quantity: number | null;
7876
+ /**
7877
+ * Configuration for grouped_tiered pricing
7878
+ */
7879
+ grouped_tiered_config: GroupedTieredPrice.GroupedTieredConfig;
6362
7880
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6363
7881
  item: Shared.ItemSlim;
6364
7882
  /**
@@ -6386,20 +7904,51 @@ export declare namespace Price {
6386
7904
  * @deprecated
6387
7905
  */
6388
7906
  minimum_amount: string | null;
6389
- model_type: 'tiered_with_minimum';
7907
+ /**
7908
+ * The pricing model type
7909
+ */
7910
+ model_type: 'grouped_tiered';
6390
7911
  name: string;
6391
7912
  plan_phase_order: number | null;
6392
- price_type: 'usage_price' | 'fixed_price';
7913
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6393
7914
  /**
6394
7915
  * The price id this price replaces. This price will take the place of the replaced
6395
7916
  * price in plan version migrations.
6396
7917
  */
6397
7918
  replaces_price_id: string | null;
6398
- tiered_with_minimum_config: {
6399
- [key: string]: unknown;
6400
- };
6401
7919
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6402
7920
  }
7921
+ namespace GroupedTieredPrice {
7922
+ /**
7923
+ * Configuration for grouped_tiered pricing
7924
+ */
7925
+ interface GroupedTieredConfig {
7926
+ /**
7927
+ * The billable metric property used to group before tiering
7928
+ */
7929
+ grouping_key: string;
7930
+ /**
7931
+ * Apply tiered pricing to each segment generated after grouping with the provided
7932
+ * key
7933
+ */
7934
+ tiers: Array<GroupedTieredConfig.Tier>;
7935
+ }
7936
+ namespace GroupedTieredConfig {
7937
+ /**
7938
+ * Configuration for a single tier
7939
+ */
7940
+ interface Tier {
7941
+ /**
7942
+ * Tier lower bound
7943
+ */
7944
+ tier_lower_bound: string;
7945
+ /**
7946
+ * Per unit amount
7947
+ */
7948
+ unit_amount: string;
7949
+ }
7950
+ }
7951
+ }
6403
7952
  interface TieredPackageWithMinimumPrice {
6404
7953
  id: string;
6405
7954
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6444,20 +7993,59 @@ export declare namespace Price {
6444
7993
  * @deprecated
6445
7994
  */
6446
7995
  minimum_amount: string | null;
7996
+ /**
7997
+ * The pricing model type
7998
+ */
6447
7999
  model_type: 'tiered_package_with_minimum';
6448
8000
  name: string;
6449
8001
  plan_phase_order: number | null;
6450
- price_type: 'usage_price' | 'fixed_price';
8002
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6451
8003
  /**
6452
8004
  * The price id this price replaces. This price will take the place of the replaced
6453
8005
  * price in plan version migrations.
6454
8006
  */
6455
8007
  replaces_price_id: string | null;
6456
- tiered_package_with_minimum_config: {
6457
- [key: string]: unknown;
6458
- };
8008
+ /**
8009
+ * Configuration for tiered_package_with_minimum pricing
8010
+ */
8011
+ tiered_package_with_minimum_config: TieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
6459
8012
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6460
8013
  }
8014
+ namespace TieredPackageWithMinimumPrice {
8015
+ /**
8016
+ * Configuration for tiered_package_with_minimum pricing
8017
+ */
8018
+ interface TieredPackageWithMinimumConfig {
8019
+ /**
8020
+ * Package size
8021
+ */
8022
+ package_size: number;
8023
+ /**
8024
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
8025
+ * are defined using exclusive lower bounds.
8026
+ */
8027
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
8028
+ }
8029
+ namespace TieredPackageWithMinimumConfig {
8030
+ /**
8031
+ * Configuration for a single tier
8032
+ */
8033
+ interface Tier {
8034
+ /**
8035
+ * Minimum amount
8036
+ */
8037
+ minimum_amount: string;
8038
+ /**
8039
+ * Price per package
8040
+ */
8041
+ per_unit: string;
8042
+ /**
8043
+ * Tier lower bound
8044
+ */
8045
+ tier_lower_bound: string;
8046
+ }
8047
+ }
8048
+ }
6461
8049
  interface PackageWithAllocationPrice {
6462
8050
  id: string;
6463
8051
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6502,13 +8090,17 @@ export declare namespace Price {
6502
8090
  * @deprecated
6503
8091
  */
6504
8092
  minimum_amount: string | null;
8093
+ /**
8094
+ * The pricing model type
8095
+ */
6505
8096
  model_type: 'package_with_allocation';
6506
8097
  name: string;
6507
- package_with_allocation_config: {
6508
- [key: string]: unknown;
6509
- };
8098
+ /**
8099
+ * Configuration for package_with_allocation pricing
8100
+ */
8101
+ package_with_allocation_config: PackageWithAllocationPrice.PackageWithAllocationConfig;
6510
8102
  plan_phase_order: number | null;
6511
- price_type: 'usage_price' | 'fixed_price';
8103
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6512
8104
  /**
6513
8105
  * The price id this price replaces. This price will take the place of the replaced
6514
8106
  * price in plan version migrations.
@@ -6516,6 +8108,25 @@ export declare namespace Price {
6516
8108
  replaces_price_id: string | null;
6517
8109
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6518
8110
  }
8111
+ namespace PackageWithAllocationPrice {
8112
+ /**
8113
+ * Configuration for package_with_allocation pricing
8114
+ */
8115
+ interface PackageWithAllocationConfig {
8116
+ /**
8117
+ * Usage allocation
8118
+ */
8119
+ allocation: string;
8120
+ /**
8121
+ * Price per package
8122
+ */
8123
+ package_amount: string;
8124
+ /**
8125
+ * Package size
8126
+ */
8127
+ package_size: string;
8128
+ }
8129
+ }
6519
8130
  interface UnitWithPercentPrice {
6520
8131
  id: string;
6521
8132
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6560,20 +8171,39 @@ export declare namespace Price {
6560
8171
  * @deprecated
6561
8172
  */
6562
8173
  minimum_amount: string | null;
8174
+ /**
8175
+ * The pricing model type
8176
+ */
6563
8177
  model_type: 'unit_with_percent';
6564
8178
  name: string;
6565
8179
  plan_phase_order: number | null;
6566
- price_type: 'usage_price' | 'fixed_price';
8180
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6567
8181
  /**
6568
8182
  * The price id this price replaces. This price will take the place of the replaced
6569
8183
  * price in plan version migrations.
6570
8184
  */
6571
8185
  replaces_price_id: string | null;
6572
- unit_with_percent_config: {
6573
- [key: string]: unknown;
6574
- };
8186
+ /**
8187
+ * Configuration for unit_with_percent pricing
8188
+ */
8189
+ unit_with_percent_config: UnitWithPercentPrice.UnitWithPercentConfig;
6575
8190
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6576
8191
  }
8192
+ namespace UnitWithPercentPrice {
8193
+ /**
8194
+ * Configuration for unit_with_percent pricing
8195
+ */
8196
+ interface UnitWithPercentConfig {
8197
+ /**
8198
+ * What percent, out of 100, of the calculated total to charge
8199
+ */
8200
+ percent: string;
8201
+ /**
8202
+ * Rate per unit of usage
8203
+ */
8204
+ unit_amount: string;
8205
+ }
8206
+ }
6577
8207
  interface MatrixWithAllocationPrice {
6578
8208
  id: string;
6579
8209
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6593,6 +8223,9 @@ export declare namespace Price {
6593
8223
  fixed_price_quantity: number | null;
6594
8224
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6595
8225
  item: Shared.ItemSlim;
8226
+ /**
8227
+ * Configuration for matrix_with_allocation pricing
8228
+ */
6596
8229
  matrix_with_allocation_config: Shared.MatrixWithAllocationConfig;
6597
8230
  /**
6598
8231
  * @deprecated
@@ -6619,10 +8252,13 @@ export declare namespace Price {
6619
8252
  * @deprecated
6620
8253
  */
6621
8254
  minimum_amount: string | null;
8255
+ /**
8256
+ * The pricing model type
8257
+ */
6622
8258
  model_type: 'matrix_with_allocation';
6623
8259
  name: string;
6624
8260
  plan_phase_order: number | null;
6625
- price_type: 'usage_price' | 'fixed_price';
8261
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6626
8262
  /**
6627
8263
  * The price id this price replaces. This price will take the place of the replaced
6628
8264
  * price in plan version migrations.
@@ -6674,20 +8310,51 @@ export declare namespace Price {
6674
8310
  * @deprecated
6675
8311
  */
6676
8312
  minimum_amount: string | null;
8313
+ /**
8314
+ * The pricing model type
8315
+ */
6677
8316
  model_type: 'tiered_with_proration';
6678
8317
  name: string;
6679
8318
  plan_phase_order: number | null;
6680
- price_type: 'usage_price' | 'fixed_price';
8319
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6681
8320
  /**
6682
8321
  * The price id this price replaces. This price will take the place of the replaced
6683
8322
  * price in plan version migrations.
6684
8323
  */
6685
8324
  replaces_price_id: string | null;
6686
- tiered_with_proration_config: {
6687
- [key: string]: unknown;
6688
- };
8325
+ /**
8326
+ * Configuration for tiered_with_proration pricing
8327
+ */
8328
+ tiered_with_proration_config: TieredWithProrationPrice.TieredWithProrationConfig;
6689
8329
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6690
8330
  }
8331
+ namespace TieredWithProrationPrice {
8332
+ /**
8333
+ * Configuration for tiered_with_proration pricing
8334
+ */
8335
+ interface TieredWithProrationConfig {
8336
+ /**
8337
+ * Tiers for rating based on total usage quantities into the specified tier with
8338
+ * proration
8339
+ */
8340
+ tiers: Array<TieredWithProrationConfig.Tier>;
8341
+ }
8342
+ namespace TieredWithProrationConfig {
8343
+ /**
8344
+ * Configuration for a single tiered with proration tier
8345
+ */
8346
+ interface Tier {
8347
+ /**
8348
+ * Inclusive tier starting value
8349
+ */
8350
+ tier_lower_bound: string;
8351
+ /**
8352
+ * Amount per unit
8353
+ */
8354
+ unit_amount: string;
8355
+ }
8356
+ }
8357
+ }
6691
8358
  interface UnitWithProrationPrice {
6692
8359
  id: string;
6693
8360
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6732,20 +8399,35 @@ export declare namespace Price {
6732
8399
  * @deprecated
6733
8400
  */
6734
8401
  minimum_amount: string | null;
8402
+ /**
8403
+ * The pricing model type
8404
+ */
6735
8405
  model_type: 'unit_with_proration';
6736
8406
  name: string;
6737
8407
  plan_phase_order: number | null;
6738
- price_type: 'usage_price' | 'fixed_price';
8408
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6739
8409
  /**
6740
8410
  * The price id this price replaces. This price will take the place of the replaced
6741
8411
  * price in plan version migrations.
6742
8412
  */
6743
8413
  replaces_price_id: string | null;
6744
- unit_with_proration_config: {
6745
- [key: string]: unknown;
6746
- };
8414
+ /**
8415
+ * Configuration for unit_with_proration pricing
8416
+ */
8417
+ unit_with_proration_config: UnitWithProrationPrice.UnitWithProrationConfig;
6747
8418
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6748
8419
  }
8420
+ namespace UnitWithProrationPrice {
8421
+ /**
8422
+ * Configuration for unit_with_proration pricing
8423
+ */
8424
+ interface UnitWithProrationConfig {
8425
+ /**
8426
+ * Rate per unit of usage
8427
+ */
8428
+ unit_amount: string;
8429
+ }
8430
+ }
6749
8431
  interface GroupedAllocationPrice {
6750
8432
  id: string;
6751
8433
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6763,9 +8445,10 @@ export declare namespace Price {
6763
8445
  discount: Shared.Discount | null;
6764
8446
  external_price_id: string | null;
6765
8447
  fixed_price_quantity: number | null;
6766
- grouped_allocation_config: {
6767
- [key: string]: unknown;
6768
- };
8448
+ /**
8449
+ * Configuration for grouped_allocation pricing
8450
+ */
8451
+ grouped_allocation_config: GroupedAllocationPrice.GroupedAllocationConfig;
6769
8452
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6770
8453
  item: Shared.ItemSlim;
6771
8454
  /**
@@ -6793,10 +8476,13 @@ export declare namespace Price {
6793
8476
  * @deprecated
6794
8477
  */
6795
8478
  minimum_amount: string | null;
8479
+ /**
8480
+ * The pricing model type
8481
+ */
6796
8482
  model_type: 'grouped_allocation';
6797
8483
  name: string;
6798
8484
  plan_phase_order: number | null;
6799
- price_type: 'usage_price' | 'fixed_price';
8485
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6800
8486
  /**
6801
8487
  * The price id this price replaces. This price will take the place of the replaced
6802
8488
  * price in plan version migrations.
@@ -6804,10 +8490,33 @@ export declare namespace Price {
6804
8490
  replaces_price_id: string | null;
6805
8491
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6806
8492
  }
6807
- interface GroupedWithProratedMinimumPrice {
8493
+ namespace GroupedAllocationPrice {
8494
+ /**
8495
+ * Configuration for grouped_allocation pricing
8496
+ */
8497
+ interface GroupedAllocationConfig {
8498
+ /**
8499
+ * Usage allocation per group
8500
+ */
8501
+ allocation: string;
8502
+ /**
8503
+ * How to determine the groups that should each be allocated some quantity
8504
+ */
8505
+ grouping_key: string;
8506
+ /**
8507
+ * Unit rate for post-allocation
8508
+ */
8509
+ overage_unit_rate: string;
8510
+ }
8511
+ }
8512
+ interface BulkWithProrationPrice {
6808
8513
  id: string;
6809
8514
  billable_metric: Shared.BillableMetricTiny | null;
6810
8515
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8516
+ /**
8517
+ * Configuration for bulk_with_proration pricing
8518
+ */
8519
+ bulk_with_proration_config: BulkWithProrationPrice.BulkWithProrationConfig;
6811
8520
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6812
8521
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6813
8522
  conversion_rate: number | null;
@@ -6821,9 +8530,6 @@ export declare namespace Price {
6821
8530
  discount: Shared.Discount | null;
6822
8531
  external_price_id: string | null;
6823
8532
  fixed_price_quantity: number | null;
6824
- grouped_with_prorated_minimum_config: {
6825
- [key: string]: unknown;
6826
- };
6827
8533
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6828
8534
  item: Shared.ItemSlim;
6829
8535
  /**
@@ -6851,10 +8557,13 @@ export declare namespace Price {
6851
8557
  * @deprecated
6852
8558
  */
6853
8559
  minimum_amount: string | null;
6854
- model_type: 'grouped_with_prorated_minimum';
8560
+ /**
8561
+ * The pricing model type
8562
+ */
8563
+ model_type: 'bulk_with_proration';
6855
8564
  name: string;
6856
8565
  plan_phase_order: number | null;
6857
- price_type: 'usage_price' | 'fixed_price';
8566
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6858
8567
  /**
6859
8568
  * The price id this price replaces. This price will take the place of the replaced
6860
8569
  * price in plan version migrations.
@@ -6862,7 +8571,33 @@ export declare namespace Price {
6862
8571
  replaces_price_id: string | null;
6863
8572
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6864
8573
  }
6865
- interface GroupedWithMeteredMinimumPrice {
8574
+ namespace BulkWithProrationPrice {
8575
+ /**
8576
+ * Configuration for bulk_with_proration pricing
8577
+ */
8578
+ interface BulkWithProrationConfig {
8579
+ /**
8580
+ * Bulk tiers for rating based on total usage volume
8581
+ */
8582
+ tiers: Array<BulkWithProrationConfig.Tier>;
8583
+ }
8584
+ namespace BulkWithProrationConfig {
8585
+ /**
8586
+ * Configuration for a single bulk pricing tier with proration
8587
+ */
8588
+ interface Tier {
8589
+ /**
8590
+ * Cost per unit
8591
+ */
8592
+ unit_amount: string;
8593
+ /**
8594
+ * The lower bound for this tier
8595
+ */
8596
+ tier_lower_bound?: string | null;
8597
+ }
8598
+ }
8599
+ }
8600
+ interface GroupedWithProratedMinimumPrice {
6866
8601
  id: string;
6867
8602
  billable_metric: Shared.BillableMetricTiny | null;
6868
8603
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6879,9 +8614,10 @@ export declare namespace Price {
6879
8614
  discount: Shared.Discount | null;
6880
8615
  external_price_id: string | null;
6881
8616
  fixed_price_quantity: number | null;
6882
- grouped_with_metered_minimum_config: {
6883
- [key: string]: unknown;
6884
- };
8617
+ /**
8618
+ * Configuration for grouped_with_prorated_minimum pricing
8619
+ */
8620
+ grouped_with_prorated_minimum_config: GroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
6885
8621
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6886
8622
  item: Shared.ItemSlim;
6887
8623
  /**
@@ -6909,10 +8645,13 @@ export declare namespace Price {
6909
8645
  * @deprecated
6910
8646
  */
6911
8647
  minimum_amount: string | null;
6912
- model_type: 'grouped_with_metered_minimum';
8648
+ /**
8649
+ * The pricing model type
8650
+ */
8651
+ model_type: 'grouped_with_prorated_minimum';
6913
8652
  name: string;
6914
8653
  plan_phase_order: number | null;
6915
- price_type: 'usage_price' | 'fixed_price';
8654
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6916
8655
  /**
6917
8656
  * The price id this price replaces. This price will take the place of the replaced
6918
8657
  * price in plan version migrations.
@@ -6920,7 +8659,26 @@ export declare namespace Price {
6920
8659
  replaces_price_id: string | null;
6921
8660
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6922
8661
  }
6923
- interface MatrixWithDisplayNamePrice {
8662
+ namespace GroupedWithProratedMinimumPrice {
8663
+ /**
8664
+ * Configuration for grouped_with_prorated_minimum pricing
8665
+ */
8666
+ interface GroupedWithProratedMinimumConfig {
8667
+ /**
8668
+ * How to determine the groups that should each have a minimum
8669
+ */
8670
+ grouping_key: string;
8671
+ /**
8672
+ * The minimum amount to charge per group
8673
+ */
8674
+ minimum: string;
8675
+ /**
8676
+ * The amount to charge per unit
8677
+ */
8678
+ unit_rate: string;
8679
+ }
8680
+ }
8681
+ interface GroupedWithMeteredMinimumPrice {
6924
8682
  id: string;
6925
8683
  billable_metric: Shared.BillableMetricTiny | null;
6926
8684
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6937,11 +8695,12 @@ export declare namespace Price {
6937
8695
  discount: Shared.Discount | null;
6938
8696
  external_price_id: string | null;
6939
8697
  fixed_price_quantity: number | null;
8698
+ /**
8699
+ * Configuration for grouped_with_metered_minimum pricing
8700
+ */
8701
+ grouped_with_metered_minimum_config: GroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
6940
8702
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6941
8703
  item: Shared.ItemSlim;
6942
- matrix_with_display_name_config: {
6943
- [key: string]: unknown;
6944
- };
6945
8704
  /**
6946
8705
  * @deprecated
6947
8706
  */
@@ -6967,10 +8726,13 @@ export declare namespace Price {
6967
8726
  * @deprecated
6968
8727
  */
6969
8728
  minimum_amount: string | null;
6970
- model_type: 'matrix_with_display_name';
8729
+ /**
8730
+ * The pricing model type
8731
+ */
8732
+ model_type: 'grouped_with_metered_minimum';
6971
8733
  name: string;
6972
8734
  plan_phase_order: number | null;
6973
- price_type: 'usage_price' | 'fixed_price';
8735
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6974
8736
  /**
6975
8737
  * The price id this price replaces. This price will take the place of the replaced
6976
8738
  * price in plan version migrations.
@@ -6978,13 +8740,71 @@ export declare namespace Price {
6978
8740
  replaces_price_id: string | null;
6979
8741
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6980
8742
  }
6981
- interface BulkWithProrationPrice {
8743
+ namespace GroupedWithMeteredMinimumPrice {
8744
+ /**
8745
+ * Configuration for grouped_with_metered_minimum pricing
8746
+ */
8747
+ interface GroupedWithMeteredMinimumConfig {
8748
+ /**
8749
+ * Used to partition the usage into groups. The minimum amount is applied to each
8750
+ * group.
8751
+ */
8752
+ grouping_key: string;
8753
+ /**
8754
+ * The minimum amount to charge per group per unit
8755
+ */
8756
+ minimum_unit_amount: string;
8757
+ /**
8758
+ * Used to determine the unit rate
8759
+ */
8760
+ pricing_key: string;
8761
+ /**
8762
+ * Scale the unit rates by the scaling factor.
8763
+ */
8764
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
8765
+ /**
8766
+ * Used to determine the unit rate scaling factor
8767
+ */
8768
+ scaling_key: string;
8769
+ /**
8770
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
8771
+ * unmatched usage.
8772
+ */
8773
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
8774
+ }
8775
+ namespace GroupedWithMeteredMinimumConfig {
8776
+ /**
8777
+ * Configuration for a scaling factor
8778
+ */
8779
+ interface ScalingFactor {
8780
+ /**
8781
+ * Scaling factor
8782
+ */
8783
+ scaling_factor: string;
8784
+ /**
8785
+ * Scaling value
8786
+ */
8787
+ scaling_value: string;
8788
+ }
8789
+ /**
8790
+ * Configuration for a unit amount
8791
+ */
8792
+ interface UnitAmount {
8793
+ /**
8794
+ * Pricing value
8795
+ */
8796
+ pricing_value: string;
8797
+ /**
8798
+ * Per unit amount
8799
+ */
8800
+ unit_amount: string;
8801
+ }
8802
+ }
8803
+ }
8804
+ interface GroupedWithMinMaxThresholdsPrice {
6982
8805
  id: string;
6983
8806
  billable_metric: Shared.BillableMetricTiny | null;
6984
8807
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
6985
- bulk_with_proration_config: {
6986
- [key: string]: unknown;
6987
- };
6988
8808
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6989
8809
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6990
8810
  conversion_rate: number | null;
@@ -6998,6 +8818,10 @@ export declare namespace Price {
6998
8818
  discount: Shared.Discount | null;
6999
8819
  external_price_id: string | null;
7000
8820
  fixed_price_quantity: number | null;
8821
+ /**
8822
+ * Configuration for grouped_with_min_max_thresholds pricing
8823
+ */
8824
+ grouped_with_min_max_thresholds_config: GroupedWithMinMaxThresholdsPrice.GroupedWithMinMaxThresholdsConfig;
7001
8825
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7002
8826
  item: Shared.ItemSlim;
7003
8827
  /**
@@ -7025,10 +8849,13 @@ export declare namespace Price {
7025
8849
  * @deprecated
7026
8850
  */
7027
8851
  minimum_amount: string | null;
7028
- model_type: 'bulk_with_proration';
8852
+ /**
8853
+ * The pricing model type
8854
+ */
8855
+ model_type: 'grouped_with_min_max_thresholds';
7029
8856
  name: string;
7030
8857
  plan_phase_order: number | null;
7031
- price_type: 'usage_price' | 'fixed_price';
8858
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7032
8859
  /**
7033
8860
  * The price id this price replaces. This price will take the place of the replaced
7034
8861
  * price in plan version migrations.
@@ -7036,7 +8863,30 @@ export declare namespace Price {
7036
8863
  replaces_price_id: string | null;
7037
8864
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7038
8865
  }
7039
- interface GroupedTieredPackagePrice {
8866
+ namespace GroupedWithMinMaxThresholdsPrice {
8867
+ /**
8868
+ * Configuration for grouped_with_min_max_thresholds pricing
8869
+ */
8870
+ interface GroupedWithMinMaxThresholdsConfig {
8871
+ /**
8872
+ * The event property used to group before applying thresholds
8873
+ */
8874
+ grouping_key: string;
8875
+ /**
8876
+ * The maximum amount to charge each group
8877
+ */
8878
+ maximum_charge: string;
8879
+ /**
8880
+ * The minimum amount to charge each group, regardless of usage
8881
+ */
8882
+ minimum_charge: string;
8883
+ /**
8884
+ * The base price charged per group
8885
+ */
8886
+ per_unit_rate: string;
8887
+ }
8888
+ }
8889
+ interface MatrixWithDisplayNamePrice {
7040
8890
  id: string;
7041
8891
  billable_metric: Shared.BillableMetricTiny | null;
7042
8892
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7053,11 +8903,12 @@ export declare namespace Price {
7053
8903
  discount: Shared.Discount | null;
7054
8904
  external_price_id: string | null;
7055
8905
  fixed_price_quantity: number | null;
7056
- grouped_tiered_package_config: {
7057
- [key: string]: unknown;
7058
- };
7059
8906
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7060
8907
  item: Shared.ItemSlim;
8908
+ /**
8909
+ * Configuration for matrix_with_display_name pricing
8910
+ */
8911
+ matrix_with_display_name_config: MatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
7061
8912
  /**
7062
8913
  * @deprecated
7063
8914
  */
@@ -7083,10 +8934,13 @@ export declare namespace Price {
7083
8934
  * @deprecated
7084
8935
  */
7085
8936
  minimum_amount: string | null;
7086
- model_type: 'grouped_tiered_package';
8937
+ /**
8938
+ * The pricing model type
8939
+ */
8940
+ model_type: 'matrix_with_display_name';
7087
8941
  name: string;
7088
8942
  plan_phase_order: number | null;
7089
- price_type: 'usage_price' | 'fixed_price';
8943
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7090
8944
  /**
7091
8945
  * The price id this price replaces. This price will take the place of the replaced
7092
8946
  * price in plan version migrations.
@@ -7094,7 +8948,41 @@ export declare namespace Price {
7094
8948
  replaces_price_id: string | null;
7095
8949
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7096
8950
  }
7097
- interface MaxGroupTieredPackagePrice {
8951
+ namespace MatrixWithDisplayNamePrice {
8952
+ /**
8953
+ * Configuration for matrix_with_display_name pricing
8954
+ */
8955
+ interface MatrixWithDisplayNameConfig {
8956
+ /**
8957
+ * Used to determine the unit rate
8958
+ */
8959
+ dimension: string;
8960
+ /**
8961
+ * Apply per unit pricing to each dimension value
8962
+ */
8963
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
8964
+ }
8965
+ namespace MatrixWithDisplayNameConfig {
8966
+ /**
8967
+ * Configuration for a unit amount item
8968
+ */
8969
+ interface UnitAmount {
8970
+ /**
8971
+ * The dimension value
8972
+ */
8973
+ dimension_value: string;
8974
+ /**
8975
+ * Display name for this dimension value
8976
+ */
8977
+ display_name: string;
8978
+ /**
8979
+ * Per unit amount
8980
+ */
8981
+ unit_amount: string;
8982
+ }
8983
+ }
8984
+ }
8985
+ interface GroupedTieredPackagePrice {
7098
8986
  id: string;
7099
8987
  billable_metric: Shared.BillableMetricTiny | null;
7100
8988
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7111,11 +8999,12 @@ export declare namespace Price {
7111
8999
  discount: Shared.Discount | null;
7112
9000
  external_price_id: string | null;
7113
9001
  fixed_price_quantity: number | null;
9002
+ /**
9003
+ * Configuration for grouped_tiered_package pricing
9004
+ */
9005
+ grouped_tiered_package_config: GroupedTieredPackagePrice.GroupedTieredPackageConfig;
7114
9006
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7115
9007
  item: Shared.ItemSlim;
7116
- max_group_tiered_package_config: {
7117
- [key: string]: unknown;
7118
- };
7119
9008
  /**
7120
9009
  * @deprecated
7121
9010
  */
@@ -7141,10 +9030,13 @@ export declare namespace Price {
7141
9030
  * @deprecated
7142
9031
  */
7143
9032
  minimum_amount: string | null;
7144
- model_type: 'max_group_tiered_package';
9033
+ /**
9034
+ * The pricing model type
9035
+ */
9036
+ model_type: 'grouped_tiered_package';
7145
9037
  name: string;
7146
9038
  plan_phase_order: number | null;
7147
- price_type: 'usage_price' | 'fixed_price';
9039
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7148
9040
  /**
7149
9041
  * The price id this price replaces. This price will take the place of the replaced
7150
9042
  * price in plan version migrations.
@@ -7152,7 +9044,42 @@ export declare namespace Price {
7152
9044
  replaces_price_id: string | null;
7153
9045
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7154
9046
  }
7155
- interface ScalableMatrixWithUnitPricingPrice {
9047
+ namespace GroupedTieredPackagePrice {
9048
+ /**
9049
+ * Configuration for grouped_tiered_package pricing
9050
+ */
9051
+ interface GroupedTieredPackageConfig {
9052
+ /**
9053
+ * The event property used to group before tiering
9054
+ */
9055
+ grouping_key: string;
9056
+ /**
9057
+ * Package size
9058
+ */
9059
+ package_size: string;
9060
+ /**
9061
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9062
+ * are defined using exclusive lower bounds.
9063
+ */
9064
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
9065
+ }
9066
+ namespace GroupedTieredPackageConfig {
9067
+ /**
9068
+ * Configuration for a single tier
9069
+ */
9070
+ interface Tier {
9071
+ /**
9072
+ * Price per package
9073
+ */
9074
+ per_unit: string;
9075
+ /**
9076
+ * Tier lower bound
9077
+ */
9078
+ tier_lower_bound: string;
9079
+ }
9080
+ }
9081
+ }
9082
+ interface MaxGroupTieredPackagePrice {
7156
9083
  id: string;
7157
9084
  billable_metric: Shared.BillableMetricTiny | null;
7158
9085
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7171,6 +9098,10 @@ export declare namespace Price {
7171
9098
  fixed_price_quantity: number | null;
7172
9099
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7173
9100
  item: Shared.ItemSlim;
9101
+ /**
9102
+ * Configuration for max_group_tiered_package pricing
9103
+ */
9104
+ max_group_tiered_package_config: MaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
7174
9105
  /**
7175
9106
  * @deprecated
7176
9107
  */
@@ -7196,21 +9127,55 @@ export declare namespace Price {
7196
9127
  * @deprecated
7197
9128
  */
7198
9129
  minimum_amount: string | null;
7199
- model_type: 'scalable_matrix_with_unit_pricing';
9130
+ /**
9131
+ * The pricing model type
9132
+ */
9133
+ model_type: 'max_group_tiered_package';
7200
9134
  name: string;
7201
9135
  plan_phase_order: number | null;
7202
- price_type: 'usage_price' | 'fixed_price';
9136
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7203
9137
  /**
7204
9138
  * The price id this price replaces. This price will take the place of the replaced
7205
9139
  * price in plan version migrations.
7206
9140
  */
7207
9141
  replaces_price_id: string | null;
7208
- scalable_matrix_with_unit_pricing_config: {
7209
- [key: string]: unknown;
7210
- };
7211
9142
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7212
9143
  }
7213
- interface ScalableMatrixWithTieredPricingPrice {
9144
+ namespace MaxGroupTieredPackagePrice {
9145
+ /**
9146
+ * Configuration for max_group_tiered_package pricing
9147
+ */
9148
+ interface MaxGroupTieredPackageConfig {
9149
+ /**
9150
+ * The event property used to group before tiering the group with the highest value
9151
+ */
9152
+ grouping_key: string;
9153
+ /**
9154
+ * Package size
9155
+ */
9156
+ package_size: string;
9157
+ /**
9158
+ * Apply tiered pricing to the largest group after grouping with the provided key.
9159
+ */
9160
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
9161
+ }
9162
+ namespace MaxGroupTieredPackageConfig {
9163
+ /**
9164
+ * Configuration for a single tier
9165
+ */
9166
+ interface Tier {
9167
+ /**
9168
+ * Tier lower bound
9169
+ */
9170
+ tier_lower_bound: string;
9171
+ /**
9172
+ * Per unit amount
9173
+ */
9174
+ unit_amount: string;
9175
+ }
9176
+ }
9177
+ }
9178
+ interface ScalableMatrixWithUnitPricingPrice {
7214
9179
  id: string;
7215
9180
  billable_metric: Shared.BillableMetricTiny | null;
7216
9181
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7254,21 +9219,71 @@ export declare namespace Price {
7254
9219
  * @deprecated
7255
9220
  */
7256
9221
  minimum_amount: string | null;
7257
- model_type: 'scalable_matrix_with_tiered_pricing';
9222
+ /**
9223
+ * The pricing model type
9224
+ */
9225
+ model_type: 'scalable_matrix_with_unit_pricing';
7258
9226
  name: string;
7259
9227
  plan_phase_order: number | null;
7260
- price_type: 'usage_price' | 'fixed_price';
9228
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7261
9229
  /**
7262
9230
  * The price id this price replaces. This price will take the place of the replaced
7263
9231
  * price in plan version migrations.
7264
9232
  */
7265
9233
  replaces_price_id: string | null;
7266
- scalable_matrix_with_tiered_pricing_config: {
7267
- [key: string]: unknown;
7268
- };
9234
+ /**
9235
+ * Configuration for scalable_matrix_with_unit_pricing pricing
9236
+ */
9237
+ scalable_matrix_with_unit_pricing_config: ScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
7269
9238
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7270
9239
  }
7271
- interface CumulativeGroupedBulkPrice {
9240
+ namespace ScalableMatrixWithUnitPricingPrice {
9241
+ /**
9242
+ * Configuration for scalable_matrix_with_unit_pricing pricing
9243
+ */
9244
+ interface ScalableMatrixWithUnitPricingConfig {
9245
+ /**
9246
+ * Used to determine the unit rate
9247
+ */
9248
+ first_dimension: string;
9249
+ /**
9250
+ * Apply a scaling factor to each dimension
9251
+ */
9252
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
9253
+ /**
9254
+ * The final unit price to rate against the output of the matrix
9255
+ */
9256
+ unit_price: string;
9257
+ /**
9258
+ * If true, the unit price will be prorated to the billing period
9259
+ */
9260
+ prorate?: boolean | null;
9261
+ /**
9262
+ * Used to determine the unit rate (optional)
9263
+ */
9264
+ second_dimension?: string | null;
9265
+ }
9266
+ namespace ScalableMatrixWithUnitPricingConfig {
9267
+ /**
9268
+ * Configuration for a single matrix scaling factor
9269
+ */
9270
+ interface MatrixScalingFactor {
9271
+ /**
9272
+ * First dimension value
9273
+ */
9274
+ first_dimension_value: string;
9275
+ /**
9276
+ * Scaling factor
9277
+ */
9278
+ scaling_factor: string;
9279
+ /**
9280
+ * Second dimension value (optional)
9281
+ */
9282
+ second_dimension_value?: string | null;
9283
+ }
9284
+ }
9285
+ }
9286
+ interface ScalableMatrixWithTieredPricingPrice {
7272
9287
  id: string;
7273
9288
  billable_metric: Shared.BillableMetricTiny | null;
7274
9289
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7278,9 +9293,6 @@ export declare namespace Price {
7278
9293
  conversion_rate_config: Shared.UnitConversionRateConfig | Shared.TieredConversionRateConfig | null;
7279
9294
  created_at: string;
7280
9295
  credit_allocation: Shared.Allocation | null;
7281
- cumulative_grouped_bulk_config: {
7282
- [key: string]: unknown;
7283
- };
7284
9296
  currency: string;
7285
9297
  /**
7286
9298
  * @deprecated
@@ -7315,18 +9327,80 @@ export declare namespace Price {
7315
9327
  * @deprecated
7316
9328
  */
7317
9329
  minimum_amount: string | null;
7318
- model_type: 'cumulative_grouped_bulk';
9330
+ /**
9331
+ * The pricing model type
9332
+ */
9333
+ model_type: 'scalable_matrix_with_tiered_pricing';
7319
9334
  name: string;
7320
9335
  plan_phase_order: number | null;
7321
- price_type: 'usage_price' | 'fixed_price';
9336
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7322
9337
  /**
7323
9338
  * The price id this price replaces. This price will take the place of the replaced
7324
9339
  * price in plan version migrations.
7325
9340
  */
7326
9341
  replaces_price_id: string | null;
9342
+ /**
9343
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
9344
+ */
9345
+ scalable_matrix_with_tiered_pricing_config: ScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
7327
9346
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7328
9347
  }
7329
- interface GroupedWithMinMaxThresholdsPrice {
9348
+ namespace ScalableMatrixWithTieredPricingPrice {
9349
+ /**
9350
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
9351
+ */
9352
+ interface ScalableMatrixWithTieredPricingConfig {
9353
+ /**
9354
+ * Used for the scalable matrix first dimension
9355
+ */
9356
+ first_dimension: string;
9357
+ /**
9358
+ * Apply a scaling factor to each dimension
9359
+ */
9360
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
9361
+ /**
9362
+ * Tier pricing structure
9363
+ */
9364
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
9365
+ /**
9366
+ * Used for the scalable matrix second dimension (optional)
9367
+ */
9368
+ second_dimension?: string | null;
9369
+ }
9370
+ namespace ScalableMatrixWithTieredPricingConfig {
9371
+ /**
9372
+ * Configuration for a single matrix scaling factor
9373
+ */
9374
+ interface MatrixScalingFactor {
9375
+ /**
9376
+ * First dimension value
9377
+ */
9378
+ first_dimension_value: string;
9379
+ /**
9380
+ * Scaling factor
9381
+ */
9382
+ scaling_factor: string;
9383
+ /**
9384
+ * Second dimension value (optional)
9385
+ */
9386
+ second_dimension_value?: string | null;
9387
+ }
9388
+ /**
9389
+ * Configuration for a single tier entry with business logic
9390
+ */
9391
+ interface Tier {
9392
+ /**
9393
+ * Tier lower bound
9394
+ */
9395
+ tier_lower_bound: string;
9396
+ /**
9397
+ * Per unit amount
9398
+ */
9399
+ unit_amount: string;
9400
+ }
9401
+ }
9402
+ }
9403
+ interface CumulativeGroupedBulkPrice {
7330
9404
  id: string;
7331
9405
  billable_metric: Shared.BillableMetricTiny | null;
7332
9406
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7336,6 +9410,10 @@ export declare namespace Price {
7336
9410
  conversion_rate_config: Shared.UnitConversionRateConfig | Shared.TieredConversionRateConfig | null;
7337
9411
  created_at: string;
7338
9412
  credit_allocation: Shared.Allocation | null;
9413
+ /**
9414
+ * Configuration for cumulative_grouped_bulk pricing
9415
+ */
9416
+ cumulative_grouped_bulk_config: CumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
7339
9417
  currency: string;
7340
9418
  /**
7341
9419
  * @deprecated
@@ -7343,9 +9421,6 @@ export declare namespace Price {
7343
9421
  discount: Shared.Discount | null;
7344
9422
  external_price_id: string | null;
7345
9423
  fixed_price_quantity: number | null;
7346
- grouped_with_min_max_thresholds_config: {
7347
- [key: string]: unknown;
7348
- };
7349
9424
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7350
9425
  item: Shared.ItemSlim;
7351
9426
  /**
@@ -7373,10 +9448,13 @@ export declare namespace Price {
7373
9448
  * @deprecated
7374
9449
  */
7375
9450
  minimum_amount: string | null;
7376
- model_type: 'grouped_with_min_max_thresholds';
9451
+ /**
9452
+ * The pricing model type
9453
+ */
9454
+ model_type: 'cumulative_grouped_bulk';
7377
9455
  name: string;
7378
9456
  plan_phase_order: number | null;
7379
- price_type: 'usage_price' | 'fixed_price';
9457
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7380
9458
  /**
7381
9459
  * The price id this price replaces. This price will take the place of the replaced
7382
9460
  * price in plan version migrations.
@@ -7384,6 +9462,40 @@ export declare namespace Price {
7384
9462
  replaces_price_id: string | null;
7385
9463
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7386
9464
  }
9465
+ namespace CumulativeGroupedBulkPrice {
9466
+ /**
9467
+ * Configuration for cumulative_grouped_bulk pricing
9468
+ */
9469
+ interface CumulativeGroupedBulkConfig {
9470
+ /**
9471
+ * Each tier lower bound must have the same group of values.
9472
+ */
9473
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
9474
+ /**
9475
+ * Grouping key name
9476
+ */
9477
+ group: string;
9478
+ }
9479
+ namespace CumulativeGroupedBulkConfig {
9480
+ /**
9481
+ * Configuration for a dimension value entry
9482
+ */
9483
+ interface DimensionValue {
9484
+ /**
9485
+ * Grouping key value
9486
+ */
9487
+ grouping_key: string;
9488
+ /**
9489
+ * Tier lower bound
9490
+ */
9491
+ tier_lower_bound: string;
9492
+ /**
9493
+ * Unit amount for this combination
9494
+ */
9495
+ unit_amount: string;
9496
+ }
9497
+ }
9498
+ }
7387
9499
  interface MinimumCompositePrice {
7388
9500
  id: string;
7389
9501
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7428,11 +9540,17 @@ export declare namespace Price {
7428
9540
  * @deprecated
7429
9541
  */
7430
9542
  minimum_amount: string | null;
9543
+ /**
9544
+ * Configuration for minimum pricing
9545
+ */
7431
9546
  minimum_config: MinimumCompositePrice.MinimumConfig;
9547
+ /**
9548
+ * The pricing model type
9549
+ */
7432
9550
  model_type: 'minimum';
7433
9551
  name: string;
7434
9552
  plan_phase_order: number | null;
7435
- price_type: 'usage_price' | 'fixed_price';
9553
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7436
9554
  /**
7437
9555
  * The price id this price replaces. This price will take the place of the replaced
7438
9556
  * price in plan version migrations.
@@ -7441,16 +9559,18 @@ export declare namespace Price {
7441
9559
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7442
9560
  }
7443
9561
  namespace MinimumCompositePrice {
9562
+ /**
9563
+ * Configuration for minimum pricing
9564
+ */
7444
9565
  interface MinimumConfig {
7445
9566
  /**
7446
9567
  * The minimum amount to apply
7447
9568
  */
7448
9569
  minimum_amount: string;
7449
9570
  /**
7450
- * By default, subtotals from minimum composite prices are prorated based on the
7451
- * service period. Set to false to disable proration.
9571
+ * If true, subtotals from this price are prorated based on the service period
7452
9572
  */
7453
- prorated?: boolean | null;
9573
+ prorated?: boolean;
7454
9574
  }
7455
9575
  }
7456
9576
  }
@@ -7551,6 +9671,9 @@ export interface TaxAmount {
7551
9671
  */
7552
9672
  tax_rate_percentage: string | null;
7553
9673
  }
9674
+ /**
9675
+ * Configuration for a single tier
9676
+ */
7554
9677
  export interface Tier {
7555
9678
  /**
7556
9679
  * Exclusive tier starting value
@@ -7561,15 +9684,11 @@ export interface Tier {
7561
9684
  */
7562
9685
  unit_amount: string;
7563
9686
  /**
7564
- * Inclusive tier ending value. If null, this is treated as the last tier
9687
+ * Inclusive tier ending value. This value is null if and only if this is the last
9688
+ * tier.
7565
9689
  */
7566
9690
  last_unit?: number | null;
7567
9691
  }
7568
- export interface TierConfig {
7569
- first_unit: number;
7570
- last_unit: number | null;
7571
- unit_amount: string;
7572
- }
7573
9692
  export interface TierSubLineItem {
7574
9693
  /**
7575
9694
  * The total amount for this sub line item.
@@ -7578,9 +9697,19 @@ export interface TierSubLineItem {
7578
9697
  grouping: SubLineItemGrouping | null;
7579
9698
  name: string;
7580
9699
  quantity: number;
7581
- tier_config: TierConfig;
9700
+ tier_config: TierSubLineItem.TierConfig;
7582
9701
  type: 'tier';
7583
9702
  }
9703
+ export declare namespace TierSubLineItem {
9704
+ interface TierConfig {
9705
+ first_unit: number;
9706
+ last_unit: number | null;
9707
+ unit_amount: string;
9708
+ }
9709
+ }
9710
+ /**
9711
+ * Configuration for tiered pricing
9712
+ */
7584
9713
  export interface TieredConfig {
7585
9714
  /**
7586
9715
  * Tiers for rating based on total usage quantities into the specified tier
@@ -7626,11 +9755,18 @@ export interface TrialDiscount {
7626
9755
  */
7627
9756
  trial_percentage_discount?: number | null;
7628
9757
  }
9758
+ /**
9759
+ * Configuration for unit pricing
9760
+ */
7629
9761
  export interface UnitConfig {
7630
9762
  /**
7631
9763
  * Rate per unit of usage
7632
9764
  */
7633
9765
  unit_amount: string;
9766
+ /**
9767
+ * Multiplier to scale rated quantity by
9768
+ */
9769
+ scaling_factor?: number | null;
7634
9770
  }
7635
9771
  export interface UnitConversionRateConfig {
7636
9772
  conversion_rate_type: 'unit';