orb-billing 5.6.0 → 5.7.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 +19 -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 +924 -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 +2468 -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 +1367 -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 +1058 -113
  55. package/src/resources/shared.ts +2786 -288
  56. package/src/resources/subscriptions.ts +1607 -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,37 @@ 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.
3421
+ */
3422
+ tiers: Array<TieredPackageConfig.Tier>;
3423
+ }
3424
+ namespace TieredPackageConfig {
3425
+ /**
3426
+ * Configuration for a single tier with business logic
3427
+ */
3428
+ interface Tier {
3429
+ /**
3430
+ * Price per package
3431
+ */
3432
+ per_unit: string;
3433
+ /**
3434
+ * Tier lower bound
3435
+ */
3436
+ tier_lower_bound: string;
3437
+ }
3438
+ }
3439
+ }
2847
3440
  export interface NewFloatingTieredPackageWithMinimumPrice {
2848
3441
  /**
2849
3442
  * The cadence to bill for this price on.
@@ -2857,14 +3450,18 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
2857
3450
  * The id of the item the price will be associated with.
2858
3451
  */
2859
3452
  item_id: string;
3453
+ /**
3454
+ * The pricing model type
3455
+ */
2860
3456
  model_type: 'tiered_package_with_minimum';
2861
3457
  /**
2862
3458
  * The name of the price.
2863
3459
  */
2864
3460
  name: string;
2865
- tiered_package_with_minimum_config: {
2866
- [key: string]: unknown;
2867
- };
3461
+ /**
3462
+ * Configuration for tiered_package_with_minimum pricing
3463
+ */
3464
+ tiered_package_with_minimum_config: NewFloatingTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
2868
3465
  /**
2869
3466
  * The id of the billable metric for the price. Only needed if the price is
2870
3467
  * usage-based.
@@ -2919,6 +3516,41 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
2919
3516
  [key: string]: string | null;
2920
3517
  } | null;
2921
3518
  }
3519
+ export declare namespace NewFloatingTieredPackageWithMinimumPrice {
3520
+ /**
3521
+ * Configuration for tiered_package_with_minimum pricing
3522
+ */
3523
+ interface TieredPackageWithMinimumConfig {
3524
+ /**
3525
+ * Package size
3526
+ */
3527
+ package_size: number;
3528
+ /**
3529
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
3530
+ * are defined using exclusive lower bounds.
3531
+ */
3532
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
3533
+ }
3534
+ namespace TieredPackageWithMinimumConfig {
3535
+ /**
3536
+ * Configuration for a single tier
3537
+ */
3538
+ interface Tier {
3539
+ /**
3540
+ * Minimum amount
3541
+ */
3542
+ minimum_amount: string;
3543
+ /**
3544
+ * Price per package
3545
+ */
3546
+ per_unit: string;
3547
+ /**
3548
+ * Tier lower bound
3549
+ */
3550
+ tier_lower_bound: string;
3551
+ }
3552
+ }
3553
+ }
2922
3554
  export interface NewFloatingTieredPrice {
2923
3555
  /**
2924
3556
  * The cadence to bill for this price on.
@@ -2932,11 +3564,17 @@ export interface NewFloatingTieredPrice {
2932
3564
  * The id of the item the price will be associated with.
2933
3565
  */
2934
3566
  item_id: string;
3567
+ /**
3568
+ * The pricing model type
3569
+ */
2935
3570
  model_type: 'tiered';
2936
3571
  /**
2937
3572
  * The name of the price.
2938
3573
  */
2939
3574
  name: string;
3575
+ /**
3576
+ * Configuration for tiered pricing
3577
+ */
2940
3578
  tiered_config: TieredConfig;
2941
3579
  /**
2942
3580
  * The id of the billable metric for the price. Only needed if the price is
@@ -3005,14 +3643,18 @@ export interface NewFloatingTieredWithMinimumPrice {
3005
3643
  * The id of the item the price will be associated with.
3006
3644
  */
3007
3645
  item_id: string;
3646
+ /**
3647
+ * The pricing model type
3648
+ */
3008
3649
  model_type: 'tiered_with_minimum';
3009
3650
  /**
3010
3651
  * The name of the price.
3011
3652
  */
3012
3653
  name: string;
3013
- tiered_with_minimum_config: {
3014
- [key: string]: unknown;
3015
- };
3654
+ /**
3655
+ * Configuration for tiered_with_minimum pricing
3656
+ */
3657
+ tiered_with_minimum_config: NewFloatingTieredWithMinimumPrice.TieredWithMinimumConfig;
3016
3658
  /**
3017
3659
  * The id of the billable metric for the price. Only needed if the price is
3018
3660
  * usage-based.
@@ -3067,6 +3709,45 @@ export interface NewFloatingTieredWithMinimumPrice {
3067
3709
  [key: string]: string | null;
3068
3710
  } | null;
3069
3711
  }
3712
+ export declare namespace NewFloatingTieredWithMinimumPrice {
3713
+ /**
3714
+ * Configuration for tiered_with_minimum pricing
3715
+ */
3716
+ interface TieredWithMinimumConfig {
3717
+ /**
3718
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
3719
+ * defined using exclusive lower bounds.
3720
+ */
3721
+ tiers: Array<TieredWithMinimumConfig.Tier>;
3722
+ /**
3723
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
3724
+ */
3725
+ hide_zero_amount_tiers?: boolean;
3726
+ /**
3727
+ * If true, the unit price will be prorated to the billing period
3728
+ */
3729
+ prorate?: boolean;
3730
+ }
3731
+ namespace TieredWithMinimumConfig {
3732
+ /**
3733
+ * Configuration for a single tier
3734
+ */
3735
+ interface Tier {
3736
+ /**
3737
+ * Minimum amount
3738
+ */
3739
+ minimum_amount: string;
3740
+ /**
3741
+ * Tier lower bound
3742
+ */
3743
+ tier_lower_bound: string;
3744
+ /**
3745
+ * Per unit amount
3746
+ */
3747
+ unit_amount: string;
3748
+ }
3749
+ }
3750
+ }
3070
3751
  export interface NewFloatingTieredWithProrationPrice {
3071
3752
  /**
3072
3753
  * The cadence to bill for this price on.
@@ -3080,14 +3761,18 @@ export interface NewFloatingTieredWithProrationPrice {
3080
3761
  * The id of the item the price will be associated with.
3081
3762
  */
3082
3763
  item_id: string;
3764
+ /**
3765
+ * The pricing model type
3766
+ */
3083
3767
  model_type: 'tiered_with_proration';
3084
3768
  /**
3085
3769
  * The name of the price.
3086
3770
  */
3087
3771
  name: string;
3088
- tiered_with_proration_config: {
3089
- [key: string]: unknown;
3090
- };
3772
+ /**
3773
+ * Configuration for tiered_with_proration pricing
3774
+ */
3775
+ tiered_with_proration_config: NewFloatingTieredWithProrationPrice.TieredWithProrationConfig;
3091
3776
  /**
3092
3777
  * The id of the billable metric for the price. Only needed if the price is
3093
3778
  * usage-based.
@@ -3142,6 +3827,33 @@ export interface NewFloatingTieredWithProrationPrice {
3142
3827
  [key: string]: string | null;
3143
3828
  } | null;
3144
3829
  }
3830
+ export declare namespace NewFloatingTieredWithProrationPrice {
3831
+ /**
3832
+ * Configuration for tiered_with_proration pricing
3833
+ */
3834
+ interface TieredWithProrationConfig {
3835
+ /**
3836
+ * Tiers for rating based on total usage quantities into the specified tier with
3837
+ * proration
3838
+ */
3839
+ tiers: Array<TieredWithProrationConfig.Tier>;
3840
+ }
3841
+ namespace TieredWithProrationConfig {
3842
+ /**
3843
+ * Configuration for a single tiered with proration tier
3844
+ */
3845
+ interface Tier {
3846
+ /**
3847
+ * Inclusive tier starting value
3848
+ */
3849
+ tier_lower_bound: string;
3850
+ /**
3851
+ * Amount per unit
3852
+ */
3853
+ unit_amount: string;
3854
+ }
3855
+ }
3856
+ }
3145
3857
  export interface NewFloatingUnitPrice {
3146
3858
  /**
3147
3859
  * The cadence to bill for this price on.
@@ -3155,11 +3867,17 @@ export interface NewFloatingUnitPrice {
3155
3867
  * The id of the item the price will be associated with.
3156
3868
  */
3157
3869
  item_id: string;
3870
+ /**
3871
+ * The pricing model type
3872
+ */
3158
3873
  model_type: 'unit';
3159
3874
  /**
3160
3875
  * The name of the price.
3161
3876
  */
3162
3877
  name: string;
3878
+ /**
3879
+ * Configuration for unit pricing
3880
+ */
3163
3881
  unit_config: UnitConfig;
3164
3882
  /**
3165
3883
  * The id of the billable metric for the price. Only needed if the price is
@@ -3228,14 +3946,18 @@ export interface NewFloatingUnitWithPercentPrice {
3228
3946
  * The id of the item the price will be associated with.
3229
3947
  */
3230
3948
  item_id: string;
3949
+ /**
3950
+ * The pricing model type
3951
+ */
3231
3952
  model_type: 'unit_with_percent';
3232
3953
  /**
3233
3954
  * The name of the price.
3234
3955
  */
3235
3956
  name: string;
3236
- unit_with_percent_config: {
3237
- [key: string]: unknown;
3238
- };
3957
+ /**
3958
+ * Configuration for unit_with_percent pricing
3959
+ */
3960
+ unit_with_percent_config: NewFloatingUnitWithPercentPrice.UnitWithPercentConfig;
3239
3961
  /**
3240
3962
  * The id of the billable metric for the price. Only needed if the price is
3241
3963
  * usage-based.
@@ -3290,6 +4012,21 @@ export interface NewFloatingUnitWithPercentPrice {
3290
4012
  [key: string]: string | null;
3291
4013
  } | null;
3292
4014
  }
4015
+ export declare namespace NewFloatingUnitWithPercentPrice {
4016
+ /**
4017
+ * Configuration for unit_with_percent pricing
4018
+ */
4019
+ interface UnitWithPercentConfig {
4020
+ /**
4021
+ * What percent, out of 100, of the calculated total to charge
4022
+ */
4023
+ percent: string;
4024
+ /**
4025
+ * Rate per unit of usage
4026
+ */
4027
+ unit_amount: string;
4028
+ }
4029
+ }
3293
4030
  export interface NewFloatingUnitWithProrationPrice {
3294
4031
  /**
3295
4032
  * The cadence to bill for this price on.
@@ -3303,14 +4040,18 @@ export interface NewFloatingUnitWithProrationPrice {
3303
4040
  * The id of the item the price will be associated with.
3304
4041
  */
3305
4042
  item_id: string;
4043
+ /**
4044
+ * The pricing model type
4045
+ */
3306
4046
  model_type: 'unit_with_proration';
3307
4047
  /**
3308
4048
  * The name of the price.
3309
4049
  */
3310
4050
  name: string;
3311
- unit_with_proration_config: {
3312
- [key: string]: unknown;
3313
- };
4051
+ /**
4052
+ * Configuration for unit_with_proration pricing
4053
+ */
4054
+ unit_with_proration_config: NewFloatingUnitWithProrationPrice.UnitWithProrationConfig;
3314
4055
  /**
3315
4056
  * The id of the billable metric for the price. Only needed if the price is
3316
4057
  * usage-based.
@@ -3365,6 +4106,17 @@ export interface NewFloatingUnitWithProrationPrice {
3365
4106
  [key: string]: string | null;
3366
4107
  } | null;
3367
4108
  }
4109
+ export declare namespace NewFloatingUnitWithProrationPrice {
4110
+ /**
4111
+ * Configuration for unit_with_proration pricing
4112
+ */
4113
+ interface UnitWithProrationConfig {
4114
+ /**
4115
+ * Rate per unit of usage
4116
+ */
4117
+ unit_amount: string;
4118
+ }
4119
+ }
3368
4120
  export interface NewMaximum {
3369
4121
  adjustment_type: 'maximum';
3370
4122
  maximum_amount: string;
@@ -3469,6 +4221,9 @@ export interface NewPercentageDiscount {
3469
4221
  price_type?: 'usage' | 'fixed_in_advance' | 'fixed_in_arrears' | 'fixed' | 'in_arrears' | null;
3470
4222
  }
3471
4223
  export interface NewPlanBulkPrice {
4224
+ /**
4225
+ * Configuration for bulk pricing
4226
+ */
3472
4227
  bulk_config: BulkConfig;
3473
4228
  /**
3474
4229
  * The cadence to bill for this price on.
@@ -3478,6 +4233,9 @@ export interface NewPlanBulkPrice {
3478
4233
  * The id of the item the price will be associated with.
3479
4234
  */
3480
4235
  item_id: string;
4236
+ /**
4237
+ * The pricing model type
4238
+ */
3481
4239
  model_type: 'bulk';
3482
4240
  /**
3483
4241
  * The name of the price.
@@ -3548,9 +4306,10 @@ export interface NewPlanBulkPrice {
3548
4306
  reference_id?: string | null;
3549
4307
  }
3550
4308
  export interface NewPlanBulkWithProrationPrice {
3551
- bulk_with_proration_config: {
3552
- [key: string]: unknown;
3553
- };
4309
+ /**
4310
+ * Configuration for bulk_with_proration pricing
4311
+ */
4312
+ bulk_with_proration_config: NewPlanBulkWithProrationPrice.BulkWithProrationConfig;
3554
4313
  /**
3555
4314
  * The cadence to bill for this price on.
3556
4315
  */
@@ -3559,6 +4318,9 @@ export interface NewPlanBulkWithProrationPrice {
3559
4318
  * The id of the item the price will be associated with.
3560
4319
  */
3561
4320
  item_id: string;
4321
+ /**
4322
+ * The pricing model type
4323
+ */
3562
4324
  model_type: 'bulk_with_proration';
3563
4325
  /**
3564
4326
  * The name of the price.
@@ -3628,18 +4390,48 @@ export interface NewPlanBulkWithProrationPrice {
3628
4390
  */
3629
4391
  reference_id?: string | null;
3630
4392
  }
4393
+ export declare namespace NewPlanBulkWithProrationPrice {
4394
+ /**
4395
+ * Configuration for bulk_with_proration pricing
4396
+ */
4397
+ interface BulkWithProrationConfig {
4398
+ /**
4399
+ * Bulk tiers for rating based on total usage volume
4400
+ */
4401
+ tiers: Array<BulkWithProrationConfig.Tier>;
4402
+ }
4403
+ namespace BulkWithProrationConfig {
4404
+ /**
4405
+ * Configuration for a single bulk pricing tier with proration
4406
+ */
4407
+ interface Tier {
4408
+ /**
4409
+ * Cost per unit
4410
+ */
4411
+ unit_amount: string;
4412
+ /**
4413
+ * The lower bound for this tier
4414
+ */
4415
+ tier_lower_bound?: string | null;
4416
+ }
4417
+ }
4418
+ }
3631
4419
  export interface NewPlanCumulativeGroupedBulkPrice {
3632
4420
  /**
3633
4421
  * The cadence to bill for this price on.
3634
4422
  */
3635
4423
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3636
- cumulative_grouped_bulk_config: {
3637
- [key: string]: unknown;
3638
- };
4424
+ /**
4425
+ * Configuration for cumulative_grouped_bulk pricing
4426
+ */
4427
+ cumulative_grouped_bulk_config: NewPlanCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
3639
4428
  /**
3640
4429
  * The id of the item the price will be associated with.
3641
4430
  */
3642
4431
  item_id: string;
4432
+ /**
4433
+ * The pricing model type
4434
+ */
3643
4435
  model_type: 'cumulative_grouped_bulk';
3644
4436
  /**
3645
4437
  * The name of the price.
@@ -3709,18 +4501,56 @@ export interface NewPlanCumulativeGroupedBulkPrice {
3709
4501
  */
3710
4502
  reference_id?: string | null;
3711
4503
  }
4504
+ export declare namespace NewPlanCumulativeGroupedBulkPrice {
4505
+ /**
4506
+ * Configuration for cumulative_grouped_bulk pricing
4507
+ */
4508
+ interface CumulativeGroupedBulkConfig {
4509
+ /**
4510
+ * Each tier lower bound must have the same group of values.
4511
+ */
4512
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
4513
+ /**
4514
+ * Grouping key name
4515
+ */
4516
+ group: string;
4517
+ }
4518
+ namespace CumulativeGroupedBulkConfig {
4519
+ /**
4520
+ * Configuration for a dimension value entry
4521
+ */
4522
+ interface DimensionValue {
4523
+ /**
4524
+ * Grouping key value
4525
+ */
4526
+ grouping_key: string;
4527
+ /**
4528
+ * Tier lower bound
4529
+ */
4530
+ tier_lower_bound: string;
4531
+ /**
4532
+ * Unit amount for this combination
4533
+ */
4534
+ unit_amount: string;
4535
+ }
4536
+ }
4537
+ }
3712
4538
  export interface NewPlanGroupedAllocationPrice {
3713
4539
  /**
3714
4540
  * The cadence to bill for this price on.
3715
4541
  */
3716
4542
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3717
- grouped_allocation_config: {
3718
- [key: string]: unknown;
3719
- };
4543
+ /**
4544
+ * Configuration for grouped_allocation pricing
4545
+ */
4546
+ grouped_allocation_config: NewPlanGroupedAllocationPrice.GroupedAllocationConfig;
3720
4547
  /**
3721
4548
  * The id of the item the price will be associated with.
3722
4549
  */
3723
4550
  item_id: string;
4551
+ /**
4552
+ * The pricing model type
4553
+ */
3724
4554
  model_type: 'grouped_allocation';
3725
4555
  /**
3726
4556
  * The name of the price.
@@ -3790,18 +4620,41 @@ export interface NewPlanGroupedAllocationPrice {
3790
4620
  */
3791
4621
  reference_id?: string | null;
3792
4622
  }
3793
- export interface NewPlanGroupedTieredPackagePrice {
4623
+ export declare namespace NewPlanGroupedAllocationPrice {
4624
+ /**
4625
+ * Configuration for grouped_allocation pricing
4626
+ */
4627
+ interface GroupedAllocationConfig {
4628
+ /**
4629
+ * Usage allocation per group
4630
+ */
4631
+ allocation: string;
4632
+ /**
4633
+ * How to determine the groups that should each be allocated some quantity
4634
+ */
4635
+ grouping_key: string;
4636
+ /**
4637
+ * Unit rate for post-allocation
4638
+ */
4639
+ overage_unit_rate: string;
4640
+ }
4641
+ }
4642
+ export interface NewPlanGroupedTieredPackagePrice {
3794
4643
  /**
3795
4644
  * The cadence to bill for this price on.
3796
4645
  */
3797
4646
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3798
- grouped_tiered_package_config: {
3799
- [key: string]: unknown;
3800
- };
4647
+ /**
4648
+ * Configuration for grouped_tiered_package pricing
4649
+ */
4650
+ grouped_tiered_package_config: NewPlanGroupedTieredPackagePrice.GroupedTieredPackageConfig;
3801
4651
  /**
3802
4652
  * The id of the item the price will be associated with.
3803
4653
  */
3804
4654
  item_id: string;
4655
+ /**
4656
+ * The pricing model type
4657
+ */
3805
4658
  model_type: 'grouped_tiered_package';
3806
4659
  /**
3807
4660
  * The name of the price.
@@ -3871,18 +4724,57 @@ export interface NewPlanGroupedTieredPackagePrice {
3871
4724
  */
3872
4725
  reference_id?: string | null;
3873
4726
  }
4727
+ export declare namespace NewPlanGroupedTieredPackagePrice {
4728
+ /**
4729
+ * Configuration for grouped_tiered_package pricing
4730
+ */
4731
+ interface GroupedTieredPackageConfig {
4732
+ /**
4733
+ * The event property used to group before tiering
4734
+ */
4735
+ grouping_key: string;
4736
+ /**
4737
+ * Package size
4738
+ */
4739
+ package_size: string;
4740
+ /**
4741
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
4742
+ * are defined using exclusive lower bounds.
4743
+ */
4744
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
4745
+ }
4746
+ namespace GroupedTieredPackageConfig {
4747
+ /**
4748
+ * Configuration for a single tier
4749
+ */
4750
+ interface Tier {
4751
+ /**
4752
+ * Price per package
4753
+ */
4754
+ per_unit: string;
4755
+ /**
4756
+ * Tier lower bound
4757
+ */
4758
+ tier_lower_bound: string;
4759
+ }
4760
+ }
4761
+ }
3874
4762
  export interface NewPlanGroupedTieredPrice {
3875
4763
  /**
3876
4764
  * The cadence to bill for this price on.
3877
4765
  */
3878
4766
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3879
- grouped_tiered_config: {
3880
- [key: string]: unknown;
3881
- };
4767
+ /**
4768
+ * Configuration for grouped_tiered pricing
4769
+ */
4770
+ grouped_tiered_config: NewPlanGroupedTieredPrice.GroupedTieredConfig;
3882
4771
  /**
3883
4772
  * The id of the item the price will be associated with.
3884
4773
  */
3885
4774
  item_id: string;
4775
+ /**
4776
+ * The pricing model type
4777
+ */
3886
4778
  model_type: 'grouped_tiered';
3887
4779
  /**
3888
4780
  * The name of the price.
@@ -3952,18 +4844,53 @@ export interface NewPlanGroupedTieredPrice {
3952
4844
  */
3953
4845
  reference_id?: string | null;
3954
4846
  }
4847
+ export declare namespace NewPlanGroupedTieredPrice {
4848
+ /**
4849
+ * Configuration for grouped_tiered pricing
4850
+ */
4851
+ interface GroupedTieredConfig {
4852
+ /**
4853
+ * The billable metric property used to group before tiering
4854
+ */
4855
+ grouping_key: string;
4856
+ /**
4857
+ * Apply tiered pricing to each segment generated after grouping with the provided
4858
+ * key
4859
+ */
4860
+ tiers: Array<GroupedTieredConfig.Tier>;
4861
+ }
4862
+ namespace GroupedTieredConfig {
4863
+ /**
4864
+ * Configuration for a single tier
4865
+ */
4866
+ interface Tier {
4867
+ /**
4868
+ * Tier lower bound
4869
+ */
4870
+ tier_lower_bound: string;
4871
+ /**
4872
+ * Per unit amount
4873
+ */
4874
+ unit_amount: string;
4875
+ }
4876
+ }
4877
+ }
3955
4878
  export interface NewPlanGroupedWithMeteredMinimumPrice {
3956
4879
  /**
3957
4880
  * The cadence to bill for this price on.
3958
4881
  */
3959
4882
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3960
- grouped_with_metered_minimum_config: {
3961
- [key: string]: unknown;
3962
- };
4883
+ /**
4884
+ * Configuration for grouped_with_metered_minimum pricing
4885
+ */
4886
+ grouped_with_metered_minimum_config: NewPlanGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
3963
4887
  /**
3964
4888
  * The id of the item the price will be associated with.
3965
4889
  */
3966
4890
  item_id: string;
4891
+ /**
4892
+ * The pricing model type
4893
+ */
3967
4894
  model_type: 'grouped_with_metered_minimum';
3968
4895
  /**
3969
4896
  * The name of the price.
@@ -4033,18 +4960,83 @@ export interface NewPlanGroupedWithMeteredMinimumPrice {
4033
4960
  */
4034
4961
  reference_id?: string | null;
4035
4962
  }
4963
+ export declare namespace NewPlanGroupedWithMeteredMinimumPrice {
4964
+ /**
4965
+ * Configuration for grouped_with_metered_minimum pricing
4966
+ */
4967
+ interface GroupedWithMeteredMinimumConfig {
4968
+ /**
4969
+ * Used to partition the usage into groups. The minimum amount is applied to each
4970
+ * group.
4971
+ */
4972
+ grouping_key: string;
4973
+ /**
4974
+ * The minimum amount to charge per group per unit
4975
+ */
4976
+ minimum_unit_amount: string;
4977
+ /**
4978
+ * Used to determine the unit rate
4979
+ */
4980
+ pricing_key: string;
4981
+ /**
4982
+ * Scale the unit rates by the scaling factor.
4983
+ */
4984
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
4985
+ /**
4986
+ * Used to determine the unit rate scaling factor
4987
+ */
4988
+ scaling_key: string;
4989
+ /**
4990
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
4991
+ * unmatched usage.
4992
+ */
4993
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
4994
+ }
4995
+ namespace GroupedWithMeteredMinimumConfig {
4996
+ /**
4997
+ * Configuration for a scaling factor
4998
+ */
4999
+ interface ScalingFactor {
5000
+ /**
5001
+ * Scaling factor
5002
+ */
5003
+ scaling_factor: string;
5004
+ /**
5005
+ * Scaling value
5006
+ */
5007
+ scaling_value: string;
5008
+ }
5009
+ /**
5010
+ * Configuration for a unit amount
5011
+ */
5012
+ interface UnitAmount {
5013
+ /**
5014
+ * Pricing value
5015
+ */
5016
+ pricing_value: string;
5017
+ /**
5018
+ * Per unit amount
5019
+ */
5020
+ unit_amount: string;
5021
+ }
5022
+ }
5023
+ }
4036
5024
  export interface NewPlanGroupedWithProratedMinimumPrice {
4037
5025
  /**
4038
5026
  * The cadence to bill for this price on.
4039
5027
  */
4040
5028
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4041
- grouped_with_prorated_minimum_config: {
4042
- [key: string]: unknown;
4043
- };
5029
+ /**
5030
+ * Configuration for grouped_with_prorated_minimum pricing
5031
+ */
5032
+ grouped_with_prorated_minimum_config: NewPlanGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
4044
5033
  /**
4045
5034
  * The id of the item the price will be associated with.
4046
5035
  */
4047
5036
  item_id: string;
5037
+ /**
5038
+ * The pricing model type
5039
+ */
4048
5040
  model_type: 'grouped_with_prorated_minimum';
4049
5041
  /**
4050
5042
  * The name of the price.
@@ -4114,6 +5106,25 @@ export interface NewPlanGroupedWithProratedMinimumPrice {
4114
5106
  */
4115
5107
  reference_id?: string | null;
4116
5108
  }
5109
+ export declare namespace NewPlanGroupedWithProratedMinimumPrice {
5110
+ /**
5111
+ * Configuration for grouped_with_prorated_minimum pricing
5112
+ */
5113
+ interface GroupedWithProratedMinimumConfig {
5114
+ /**
5115
+ * How to determine the groups that should each have a minimum
5116
+ */
5117
+ grouping_key: string;
5118
+ /**
5119
+ * The minimum amount to charge per group
5120
+ */
5121
+ minimum: string;
5122
+ /**
5123
+ * The amount to charge per unit
5124
+ */
5125
+ unit_rate: string;
5126
+ }
5127
+ }
4117
5128
  export interface NewPlanMatrixPrice {
4118
5129
  /**
4119
5130
  * The cadence to bill for this price on.
@@ -4123,7 +5134,13 @@ export interface NewPlanMatrixPrice {
4123
5134
  * The id of the item the price will be associated with.
4124
5135
  */
4125
5136
  item_id: string;
5137
+ /**
5138
+ * Configuration for matrix pricing
5139
+ */
4126
5140
  matrix_config: MatrixConfig;
5141
+ /**
5142
+ * The pricing model type
5143
+ */
4127
5144
  model_type: 'matrix';
4128
5145
  /**
4129
5146
  * The name of the price.
@@ -4202,7 +5219,13 @@ export interface NewPlanMatrixWithAllocationPrice {
4202
5219
  * The id of the item the price will be associated with.
4203
5220
  */
4204
5221
  item_id: string;
5222
+ /**
5223
+ * Configuration for matrix_with_allocation pricing
5224
+ */
4205
5225
  matrix_with_allocation_config: MatrixWithAllocationConfig;
5226
+ /**
5227
+ * The pricing model type
5228
+ */
4206
5229
  model_type: 'matrix_with_allocation';
4207
5230
  /**
4208
5231
  * The name of the price.
@@ -4281,9 +5304,13 @@ export interface NewPlanMatrixWithDisplayNamePrice {
4281
5304
  * The id of the item the price will be associated with.
4282
5305
  */
4283
5306
  item_id: string;
4284
- matrix_with_display_name_config: {
4285
- [key: string]: unknown;
4286
- };
5307
+ /**
5308
+ * Configuration for matrix_with_display_name pricing
5309
+ */
5310
+ matrix_with_display_name_config: NewPlanMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
5311
+ /**
5312
+ * The pricing model type
5313
+ */
4287
5314
  model_type: 'matrix_with_display_name';
4288
5315
  /**
4289
5316
  * The name of the price.
@@ -4353,6 +5380,40 @@ export interface NewPlanMatrixWithDisplayNamePrice {
4353
5380
  */
4354
5381
  reference_id?: string | null;
4355
5382
  }
5383
+ export declare namespace NewPlanMatrixWithDisplayNamePrice {
5384
+ /**
5385
+ * Configuration for matrix_with_display_name pricing
5386
+ */
5387
+ interface MatrixWithDisplayNameConfig {
5388
+ /**
5389
+ * Used to determine the unit rate
5390
+ */
5391
+ dimension: string;
5392
+ /**
5393
+ * Apply per unit pricing to each dimension value
5394
+ */
5395
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
5396
+ }
5397
+ namespace MatrixWithDisplayNameConfig {
5398
+ /**
5399
+ * Configuration for a unit amount item
5400
+ */
5401
+ interface UnitAmount {
5402
+ /**
5403
+ * The dimension value
5404
+ */
5405
+ dimension_value: string;
5406
+ /**
5407
+ * Display name for this dimension value
5408
+ */
5409
+ display_name: string;
5410
+ /**
5411
+ * Per unit amount
5412
+ */
5413
+ unit_amount: string;
5414
+ }
5415
+ }
5416
+ }
4356
5417
  export interface NewPlanMaxGroupTieredPackagePrice {
4357
5418
  /**
4358
5419
  * The cadence to bill for this price on.
@@ -4362,9 +5423,13 @@ export interface NewPlanMaxGroupTieredPackagePrice {
4362
5423
  * The id of the item the price will be associated with.
4363
5424
  */
4364
5425
  item_id: string;
4365
- max_group_tiered_package_config: {
4366
- [key: string]: unknown;
4367
- };
5426
+ /**
5427
+ * Configuration for max_group_tiered_package pricing
5428
+ */
5429
+ max_group_tiered_package_config: NewPlanMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
5430
+ /**
5431
+ * The pricing model type
5432
+ */
4368
5433
  model_type: 'max_group_tiered_package';
4369
5434
  /**
4370
5435
  * The name of the price.
@@ -4434,6 +5499,40 @@ export interface NewPlanMaxGroupTieredPackagePrice {
4434
5499
  */
4435
5500
  reference_id?: string | null;
4436
5501
  }
5502
+ export declare namespace NewPlanMaxGroupTieredPackagePrice {
5503
+ /**
5504
+ * Configuration for max_group_tiered_package pricing
5505
+ */
5506
+ interface MaxGroupTieredPackageConfig {
5507
+ /**
5508
+ * The event property used to group before tiering the group with the highest value
5509
+ */
5510
+ grouping_key: string;
5511
+ /**
5512
+ * Package size
5513
+ */
5514
+ package_size: string;
5515
+ /**
5516
+ * Apply tiered pricing to the largest group after grouping with the provided key.
5517
+ */
5518
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
5519
+ }
5520
+ namespace MaxGroupTieredPackageConfig {
5521
+ /**
5522
+ * Configuration for a single tier
5523
+ */
5524
+ interface Tier {
5525
+ /**
5526
+ * Tier lower bound
5527
+ */
5528
+ tier_lower_bound: string;
5529
+ /**
5530
+ * Per unit amount
5531
+ */
5532
+ unit_amount: string;
5533
+ }
5534
+ }
5535
+ }
4437
5536
  export interface NewPlanMinimumCompositePrice {
4438
5537
  /**
4439
5538
  * The cadence to bill for this price on.
@@ -4443,7 +5542,13 @@ export interface NewPlanMinimumCompositePrice {
4443
5542
  * The id of the item the price will be associated with.
4444
5543
  */
4445
5544
  item_id: string;
5545
+ /**
5546
+ * Configuration for minimum pricing
5547
+ */
4446
5548
  minimum_config: NewPlanMinimumCompositePrice.MinimumConfig;
5549
+ /**
5550
+ * The pricing model type
5551
+ */
4447
5552
  model_type: 'minimum';
4448
5553
  /**
4449
5554
  * The name of the price.
@@ -4514,16 +5619,18 @@ export interface NewPlanMinimumCompositePrice {
4514
5619
  reference_id?: string | null;
4515
5620
  }
4516
5621
  export declare namespace NewPlanMinimumCompositePrice {
5622
+ /**
5623
+ * Configuration for minimum pricing
5624
+ */
4517
5625
  interface MinimumConfig {
4518
5626
  /**
4519
5627
  * The minimum amount to apply
4520
5628
  */
4521
5629
  minimum_amount: string;
4522
5630
  /**
4523
- * By default, subtotals from minimum composite prices are prorated based on the
4524
- * service period. Set to false to disable proration.
5631
+ * If true, subtotals from this price are prorated based on the service period
4525
5632
  */
4526
- prorated?: boolean | null;
5633
+ prorated?: boolean;
4527
5634
  }
4528
5635
  }
4529
5636
  export interface NewPlanPackagePrice {
@@ -4535,11 +5642,17 @@ export interface NewPlanPackagePrice {
4535
5642
  * The id of the item the price will be associated with.
4536
5643
  */
4537
5644
  item_id: string;
5645
+ /**
5646
+ * The pricing model type
5647
+ */
4538
5648
  model_type: 'package';
4539
5649
  /**
4540
5650
  * The name of the price.
4541
5651
  */
4542
5652
  name: string;
5653
+ /**
5654
+ * Configuration for package pricing
5655
+ */
4543
5656
  package_config: PackageConfig;
4544
5657
  /**
4545
5658
  * The id of the billable metric for the price. Only needed if the price is
@@ -4614,14 +5727,18 @@ export interface NewPlanPackageWithAllocationPrice {
4614
5727
  * The id of the item the price will be associated with.
4615
5728
  */
4616
5729
  item_id: string;
5730
+ /**
5731
+ * The pricing model type
5732
+ */
4617
5733
  model_type: 'package_with_allocation';
4618
5734
  /**
4619
5735
  * The name of the price.
4620
5736
  */
4621
5737
  name: string;
4622
- package_with_allocation_config: {
4623
- [key: string]: unknown;
4624
- };
5738
+ /**
5739
+ * Configuration for package_with_allocation pricing
5740
+ */
5741
+ package_with_allocation_config: NewPlanPackageWithAllocationPrice.PackageWithAllocationConfig;
4625
5742
  /**
4626
5743
  * The id of the billable metric for the price. Only needed if the price is
4627
5744
  * usage-based.
@@ -4686,6 +5803,25 @@ export interface NewPlanPackageWithAllocationPrice {
4686
5803
  */
4687
5804
  reference_id?: string | null;
4688
5805
  }
5806
+ export declare namespace NewPlanPackageWithAllocationPrice {
5807
+ /**
5808
+ * Configuration for package_with_allocation pricing
5809
+ */
5810
+ interface PackageWithAllocationConfig {
5811
+ /**
5812
+ * Usage allocation
5813
+ */
5814
+ allocation: string;
5815
+ /**
5816
+ * Price per package
5817
+ */
5818
+ package_amount: string;
5819
+ /**
5820
+ * Package size
5821
+ */
5822
+ package_size: string;
5823
+ }
5824
+ }
4689
5825
  export interface NewPlanScalableMatrixWithTieredPricingPrice {
4690
5826
  /**
4691
5827
  * The cadence to bill for this price on.
@@ -4695,14 +5831,18 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
4695
5831
  * The id of the item the price will be associated with.
4696
5832
  */
4697
5833
  item_id: string;
5834
+ /**
5835
+ * The pricing model type
5836
+ */
4698
5837
  model_type: 'scalable_matrix_with_tiered_pricing';
4699
5838
  /**
4700
5839
  * The name of the price.
4701
5840
  */
4702
5841
  name: string;
4703
- scalable_matrix_with_tiered_pricing_config: {
4704
- [key: string]: unknown;
4705
- };
5842
+ /**
5843
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
5844
+ */
5845
+ scalable_matrix_with_tiered_pricing_config: NewPlanScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
4706
5846
  /**
4707
5847
  * The id of the billable metric for the price. Only needed if the price is
4708
5848
  * usage-based.
@@ -4767,6 +5907,61 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
4767
5907
  */
4768
5908
  reference_id?: string | null;
4769
5909
  }
5910
+ export declare namespace NewPlanScalableMatrixWithTieredPricingPrice {
5911
+ /**
5912
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
5913
+ */
5914
+ interface ScalableMatrixWithTieredPricingConfig {
5915
+ /**
5916
+ * Used for the scalable matrix first dimension
5917
+ */
5918
+ first_dimension: string;
5919
+ /**
5920
+ * Apply a scaling factor to each dimension
5921
+ */
5922
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
5923
+ /**
5924
+ * Tier pricing structure
5925
+ */
5926
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
5927
+ /**
5928
+ * Used for the scalable matrix second dimension (optional)
5929
+ */
5930
+ second_dimension?: string | null;
5931
+ }
5932
+ namespace ScalableMatrixWithTieredPricingConfig {
5933
+ /**
5934
+ * Configuration for a single matrix scaling factor
5935
+ */
5936
+ interface MatrixScalingFactor {
5937
+ /**
5938
+ * First dimension value
5939
+ */
5940
+ first_dimension_value: string;
5941
+ /**
5942
+ * Scaling factor
5943
+ */
5944
+ scaling_factor: string;
5945
+ /**
5946
+ * Second dimension value (optional)
5947
+ */
5948
+ second_dimension_value?: string | null;
5949
+ }
5950
+ /**
5951
+ * Configuration for a single tier entry with business logic
5952
+ */
5953
+ interface Tier {
5954
+ /**
5955
+ * Tier lower bound
5956
+ */
5957
+ tier_lower_bound: string;
5958
+ /**
5959
+ * Per unit amount
5960
+ */
5961
+ unit_amount: string;
5962
+ }
5963
+ }
5964
+ }
4770
5965
  export interface NewPlanScalableMatrixWithUnitPricingPrice {
4771
5966
  /**
4772
5967
  * The cadence to bill for this price on.
@@ -4776,14 +5971,18 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
4776
5971
  * The id of the item the price will be associated with.
4777
5972
  */
4778
5973
  item_id: string;
5974
+ /**
5975
+ * The pricing model type
5976
+ */
4779
5977
  model_type: 'scalable_matrix_with_unit_pricing';
4780
5978
  /**
4781
5979
  * The name of the price.
4782
5980
  */
4783
5981
  name: string;
4784
- scalable_matrix_with_unit_pricing_config: {
4785
- [key: string]: unknown;
4786
- };
5982
+ /**
5983
+ * Configuration for scalable_matrix_with_unit_pricing pricing
5984
+ */
5985
+ scalable_matrix_with_unit_pricing_config: NewPlanScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
4787
5986
  /**
4788
5987
  * The id of the billable metric for the price. Only needed if the price is
4789
5988
  * usage-based.
@@ -4848,6 +6047,52 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
4848
6047
  */
4849
6048
  reference_id?: string | null;
4850
6049
  }
6050
+ export declare namespace NewPlanScalableMatrixWithUnitPricingPrice {
6051
+ /**
6052
+ * Configuration for scalable_matrix_with_unit_pricing pricing
6053
+ */
6054
+ interface ScalableMatrixWithUnitPricingConfig {
6055
+ /**
6056
+ * Used to determine the unit rate
6057
+ */
6058
+ first_dimension: string;
6059
+ /**
6060
+ * Apply a scaling factor to each dimension
6061
+ */
6062
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
6063
+ /**
6064
+ * The final unit price to rate against the output of the matrix
6065
+ */
6066
+ unit_price: string;
6067
+ /**
6068
+ * If true, the unit price will be prorated to the billing period
6069
+ */
6070
+ prorate?: boolean | null;
6071
+ /**
6072
+ * Used to determine the unit rate (optional)
6073
+ */
6074
+ second_dimension?: string | null;
6075
+ }
6076
+ namespace ScalableMatrixWithUnitPricingConfig {
6077
+ /**
6078
+ * Configuration for a single matrix scaling factor
6079
+ */
6080
+ interface MatrixScalingFactor {
6081
+ /**
6082
+ * First dimension value
6083
+ */
6084
+ first_dimension_value: string;
6085
+ /**
6086
+ * Scaling factor
6087
+ */
6088
+ scaling_factor: string;
6089
+ /**
6090
+ * Second dimension value (optional)
6091
+ */
6092
+ second_dimension_value?: string | null;
6093
+ }
6094
+ }
6095
+ }
4851
6096
  export interface NewPlanThresholdTotalAmountPrice {
4852
6097
  /**
4853
6098
  * The cadence to bill for this price on.
@@ -4857,14 +6102,18 @@ export interface NewPlanThresholdTotalAmountPrice {
4857
6102
  * The id of the item the price will be associated with.
4858
6103
  */
4859
6104
  item_id: string;
6105
+ /**
6106
+ * The pricing model type
6107
+ */
4860
6108
  model_type: 'threshold_total_amount';
4861
6109
  /**
4862
6110
  * The name of the price.
4863
6111
  */
4864
6112
  name: string;
4865
- threshold_total_amount_config: {
4866
- [key: string]: unknown;
4867
- };
6113
+ /**
6114
+ * Configuration for threshold_total_amount pricing
6115
+ */
6116
+ threshold_total_amount_config: NewPlanThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
4868
6117
  /**
4869
6118
  * The id of the billable metric for the price. Only needed if the price is
4870
6119
  * usage-based.
@@ -4929,86 +6178,36 @@ export interface NewPlanThresholdTotalAmountPrice {
4929
6178
  */
4930
6179
  reference_id?: string | null;
4931
6180
  }
4932
- export interface NewPlanTierWithProrationPrice {
6181
+ export declare namespace NewPlanThresholdTotalAmountPrice {
4933
6182
  /**
4934
- * The cadence to bill for this price on.
6183
+ * Configuration for threshold_total_amount pricing
4935
6184
  */
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;
6185
+ interface ThresholdTotalAmountConfig {
6186
+ /**
6187
+ * When the quantity consumed passes a provided threshold, the configured total
6188
+ * will be charged
6189
+ */
6190
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
6191
+ /**
6192
+ * If true, the unit price will be prorated to the billing period
6193
+ */
6194
+ prorate?: boolean | null;
6195
+ }
6196
+ namespace ThresholdTotalAmountConfig {
6197
+ /**
6198
+ * Configuration for a single threshold
6199
+ */
6200
+ interface ConsumptionTable {
6201
+ /**
6202
+ * Quantity threshold
6203
+ */
6204
+ threshold: string;
6205
+ /**
6206
+ * Total amount for this threshold
6207
+ */
6208
+ total_amount: string;
6209
+ }
6210
+ }
5012
6211
  }
5013
6212
  export interface NewPlanTieredPackagePrice {
5014
6213
  /**
@@ -5019,14 +6218,18 @@ export interface NewPlanTieredPackagePrice {
5019
6218
  * The id of the item the price will be associated with.
5020
6219
  */
5021
6220
  item_id: string;
6221
+ /**
6222
+ * The pricing model type
6223
+ */
5022
6224
  model_type: 'tiered_package';
5023
6225
  /**
5024
6226
  * The name of the price.
5025
6227
  */
5026
6228
  name: string;
5027
- tiered_package_config: {
5028
- [key: string]: unknown;
5029
- };
6229
+ /**
6230
+ * Configuration for tiered_package pricing
6231
+ */
6232
+ tiered_package_config: NewPlanTieredPackagePrice.TieredPackageConfig;
5030
6233
  /**
5031
6234
  * The id of the billable metric for the price. Only needed if the price is
5032
6235
  * usage-based.
@@ -5091,6 +6294,37 @@ export interface NewPlanTieredPackagePrice {
5091
6294
  */
5092
6295
  reference_id?: string | null;
5093
6296
  }
6297
+ export declare namespace NewPlanTieredPackagePrice {
6298
+ /**
6299
+ * Configuration for tiered_package pricing
6300
+ */
6301
+ interface TieredPackageConfig {
6302
+ /**
6303
+ * Package size
6304
+ */
6305
+ package_size: string;
6306
+ /**
6307
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
6308
+ * are defined using exclusive lower bounds.
6309
+ */
6310
+ tiers: Array<TieredPackageConfig.Tier>;
6311
+ }
6312
+ namespace TieredPackageConfig {
6313
+ /**
6314
+ * Configuration for a single tier with business logic
6315
+ */
6316
+ interface Tier {
6317
+ /**
6318
+ * Price per package
6319
+ */
6320
+ per_unit: string;
6321
+ /**
6322
+ * Tier lower bound
6323
+ */
6324
+ tier_lower_bound: string;
6325
+ }
6326
+ }
6327
+ }
5094
6328
  export interface NewPlanTieredPackageWithMinimumPrice {
5095
6329
  /**
5096
6330
  * The cadence to bill for this price on.
@@ -5100,14 +6334,18 @@ export interface NewPlanTieredPackageWithMinimumPrice {
5100
6334
  * The id of the item the price will be associated with.
5101
6335
  */
5102
6336
  item_id: string;
6337
+ /**
6338
+ * The pricing model type
6339
+ */
5103
6340
  model_type: 'tiered_package_with_minimum';
5104
6341
  /**
5105
6342
  * The name of the price.
5106
6343
  */
5107
6344
  name: string;
5108
- tiered_package_with_minimum_config: {
5109
- [key: string]: unknown;
5110
- };
6345
+ /**
6346
+ * Configuration for tiered_package_with_minimum pricing
6347
+ */
6348
+ tiered_package_with_minimum_config: NewPlanTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
5111
6349
  /**
5112
6350
  * The id of the billable metric for the price. Only needed if the price is
5113
6351
  * usage-based.
@@ -5172,6 +6410,41 @@ export interface NewPlanTieredPackageWithMinimumPrice {
5172
6410
  */
5173
6411
  reference_id?: string | null;
5174
6412
  }
6413
+ export declare namespace NewPlanTieredPackageWithMinimumPrice {
6414
+ /**
6415
+ * Configuration for tiered_package_with_minimum pricing
6416
+ */
6417
+ interface TieredPackageWithMinimumConfig {
6418
+ /**
6419
+ * Package size
6420
+ */
6421
+ package_size: number;
6422
+ /**
6423
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
6424
+ * are defined using exclusive lower bounds.
6425
+ */
6426
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
6427
+ }
6428
+ namespace TieredPackageWithMinimumConfig {
6429
+ /**
6430
+ * Configuration for a single tier
6431
+ */
6432
+ interface Tier {
6433
+ /**
6434
+ * Minimum amount
6435
+ */
6436
+ minimum_amount: string;
6437
+ /**
6438
+ * Price per package
6439
+ */
6440
+ per_unit: string;
6441
+ /**
6442
+ * Tier lower bound
6443
+ */
6444
+ tier_lower_bound: string;
6445
+ }
6446
+ }
6447
+ }
5175
6448
  export interface NewPlanTieredPrice {
5176
6449
  /**
5177
6450
  * The cadence to bill for this price on.
@@ -5181,11 +6454,17 @@ export interface NewPlanTieredPrice {
5181
6454
  * The id of the item the price will be associated with.
5182
6455
  */
5183
6456
  item_id: string;
6457
+ /**
6458
+ * The pricing model type
6459
+ */
5184
6460
  model_type: 'tiered';
5185
6461
  /**
5186
6462
  * The name of the price.
5187
6463
  */
5188
6464
  name: string;
6465
+ /**
6466
+ * Configuration for tiered pricing
6467
+ */
5189
6468
  tiered_config: TieredConfig;
5190
6469
  /**
5191
6470
  * The id of the billable metric for the price. Only needed if the price is
@@ -5260,14 +6539,18 @@ export interface NewPlanTieredWithMinimumPrice {
5260
6539
  * The id of the item the price will be associated with.
5261
6540
  */
5262
6541
  item_id: string;
6542
+ /**
6543
+ * The pricing model type
6544
+ */
5263
6545
  model_type: 'tiered_with_minimum';
5264
6546
  /**
5265
6547
  * The name of the price.
5266
6548
  */
5267
6549
  name: string;
5268
- tiered_with_minimum_config: {
5269
- [key: string]: unknown;
5270
- };
6550
+ /**
6551
+ * Configuration for tiered_with_minimum pricing
6552
+ */
6553
+ tiered_with_minimum_config: NewPlanTieredWithMinimumPrice.TieredWithMinimumConfig;
5271
6554
  /**
5272
6555
  * The id of the billable metric for the price. Only needed if the price is
5273
6556
  * usage-based.
@@ -5332,6 +6615,45 @@ export interface NewPlanTieredWithMinimumPrice {
5332
6615
  */
5333
6616
  reference_id?: string | null;
5334
6617
  }
6618
+ export declare namespace NewPlanTieredWithMinimumPrice {
6619
+ /**
6620
+ * Configuration for tiered_with_minimum pricing
6621
+ */
6622
+ interface TieredWithMinimumConfig {
6623
+ /**
6624
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
6625
+ * defined using exclusive lower bounds.
6626
+ */
6627
+ tiers: Array<TieredWithMinimumConfig.Tier>;
6628
+ /**
6629
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
6630
+ */
6631
+ hide_zero_amount_tiers?: boolean;
6632
+ /**
6633
+ * If true, the unit price will be prorated to the billing period
6634
+ */
6635
+ prorate?: boolean;
6636
+ }
6637
+ namespace TieredWithMinimumConfig {
6638
+ /**
6639
+ * Configuration for a single tier
6640
+ */
6641
+ interface Tier {
6642
+ /**
6643
+ * Minimum amount
6644
+ */
6645
+ minimum_amount: string;
6646
+ /**
6647
+ * Tier lower bound
6648
+ */
6649
+ tier_lower_bound: string;
6650
+ /**
6651
+ * Per unit amount
6652
+ */
6653
+ unit_amount: string;
6654
+ }
6655
+ }
6656
+ }
5335
6657
  export interface NewPlanUnitPrice {
5336
6658
  /**
5337
6659
  * The cadence to bill for this price on.
@@ -5341,11 +6663,17 @@ export interface NewPlanUnitPrice {
5341
6663
  * The id of the item the price will be associated with.
5342
6664
  */
5343
6665
  item_id: string;
6666
+ /**
6667
+ * The pricing model type
6668
+ */
5344
6669
  model_type: 'unit';
5345
6670
  /**
5346
6671
  * The name of the price.
5347
6672
  */
5348
6673
  name: string;
6674
+ /**
6675
+ * Configuration for unit pricing
6676
+ */
5349
6677
  unit_config: UnitConfig;
5350
6678
  /**
5351
6679
  * The id of the billable metric for the price. Only needed if the price is
@@ -5420,14 +6748,18 @@ export interface NewPlanUnitWithPercentPrice {
5420
6748
  * The id of the item the price will be associated with.
5421
6749
  */
5422
6750
  item_id: string;
6751
+ /**
6752
+ * The pricing model type
6753
+ */
5423
6754
  model_type: 'unit_with_percent';
5424
6755
  /**
5425
6756
  * The name of the price.
5426
6757
  */
5427
6758
  name: string;
5428
- unit_with_percent_config: {
5429
- [key: string]: unknown;
5430
- };
6759
+ /**
6760
+ * Configuration for unit_with_percent pricing
6761
+ */
6762
+ unit_with_percent_config: NewPlanUnitWithPercentPrice.UnitWithPercentConfig;
5431
6763
  /**
5432
6764
  * The id of the billable metric for the price. Only needed if the price is
5433
6765
  * usage-based.
@@ -5492,6 +6824,21 @@ export interface NewPlanUnitWithPercentPrice {
5492
6824
  */
5493
6825
  reference_id?: string | null;
5494
6826
  }
6827
+ export declare namespace NewPlanUnitWithPercentPrice {
6828
+ /**
6829
+ * Configuration for unit_with_percent pricing
6830
+ */
6831
+ interface UnitWithPercentConfig {
6832
+ /**
6833
+ * What percent, out of 100, of the calculated total to charge
6834
+ */
6835
+ percent: string;
6836
+ /**
6837
+ * Rate per unit of usage
6838
+ */
6839
+ unit_amount: string;
6840
+ }
6841
+ }
5495
6842
  export interface NewPlanUnitWithProrationPrice {
5496
6843
  /**
5497
6844
  * The cadence to bill for this price on.
@@ -5501,14 +6848,18 @@ export interface NewPlanUnitWithProrationPrice {
5501
6848
  * The id of the item the price will be associated with.
5502
6849
  */
5503
6850
  item_id: string;
6851
+ /**
6852
+ * The pricing model type
6853
+ */
5504
6854
  model_type: 'unit_with_proration';
5505
6855
  /**
5506
6856
  * The name of the price.
5507
6857
  */
5508
6858
  name: string;
5509
- unit_with_proration_config: {
5510
- [key: string]: unknown;
5511
- };
6859
+ /**
6860
+ * Configuration for unit_with_proration pricing
6861
+ */
6862
+ unit_with_proration_config: NewPlanUnitWithProrationPrice.UnitWithProrationConfig;
5512
6863
  /**
5513
6864
  * The id of the billable metric for the price. Only needed if the price is
5514
6865
  * usage-based.
@@ -5573,6 +6924,17 @@ export interface NewPlanUnitWithProrationPrice {
5573
6924
  */
5574
6925
  reference_id?: string | null;
5575
6926
  }
6927
+ export declare namespace NewPlanUnitWithProrationPrice {
6928
+ /**
6929
+ * Configuration for unit_with_proration pricing
6930
+ */
6931
+ interface UnitWithProrationConfig {
6932
+ /**
6933
+ * Rate per unit of usage
6934
+ */
6935
+ unit_amount: string;
6936
+ }
6937
+ }
5576
6938
  export interface NewUsageDiscount {
5577
6939
  adjustment_type: 'usage_discount';
5578
6940
  usage_discount: number;
@@ -5616,6 +6978,9 @@ export interface OtherSubLineItem {
5616
6978
  quantity: number;
5617
6979
  type: "'null'";
5618
6980
  }
6981
+ /**
6982
+ * Configuration for package pricing
6983
+ */
5619
6984
  export interface PackageConfig {
5620
6985
  /**
5621
6986
  * A currency amount to rate usage by
@@ -5886,7 +7251,7 @@ export interface PlanPhaseUsageDiscountAdjustment {
5886
7251
  * For more on the types of prices, see
5887
7252
  * [the core concepts documentation](/core-concepts#plan-and-price)
5888
7253
  */
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;
7254
+ 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
7255
  export declare namespace Price {
5891
7256
  interface UnitPrice {
5892
7257
  id: string;
@@ -5932,19 +7297,25 @@ export declare namespace Price {
5932
7297
  * @deprecated
5933
7298
  */
5934
7299
  minimum_amount: string | null;
7300
+ /**
7301
+ * The pricing model type
7302
+ */
5935
7303
  model_type: 'unit';
5936
7304
  name: string;
5937
7305
  plan_phase_order: number | null;
5938
- price_type: 'usage_price' | 'fixed_price';
7306
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
5939
7307
  /**
5940
7308
  * The price id this price replaces. This price will take the place of the replaced
5941
7309
  * price in plan version migrations.
5942
7310
  */
5943
7311
  replaces_price_id: string | null;
7312
+ /**
7313
+ * Configuration for unit pricing
7314
+ */
5944
7315
  unit_config: Shared.UnitConfig;
5945
7316
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
5946
7317
  }
5947
- interface PackagePrice {
7318
+ interface TieredPrice {
5948
7319
  id: string;
5949
7320
  billable_metric: Shared.BillableMetricTiny | null;
5950
7321
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -5988,22 +7359,32 @@ export declare namespace Price {
5988
7359
  * @deprecated
5989
7360
  */
5990
7361
  minimum_amount: string | null;
5991
- model_type: 'package';
7362
+ /**
7363
+ * The pricing model type
7364
+ */
7365
+ model_type: 'tiered';
5992
7366
  name: string;
5993
- package_config: Shared.PackageConfig;
5994
7367
  plan_phase_order: number | null;
5995
- price_type: 'usage_price' | 'fixed_price';
7368
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
5996
7369
  /**
5997
7370
  * The price id this price replaces. This price will take the place of the replaced
5998
7371
  * price in plan version migrations.
5999
7372
  */
6000
7373
  replaces_price_id: string | null;
7374
+ /**
7375
+ * Configuration for tiered pricing
7376
+ */
7377
+ tiered_config: Shared.TieredConfig;
6001
7378
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6002
7379
  }
6003
- interface MatrixPrice {
7380
+ interface BulkPrice {
6004
7381
  id: string;
6005
7382
  billable_metric: Shared.BillableMetricTiny | null;
6006
7383
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7384
+ /**
7385
+ * Configuration for bulk pricing
7386
+ */
7387
+ bulk_config: Shared.BulkConfig;
6007
7388
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6008
7389
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6009
7390
  conversion_rate: number | null;
@@ -6019,7 +7400,6 @@ export declare namespace Price {
6019
7400
  fixed_price_quantity: number | null;
6020
7401
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6021
7402
  item: Shared.ItemSlim;
6022
- matrix_config: Shared.MatrixConfig;
6023
7403
  /**
6024
7404
  * @deprecated
6025
7405
  */
@@ -6045,10 +7425,13 @@ export declare namespace Price {
6045
7425
  * @deprecated
6046
7426
  */
6047
7427
  minimum_amount: string | null;
6048
- model_type: 'matrix';
7428
+ /**
7429
+ * The pricing model type
7430
+ */
7431
+ model_type: 'bulk';
6049
7432
  name: string;
6050
7433
  plan_phase_order: number | null;
6051
- price_type: 'usage_price' | 'fixed_price';
7434
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6052
7435
  /**
6053
7436
  * The price id this price replaces. This price will take the place of the replaced
6054
7437
  * price in plan version migrations.
@@ -6056,7 +7439,7 @@ export declare namespace Price {
6056
7439
  replaces_price_id: string | null;
6057
7440
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6058
7441
  }
6059
- interface TieredPrice {
7442
+ interface PackagePrice {
6060
7443
  id: string;
6061
7444
  billable_metric: Shared.BillableMetricTiny | null;
6062
7445
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6100,23 +7483,28 @@ export declare namespace Price {
6100
7483
  * @deprecated
6101
7484
  */
6102
7485
  minimum_amount: string | null;
6103
- model_type: 'tiered';
7486
+ /**
7487
+ * The pricing model type
7488
+ */
7489
+ model_type: 'package';
6104
7490
  name: string;
7491
+ /**
7492
+ * Configuration for package pricing
7493
+ */
7494
+ package_config: Shared.PackageConfig;
6105
7495
  plan_phase_order: number | null;
6106
- price_type: 'usage_price' | 'fixed_price';
7496
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6107
7497
  /**
6108
7498
  * The price id this price replaces. This price will take the place of the replaced
6109
7499
  * price in plan version migrations.
6110
7500
  */
6111
7501
  replaces_price_id: string | null;
6112
- tiered_config: Shared.TieredConfig;
6113
7502
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6114
7503
  }
6115
- interface BulkPrice {
7504
+ interface MatrixPrice {
6116
7505
  id: string;
6117
7506
  billable_metric: Shared.BillableMetricTiny | null;
6118
7507
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
6119
- bulk_config: Shared.BulkConfig;
6120
7508
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6121
7509
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6122
7510
  conversion_rate: number | null;
@@ -6132,6 +7520,10 @@ export declare namespace Price {
6132
7520
  fixed_price_quantity: number | null;
6133
7521
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6134
7522
  item: Shared.ItemSlim;
7523
+ /**
7524
+ * Configuration for matrix pricing
7525
+ */
7526
+ matrix_config: Shared.MatrixConfig;
6135
7527
  /**
6136
7528
  * @deprecated
6137
7529
  */
@@ -6157,10 +7549,13 @@ export declare namespace Price {
6157
7549
  * @deprecated
6158
7550
  */
6159
7551
  minimum_amount: string | null;
6160
- model_type: 'bulk';
7552
+ /**
7553
+ * The pricing model type
7554
+ */
7555
+ model_type: 'matrix';
6161
7556
  name: string;
6162
7557
  plan_phase_order: number | null;
6163
- price_type: 'usage_price' | 'fixed_price';
7558
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6164
7559
  /**
6165
7560
  * The price id this price replaces. This price will take the place of the replaced
6166
7561
  * price in plan version migrations.
@@ -6212,20 +7607,55 @@ export declare namespace Price {
6212
7607
  * @deprecated
6213
7608
  */
6214
7609
  minimum_amount: string | null;
7610
+ /**
7611
+ * The pricing model type
7612
+ */
6215
7613
  model_type: 'threshold_total_amount';
6216
7614
  name: string;
6217
7615
  plan_phase_order: number | null;
6218
- price_type: 'usage_price' | 'fixed_price';
7616
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6219
7617
  /**
6220
7618
  * The price id this price replaces. This price will take the place of the replaced
6221
7619
  * price in plan version migrations.
6222
7620
  */
6223
7621
  replaces_price_id: string | null;
6224
- threshold_total_amount_config: {
6225
- [key: string]: unknown;
6226
- };
7622
+ /**
7623
+ * Configuration for threshold_total_amount pricing
7624
+ */
7625
+ threshold_total_amount_config: ThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
6227
7626
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6228
7627
  }
7628
+ namespace ThresholdTotalAmountPrice {
7629
+ /**
7630
+ * Configuration for threshold_total_amount pricing
7631
+ */
7632
+ interface ThresholdTotalAmountConfig {
7633
+ /**
7634
+ * When the quantity consumed passes a provided threshold, the configured total
7635
+ * will be charged
7636
+ */
7637
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
7638
+ /**
7639
+ * If true, the unit price will be prorated to the billing period
7640
+ */
7641
+ prorate?: boolean | null;
7642
+ }
7643
+ namespace ThresholdTotalAmountConfig {
7644
+ /**
7645
+ * Configuration for a single threshold
7646
+ */
7647
+ interface ConsumptionTable {
7648
+ /**
7649
+ * Quantity threshold
7650
+ */
7651
+ threshold: string;
7652
+ /**
7653
+ * Total amount for this threshold
7654
+ */
7655
+ total_amount: string;
7656
+ }
7657
+ }
7658
+ }
6229
7659
  interface TieredPackagePrice {
6230
7660
  id: string;
6231
7661
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6270,21 +7700,56 @@ export declare namespace Price {
6270
7700
  * @deprecated
6271
7701
  */
6272
7702
  minimum_amount: string | null;
7703
+ /**
7704
+ * The pricing model type
7705
+ */
6273
7706
  model_type: 'tiered_package';
6274
7707
  name: string;
6275
7708
  plan_phase_order: number | null;
6276
- price_type: 'usage_price' | 'fixed_price';
7709
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6277
7710
  /**
6278
7711
  * The price id this price replaces. This price will take the place of the replaced
6279
7712
  * price in plan version migrations.
6280
7713
  */
6281
7714
  replaces_price_id: string | null;
6282
- tiered_package_config: {
6283
- [key: string]: unknown;
6284
- };
7715
+ /**
7716
+ * Configuration for tiered_package pricing
7717
+ */
7718
+ tiered_package_config: TieredPackagePrice.TieredPackageConfig;
6285
7719
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6286
7720
  }
6287
- interface GroupedTieredPrice {
7721
+ namespace TieredPackagePrice {
7722
+ /**
7723
+ * Configuration for tiered_package pricing
7724
+ */
7725
+ interface TieredPackageConfig {
7726
+ /**
7727
+ * Package size
7728
+ */
7729
+ package_size: string;
7730
+ /**
7731
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7732
+ * are defined using exclusive lower bounds.
7733
+ */
7734
+ tiers: Array<TieredPackageConfig.Tier>;
7735
+ }
7736
+ namespace TieredPackageConfig {
7737
+ /**
7738
+ * Configuration for a single tier with business logic
7739
+ */
7740
+ interface Tier {
7741
+ /**
7742
+ * Price per package
7743
+ */
7744
+ per_unit: string;
7745
+ /**
7746
+ * Tier lower bound
7747
+ */
7748
+ tier_lower_bound: string;
7749
+ }
7750
+ }
7751
+ }
7752
+ interface TieredWithMinimumPrice {
6288
7753
  id: string;
6289
7754
  billable_metric: Shared.BillableMetricTiny | null;
6290
7755
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6301,9 +7766,6 @@ export declare namespace Price {
6301
7766
  discount: Shared.Discount | null;
6302
7767
  external_price_id: string | null;
6303
7768
  fixed_price_quantity: number | null;
6304
- grouped_tiered_config: {
6305
- [key: string]: unknown;
6306
- };
6307
7769
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6308
7770
  item: Shared.ItemSlim;
6309
7771
  /**
@@ -6331,18 +7793,64 @@ export declare namespace Price {
6331
7793
  * @deprecated
6332
7794
  */
6333
7795
  minimum_amount: string | null;
6334
- model_type: 'grouped_tiered';
7796
+ /**
7797
+ * The pricing model type
7798
+ */
7799
+ model_type: 'tiered_with_minimum';
6335
7800
  name: string;
6336
7801
  plan_phase_order: number | null;
6337
- price_type: 'usage_price' | 'fixed_price';
7802
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6338
7803
  /**
6339
7804
  * The price id this price replaces. This price will take the place of the replaced
6340
7805
  * price in plan version migrations.
6341
7806
  */
6342
7807
  replaces_price_id: string | null;
7808
+ /**
7809
+ * Configuration for tiered_with_minimum pricing
7810
+ */
7811
+ tiered_with_minimum_config: TieredWithMinimumPrice.TieredWithMinimumConfig;
6343
7812
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6344
7813
  }
6345
- interface TieredWithMinimumPrice {
7814
+ namespace TieredWithMinimumPrice {
7815
+ /**
7816
+ * Configuration for tiered_with_minimum pricing
7817
+ */
7818
+ interface TieredWithMinimumConfig {
7819
+ /**
7820
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
7821
+ * defined using exclusive lower bounds.
7822
+ */
7823
+ tiers: Array<TieredWithMinimumConfig.Tier>;
7824
+ /**
7825
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
7826
+ */
7827
+ hide_zero_amount_tiers?: boolean;
7828
+ /**
7829
+ * If true, the unit price will be prorated to the billing period
7830
+ */
7831
+ prorate?: boolean;
7832
+ }
7833
+ namespace TieredWithMinimumConfig {
7834
+ /**
7835
+ * Configuration for a single tier
7836
+ */
7837
+ interface Tier {
7838
+ /**
7839
+ * Minimum amount
7840
+ */
7841
+ minimum_amount: string;
7842
+ /**
7843
+ * Tier lower bound
7844
+ */
7845
+ tier_lower_bound: string;
7846
+ /**
7847
+ * Per unit amount
7848
+ */
7849
+ unit_amount: string;
7850
+ }
7851
+ }
7852
+ }
7853
+ interface GroupedTieredPrice {
6346
7854
  id: string;
6347
7855
  billable_metric: Shared.BillableMetricTiny | null;
6348
7856
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6359,6 +7867,10 @@ export declare namespace Price {
6359
7867
  discount: Shared.Discount | null;
6360
7868
  external_price_id: string | null;
6361
7869
  fixed_price_quantity: number | null;
7870
+ /**
7871
+ * Configuration for grouped_tiered pricing
7872
+ */
7873
+ grouped_tiered_config: GroupedTieredPrice.GroupedTieredConfig;
6362
7874
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6363
7875
  item: Shared.ItemSlim;
6364
7876
  /**
@@ -6386,20 +7898,51 @@ export declare namespace Price {
6386
7898
  * @deprecated
6387
7899
  */
6388
7900
  minimum_amount: string | null;
6389
- model_type: 'tiered_with_minimum';
7901
+ /**
7902
+ * The pricing model type
7903
+ */
7904
+ model_type: 'grouped_tiered';
6390
7905
  name: string;
6391
7906
  plan_phase_order: number | null;
6392
- price_type: 'usage_price' | 'fixed_price';
7907
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6393
7908
  /**
6394
7909
  * The price id this price replaces. This price will take the place of the replaced
6395
7910
  * price in plan version migrations.
6396
7911
  */
6397
7912
  replaces_price_id: string | null;
6398
- tiered_with_minimum_config: {
6399
- [key: string]: unknown;
6400
- };
6401
7913
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6402
7914
  }
7915
+ namespace GroupedTieredPrice {
7916
+ /**
7917
+ * Configuration for grouped_tiered pricing
7918
+ */
7919
+ interface GroupedTieredConfig {
7920
+ /**
7921
+ * The billable metric property used to group before tiering
7922
+ */
7923
+ grouping_key: string;
7924
+ /**
7925
+ * Apply tiered pricing to each segment generated after grouping with the provided
7926
+ * key
7927
+ */
7928
+ tiers: Array<GroupedTieredConfig.Tier>;
7929
+ }
7930
+ namespace GroupedTieredConfig {
7931
+ /**
7932
+ * Configuration for a single tier
7933
+ */
7934
+ interface Tier {
7935
+ /**
7936
+ * Tier lower bound
7937
+ */
7938
+ tier_lower_bound: string;
7939
+ /**
7940
+ * Per unit amount
7941
+ */
7942
+ unit_amount: string;
7943
+ }
7944
+ }
7945
+ }
6403
7946
  interface TieredPackageWithMinimumPrice {
6404
7947
  id: string;
6405
7948
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6444,20 +7987,59 @@ export declare namespace Price {
6444
7987
  * @deprecated
6445
7988
  */
6446
7989
  minimum_amount: string | null;
7990
+ /**
7991
+ * The pricing model type
7992
+ */
6447
7993
  model_type: 'tiered_package_with_minimum';
6448
7994
  name: string;
6449
7995
  plan_phase_order: number | null;
6450
- price_type: 'usage_price' | 'fixed_price';
7996
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6451
7997
  /**
6452
7998
  * The price id this price replaces. This price will take the place of the replaced
6453
7999
  * price in plan version migrations.
6454
8000
  */
6455
8001
  replaces_price_id: string | null;
6456
- tiered_package_with_minimum_config: {
6457
- [key: string]: unknown;
6458
- };
8002
+ /**
8003
+ * Configuration for tiered_package_with_minimum pricing
8004
+ */
8005
+ tiered_package_with_minimum_config: TieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
6459
8006
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6460
8007
  }
8008
+ namespace TieredPackageWithMinimumPrice {
8009
+ /**
8010
+ * Configuration for tiered_package_with_minimum pricing
8011
+ */
8012
+ interface TieredPackageWithMinimumConfig {
8013
+ /**
8014
+ * Package size
8015
+ */
8016
+ package_size: number;
8017
+ /**
8018
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
8019
+ * are defined using exclusive lower bounds.
8020
+ */
8021
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
8022
+ }
8023
+ namespace TieredPackageWithMinimumConfig {
8024
+ /**
8025
+ * Configuration for a single tier
8026
+ */
8027
+ interface Tier {
8028
+ /**
8029
+ * Minimum amount
8030
+ */
8031
+ minimum_amount: string;
8032
+ /**
8033
+ * Price per package
8034
+ */
8035
+ per_unit: string;
8036
+ /**
8037
+ * Tier lower bound
8038
+ */
8039
+ tier_lower_bound: string;
8040
+ }
8041
+ }
8042
+ }
6461
8043
  interface PackageWithAllocationPrice {
6462
8044
  id: string;
6463
8045
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6502,13 +8084,17 @@ export declare namespace Price {
6502
8084
  * @deprecated
6503
8085
  */
6504
8086
  minimum_amount: string | null;
8087
+ /**
8088
+ * The pricing model type
8089
+ */
6505
8090
  model_type: 'package_with_allocation';
6506
8091
  name: string;
6507
- package_with_allocation_config: {
6508
- [key: string]: unknown;
6509
- };
8092
+ /**
8093
+ * Configuration for package_with_allocation pricing
8094
+ */
8095
+ package_with_allocation_config: PackageWithAllocationPrice.PackageWithAllocationConfig;
6510
8096
  plan_phase_order: number | null;
6511
- price_type: 'usage_price' | 'fixed_price';
8097
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6512
8098
  /**
6513
8099
  * The price id this price replaces. This price will take the place of the replaced
6514
8100
  * price in plan version migrations.
@@ -6516,6 +8102,25 @@ export declare namespace Price {
6516
8102
  replaces_price_id: string | null;
6517
8103
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6518
8104
  }
8105
+ namespace PackageWithAllocationPrice {
8106
+ /**
8107
+ * Configuration for package_with_allocation pricing
8108
+ */
8109
+ interface PackageWithAllocationConfig {
8110
+ /**
8111
+ * Usage allocation
8112
+ */
8113
+ allocation: string;
8114
+ /**
8115
+ * Price per package
8116
+ */
8117
+ package_amount: string;
8118
+ /**
8119
+ * Package size
8120
+ */
8121
+ package_size: string;
8122
+ }
8123
+ }
6519
8124
  interface UnitWithPercentPrice {
6520
8125
  id: string;
6521
8126
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6560,20 +8165,39 @@ export declare namespace Price {
6560
8165
  * @deprecated
6561
8166
  */
6562
8167
  minimum_amount: string | null;
8168
+ /**
8169
+ * The pricing model type
8170
+ */
6563
8171
  model_type: 'unit_with_percent';
6564
8172
  name: string;
6565
8173
  plan_phase_order: number | null;
6566
- price_type: 'usage_price' | 'fixed_price';
8174
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6567
8175
  /**
6568
8176
  * The price id this price replaces. This price will take the place of the replaced
6569
8177
  * price in plan version migrations.
6570
8178
  */
6571
8179
  replaces_price_id: string | null;
6572
- unit_with_percent_config: {
6573
- [key: string]: unknown;
6574
- };
8180
+ /**
8181
+ * Configuration for unit_with_percent pricing
8182
+ */
8183
+ unit_with_percent_config: UnitWithPercentPrice.UnitWithPercentConfig;
6575
8184
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6576
8185
  }
8186
+ namespace UnitWithPercentPrice {
8187
+ /**
8188
+ * Configuration for unit_with_percent pricing
8189
+ */
8190
+ interface UnitWithPercentConfig {
8191
+ /**
8192
+ * What percent, out of 100, of the calculated total to charge
8193
+ */
8194
+ percent: string;
8195
+ /**
8196
+ * Rate per unit of usage
8197
+ */
8198
+ unit_amount: string;
8199
+ }
8200
+ }
6577
8201
  interface MatrixWithAllocationPrice {
6578
8202
  id: string;
6579
8203
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6593,6 +8217,9 @@ export declare namespace Price {
6593
8217
  fixed_price_quantity: number | null;
6594
8218
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6595
8219
  item: Shared.ItemSlim;
8220
+ /**
8221
+ * Configuration for matrix_with_allocation pricing
8222
+ */
6596
8223
  matrix_with_allocation_config: Shared.MatrixWithAllocationConfig;
6597
8224
  /**
6598
8225
  * @deprecated
@@ -6619,10 +8246,13 @@ export declare namespace Price {
6619
8246
  * @deprecated
6620
8247
  */
6621
8248
  minimum_amount: string | null;
8249
+ /**
8250
+ * The pricing model type
8251
+ */
6622
8252
  model_type: 'matrix_with_allocation';
6623
8253
  name: string;
6624
8254
  plan_phase_order: number | null;
6625
- price_type: 'usage_price' | 'fixed_price';
8255
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6626
8256
  /**
6627
8257
  * The price id this price replaces. This price will take the place of the replaced
6628
8258
  * price in plan version migrations.
@@ -6674,20 +8304,51 @@ export declare namespace Price {
6674
8304
  * @deprecated
6675
8305
  */
6676
8306
  minimum_amount: string | null;
8307
+ /**
8308
+ * The pricing model type
8309
+ */
6677
8310
  model_type: 'tiered_with_proration';
6678
8311
  name: string;
6679
8312
  plan_phase_order: number | null;
6680
- price_type: 'usage_price' | 'fixed_price';
8313
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6681
8314
  /**
6682
8315
  * The price id this price replaces. This price will take the place of the replaced
6683
8316
  * price in plan version migrations.
6684
8317
  */
6685
8318
  replaces_price_id: string | null;
6686
- tiered_with_proration_config: {
6687
- [key: string]: unknown;
6688
- };
8319
+ /**
8320
+ * Configuration for tiered_with_proration pricing
8321
+ */
8322
+ tiered_with_proration_config: TieredWithProrationPrice.TieredWithProrationConfig;
6689
8323
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6690
8324
  }
8325
+ namespace TieredWithProrationPrice {
8326
+ /**
8327
+ * Configuration for tiered_with_proration pricing
8328
+ */
8329
+ interface TieredWithProrationConfig {
8330
+ /**
8331
+ * Tiers for rating based on total usage quantities into the specified tier with
8332
+ * proration
8333
+ */
8334
+ tiers: Array<TieredWithProrationConfig.Tier>;
8335
+ }
8336
+ namespace TieredWithProrationConfig {
8337
+ /**
8338
+ * Configuration for a single tiered with proration tier
8339
+ */
8340
+ interface Tier {
8341
+ /**
8342
+ * Inclusive tier starting value
8343
+ */
8344
+ tier_lower_bound: string;
8345
+ /**
8346
+ * Amount per unit
8347
+ */
8348
+ unit_amount: string;
8349
+ }
8350
+ }
8351
+ }
6691
8352
  interface UnitWithProrationPrice {
6692
8353
  id: string;
6693
8354
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6732,20 +8393,35 @@ export declare namespace Price {
6732
8393
  * @deprecated
6733
8394
  */
6734
8395
  minimum_amount: string | null;
8396
+ /**
8397
+ * The pricing model type
8398
+ */
6735
8399
  model_type: 'unit_with_proration';
6736
8400
  name: string;
6737
8401
  plan_phase_order: number | null;
6738
- price_type: 'usage_price' | 'fixed_price';
8402
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6739
8403
  /**
6740
8404
  * The price id this price replaces. This price will take the place of the replaced
6741
8405
  * price in plan version migrations.
6742
8406
  */
6743
8407
  replaces_price_id: string | null;
6744
- unit_with_proration_config: {
6745
- [key: string]: unknown;
6746
- };
8408
+ /**
8409
+ * Configuration for unit_with_proration pricing
8410
+ */
8411
+ unit_with_proration_config: UnitWithProrationPrice.UnitWithProrationConfig;
6747
8412
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6748
8413
  }
8414
+ namespace UnitWithProrationPrice {
8415
+ /**
8416
+ * Configuration for unit_with_proration pricing
8417
+ */
8418
+ interface UnitWithProrationConfig {
8419
+ /**
8420
+ * Rate per unit of usage
8421
+ */
8422
+ unit_amount: string;
8423
+ }
8424
+ }
6749
8425
  interface GroupedAllocationPrice {
6750
8426
  id: string;
6751
8427
  billable_metric: Shared.BillableMetricTiny | null;
@@ -6763,9 +8439,10 @@ export declare namespace Price {
6763
8439
  discount: Shared.Discount | null;
6764
8440
  external_price_id: string | null;
6765
8441
  fixed_price_quantity: number | null;
6766
- grouped_allocation_config: {
6767
- [key: string]: unknown;
6768
- };
8442
+ /**
8443
+ * Configuration for grouped_allocation pricing
8444
+ */
8445
+ grouped_allocation_config: GroupedAllocationPrice.GroupedAllocationConfig;
6769
8446
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6770
8447
  item: Shared.ItemSlim;
6771
8448
  /**
@@ -6793,10 +8470,13 @@ export declare namespace Price {
6793
8470
  * @deprecated
6794
8471
  */
6795
8472
  minimum_amount: string | null;
8473
+ /**
8474
+ * The pricing model type
8475
+ */
6796
8476
  model_type: 'grouped_allocation';
6797
8477
  name: string;
6798
8478
  plan_phase_order: number | null;
6799
- price_type: 'usage_price' | 'fixed_price';
8479
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6800
8480
  /**
6801
8481
  * The price id this price replaces. This price will take the place of the replaced
6802
8482
  * price in plan version migrations.
@@ -6804,10 +8484,33 @@ export declare namespace Price {
6804
8484
  replaces_price_id: string | null;
6805
8485
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6806
8486
  }
6807
- interface GroupedWithProratedMinimumPrice {
8487
+ namespace GroupedAllocationPrice {
8488
+ /**
8489
+ * Configuration for grouped_allocation pricing
8490
+ */
8491
+ interface GroupedAllocationConfig {
8492
+ /**
8493
+ * Usage allocation per group
8494
+ */
8495
+ allocation: string;
8496
+ /**
8497
+ * How to determine the groups that should each be allocated some quantity
8498
+ */
8499
+ grouping_key: string;
8500
+ /**
8501
+ * Unit rate for post-allocation
8502
+ */
8503
+ overage_unit_rate: string;
8504
+ }
8505
+ }
8506
+ interface BulkWithProrationPrice {
6808
8507
  id: string;
6809
8508
  billable_metric: Shared.BillableMetricTiny | null;
6810
8509
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8510
+ /**
8511
+ * Configuration for bulk_with_proration pricing
8512
+ */
8513
+ bulk_with_proration_config: BulkWithProrationPrice.BulkWithProrationConfig;
6811
8514
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6812
8515
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6813
8516
  conversion_rate: number | null;
@@ -6821,9 +8524,6 @@ export declare namespace Price {
6821
8524
  discount: Shared.Discount | null;
6822
8525
  external_price_id: string | null;
6823
8526
  fixed_price_quantity: number | null;
6824
- grouped_with_prorated_minimum_config: {
6825
- [key: string]: unknown;
6826
- };
6827
8527
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6828
8528
  item: Shared.ItemSlim;
6829
8529
  /**
@@ -6851,10 +8551,13 @@ export declare namespace Price {
6851
8551
  * @deprecated
6852
8552
  */
6853
8553
  minimum_amount: string | null;
6854
- model_type: 'grouped_with_prorated_minimum';
8554
+ /**
8555
+ * The pricing model type
8556
+ */
8557
+ model_type: 'bulk_with_proration';
6855
8558
  name: string;
6856
8559
  plan_phase_order: number | null;
6857
- price_type: 'usage_price' | 'fixed_price';
8560
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6858
8561
  /**
6859
8562
  * The price id this price replaces. This price will take the place of the replaced
6860
8563
  * price in plan version migrations.
@@ -6862,7 +8565,33 @@ export declare namespace Price {
6862
8565
  replaces_price_id: string | null;
6863
8566
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6864
8567
  }
6865
- interface GroupedWithMeteredMinimumPrice {
8568
+ namespace BulkWithProrationPrice {
8569
+ /**
8570
+ * Configuration for bulk_with_proration pricing
8571
+ */
8572
+ interface BulkWithProrationConfig {
8573
+ /**
8574
+ * Bulk tiers for rating based on total usage volume
8575
+ */
8576
+ tiers: Array<BulkWithProrationConfig.Tier>;
8577
+ }
8578
+ namespace BulkWithProrationConfig {
8579
+ /**
8580
+ * Configuration for a single bulk pricing tier with proration
8581
+ */
8582
+ interface Tier {
8583
+ /**
8584
+ * Cost per unit
8585
+ */
8586
+ unit_amount: string;
8587
+ /**
8588
+ * The lower bound for this tier
8589
+ */
8590
+ tier_lower_bound?: string | null;
8591
+ }
8592
+ }
8593
+ }
8594
+ interface GroupedWithProratedMinimumPrice {
6866
8595
  id: string;
6867
8596
  billable_metric: Shared.BillableMetricTiny | null;
6868
8597
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6879,9 +8608,10 @@ export declare namespace Price {
6879
8608
  discount: Shared.Discount | null;
6880
8609
  external_price_id: string | null;
6881
8610
  fixed_price_quantity: number | null;
6882
- grouped_with_metered_minimum_config: {
6883
- [key: string]: unknown;
6884
- };
8611
+ /**
8612
+ * Configuration for grouped_with_prorated_minimum pricing
8613
+ */
8614
+ grouped_with_prorated_minimum_config: GroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
6885
8615
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6886
8616
  item: Shared.ItemSlim;
6887
8617
  /**
@@ -6909,10 +8639,13 @@ export declare namespace Price {
6909
8639
  * @deprecated
6910
8640
  */
6911
8641
  minimum_amount: string | null;
6912
- model_type: 'grouped_with_metered_minimum';
8642
+ /**
8643
+ * The pricing model type
8644
+ */
8645
+ model_type: 'grouped_with_prorated_minimum';
6913
8646
  name: string;
6914
8647
  plan_phase_order: number | null;
6915
- price_type: 'usage_price' | 'fixed_price';
8648
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6916
8649
  /**
6917
8650
  * The price id this price replaces. This price will take the place of the replaced
6918
8651
  * price in plan version migrations.
@@ -6920,7 +8653,26 @@ export declare namespace Price {
6920
8653
  replaces_price_id: string | null;
6921
8654
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6922
8655
  }
6923
- interface MatrixWithDisplayNamePrice {
8656
+ namespace GroupedWithProratedMinimumPrice {
8657
+ /**
8658
+ * Configuration for grouped_with_prorated_minimum pricing
8659
+ */
8660
+ interface GroupedWithProratedMinimumConfig {
8661
+ /**
8662
+ * How to determine the groups that should each have a minimum
8663
+ */
8664
+ grouping_key: string;
8665
+ /**
8666
+ * The minimum amount to charge per group
8667
+ */
8668
+ minimum: string;
8669
+ /**
8670
+ * The amount to charge per unit
8671
+ */
8672
+ unit_rate: string;
8673
+ }
8674
+ }
8675
+ interface GroupedWithMeteredMinimumPrice {
6924
8676
  id: string;
6925
8677
  billable_metric: Shared.BillableMetricTiny | null;
6926
8678
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -6937,11 +8689,12 @@ export declare namespace Price {
6937
8689
  discount: Shared.Discount | null;
6938
8690
  external_price_id: string | null;
6939
8691
  fixed_price_quantity: number | null;
8692
+ /**
8693
+ * Configuration for grouped_with_metered_minimum pricing
8694
+ */
8695
+ grouped_with_metered_minimum_config: GroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
6940
8696
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
6941
8697
  item: Shared.ItemSlim;
6942
- matrix_with_display_name_config: {
6943
- [key: string]: unknown;
6944
- };
6945
8698
  /**
6946
8699
  * @deprecated
6947
8700
  */
@@ -6967,10 +8720,13 @@ export declare namespace Price {
6967
8720
  * @deprecated
6968
8721
  */
6969
8722
  minimum_amount: string | null;
6970
- model_type: 'matrix_with_display_name';
8723
+ /**
8724
+ * The pricing model type
8725
+ */
8726
+ model_type: 'grouped_with_metered_minimum';
6971
8727
  name: string;
6972
8728
  plan_phase_order: number | null;
6973
- price_type: 'usage_price' | 'fixed_price';
8729
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
6974
8730
  /**
6975
8731
  * The price id this price replaces. This price will take the place of the replaced
6976
8732
  * price in plan version migrations.
@@ -6978,13 +8734,71 @@ export declare namespace Price {
6978
8734
  replaces_price_id: string | null;
6979
8735
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
6980
8736
  }
6981
- interface BulkWithProrationPrice {
8737
+ namespace GroupedWithMeteredMinimumPrice {
8738
+ /**
8739
+ * Configuration for grouped_with_metered_minimum pricing
8740
+ */
8741
+ interface GroupedWithMeteredMinimumConfig {
8742
+ /**
8743
+ * Used to partition the usage into groups. The minimum amount is applied to each
8744
+ * group.
8745
+ */
8746
+ grouping_key: string;
8747
+ /**
8748
+ * The minimum amount to charge per group per unit
8749
+ */
8750
+ minimum_unit_amount: string;
8751
+ /**
8752
+ * Used to determine the unit rate
8753
+ */
8754
+ pricing_key: string;
8755
+ /**
8756
+ * Scale the unit rates by the scaling factor.
8757
+ */
8758
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
8759
+ /**
8760
+ * Used to determine the unit rate scaling factor
8761
+ */
8762
+ scaling_key: string;
8763
+ /**
8764
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
8765
+ * unmatched usage.
8766
+ */
8767
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
8768
+ }
8769
+ namespace GroupedWithMeteredMinimumConfig {
8770
+ /**
8771
+ * Configuration for a scaling factor
8772
+ */
8773
+ interface ScalingFactor {
8774
+ /**
8775
+ * Scaling factor
8776
+ */
8777
+ scaling_factor: string;
8778
+ /**
8779
+ * Scaling value
8780
+ */
8781
+ scaling_value: string;
8782
+ }
8783
+ /**
8784
+ * Configuration for a unit amount
8785
+ */
8786
+ interface UnitAmount {
8787
+ /**
8788
+ * Pricing value
8789
+ */
8790
+ pricing_value: string;
8791
+ /**
8792
+ * Per unit amount
8793
+ */
8794
+ unit_amount: string;
8795
+ }
8796
+ }
8797
+ }
8798
+ interface GroupedWithMinMaxThresholdsPrice {
6982
8799
  id: string;
6983
8800
  billable_metric: Shared.BillableMetricTiny | null;
6984
8801
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
6985
- bulk_with_proration_config: {
6986
- [key: string]: unknown;
6987
- };
6988
8802
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
6989
8803
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
6990
8804
  conversion_rate: number | null;
@@ -6998,6 +8812,10 @@ export declare namespace Price {
6998
8812
  discount: Shared.Discount | null;
6999
8813
  external_price_id: string | null;
7000
8814
  fixed_price_quantity: number | null;
8815
+ /**
8816
+ * Configuration for grouped_with_min_max_thresholds pricing
8817
+ */
8818
+ grouped_with_min_max_thresholds_config: GroupedWithMinMaxThresholdsPrice.GroupedWithMinMaxThresholdsConfig;
7001
8819
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7002
8820
  item: Shared.ItemSlim;
7003
8821
  /**
@@ -7025,10 +8843,13 @@ export declare namespace Price {
7025
8843
  * @deprecated
7026
8844
  */
7027
8845
  minimum_amount: string | null;
7028
- model_type: 'bulk_with_proration';
8846
+ /**
8847
+ * The pricing model type
8848
+ */
8849
+ model_type: 'grouped_with_min_max_thresholds';
7029
8850
  name: string;
7030
8851
  plan_phase_order: number | null;
7031
- price_type: 'usage_price' | 'fixed_price';
8852
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7032
8853
  /**
7033
8854
  * The price id this price replaces. This price will take the place of the replaced
7034
8855
  * price in plan version migrations.
@@ -7036,7 +8857,30 @@ export declare namespace Price {
7036
8857
  replaces_price_id: string | null;
7037
8858
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7038
8859
  }
7039
- interface GroupedTieredPackagePrice {
8860
+ namespace GroupedWithMinMaxThresholdsPrice {
8861
+ /**
8862
+ * Configuration for grouped_with_min_max_thresholds pricing
8863
+ */
8864
+ interface GroupedWithMinMaxThresholdsConfig {
8865
+ /**
8866
+ * The event property used to group before applying thresholds
8867
+ */
8868
+ grouping_key: string;
8869
+ /**
8870
+ * The maximum amount to charge each group
8871
+ */
8872
+ maximum_charge: string;
8873
+ /**
8874
+ * The minimum amount to charge each group, regardless of usage
8875
+ */
8876
+ minimum_charge: string;
8877
+ /**
8878
+ * The base price charged per group
8879
+ */
8880
+ per_unit_rate: string;
8881
+ }
8882
+ }
8883
+ interface MatrixWithDisplayNamePrice {
7040
8884
  id: string;
7041
8885
  billable_metric: Shared.BillableMetricTiny | null;
7042
8886
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7053,11 +8897,12 @@ export declare namespace Price {
7053
8897
  discount: Shared.Discount | null;
7054
8898
  external_price_id: string | null;
7055
8899
  fixed_price_quantity: number | null;
7056
- grouped_tiered_package_config: {
7057
- [key: string]: unknown;
7058
- };
7059
8900
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7060
8901
  item: Shared.ItemSlim;
8902
+ /**
8903
+ * Configuration for matrix_with_display_name pricing
8904
+ */
8905
+ matrix_with_display_name_config: MatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
7061
8906
  /**
7062
8907
  * @deprecated
7063
8908
  */
@@ -7083,10 +8928,13 @@ export declare namespace Price {
7083
8928
  * @deprecated
7084
8929
  */
7085
8930
  minimum_amount: string | null;
7086
- model_type: 'grouped_tiered_package';
8931
+ /**
8932
+ * The pricing model type
8933
+ */
8934
+ model_type: 'matrix_with_display_name';
7087
8935
  name: string;
7088
8936
  plan_phase_order: number | null;
7089
- price_type: 'usage_price' | 'fixed_price';
8937
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7090
8938
  /**
7091
8939
  * The price id this price replaces. This price will take the place of the replaced
7092
8940
  * price in plan version migrations.
@@ -7094,7 +8942,41 @@ export declare namespace Price {
7094
8942
  replaces_price_id: string | null;
7095
8943
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7096
8944
  }
7097
- interface MaxGroupTieredPackagePrice {
8945
+ namespace MatrixWithDisplayNamePrice {
8946
+ /**
8947
+ * Configuration for matrix_with_display_name pricing
8948
+ */
8949
+ interface MatrixWithDisplayNameConfig {
8950
+ /**
8951
+ * Used to determine the unit rate
8952
+ */
8953
+ dimension: string;
8954
+ /**
8955
+ * Apply per unit pricing to each dimension value
8956
+ */
8957
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
8958
+ }
8959
+ namespace MatrixWithDisplayNameConfig {
8960
+ /**
8961
+ * Configuration for a unit amount item
8962
+ */
8963
+ interface UnitAmount {
8964
+ /**
8965
+ * The dimension value
8966
+ */
8967
+ dimension_value: string;
8968
+ /**
8969
+ * Display name for this dimension value
8970
+ */
8971
+ display_name: string;
8972
+ /**
8973
+ * Per unit amount
8974
+ */
8975
+ unit_amount: string;
8976
+ }
8977
+ }
8978
+ }
8979
+ interface GroupedTieredPackagePrice {
7098
8980
  id: string;
7099
8981
  billable_metric: Shared.BillableMetricTiny | null;
7100
8982
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7111,11 +8993,12 @@ export declare namespace Price {
7111
8993
  discount: Shared.Discount | null;
7112
8994
  external_price_id: string | null;
7113
8995
  fixed_price_quantity: number | null;
8996
+ /**
8997
+ * Configuration for grouped_tiered_package pricing
8998
+ */
8999
+ grouped_tiered_package_config: GroupedTieredPackagePrice.GroupedTieredPackageConfig;
7114
9000
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7115
9001
  item: Shared.ItemSlim;
7116
- max_group_tiered_package_config: {
7117
- [key: string]: unknown;
7118
- };
7119
9002
  /**
7120
9003
  * @deprecated
7121
9004
  */
@@ -7141,10 +9024,13 @@ export declare namespace Price {
7141
9024
  * @deprecated
7142
9025
  */
7143
9026
  minimum_amount: string | null;
7144
- model_type: 'max_group_tiered_package';
9027
+ /**
9028
+ * The pricing model type
9029
+ */
9030
+ model_type: 'grouped_tiered_package';
7145
9031
  name: string;
7146
9032
  plan_phase_order: number | null;
7147
- price_type: 'usage_price' | 'fixed_price';
9033
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7148
9034
  /**
7149
9035
  * The price id this price replaces. This price will take the place of the replaced
7150
9036
  * price in plan version migrations.
@@ -7152,7 +9038,42 @@ export declare namespace Price {
7152
9038
  replaces_price_id: string | null;
7153
9039
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7154
9040
  }
7155
- interface ScalableMatrixWithUnitPricingPrice {
9041
+ namespace GroupedTieredPackagePrice {
9042
+ /**
9043
+ * Configuration for grouped_tiered_package pricing
9044
+ */
9045
+ interface GroupedTieredPackageConfig {
9046
+ /**
9047
+ * The event property used to group before tiering
9048
+ */
9049
+ grouping_key: string;
9050
+ /**
9051
+ * Package size
9052
+ */
9053
+ package_size: string;
9054
+ /**
9055
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9056
+ * are defined using exclusive lower bounds.
9057
+ */
9058
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
9059
+ }
9060
+ namespace GroupedTieredPackageConfig {
9061
+ /**
9062
+ * Configuration for a single tier
9063
+ */
9064
+ interface Tier {
9065
+ /**
9066
+ * Price per package
9067
+ */
9068
+ per_unit: string;
9069
+ /**
9070
+ * Tier lower bound
9071
+ */
9072
+ tier_lower_bound: string;
9073
+ }
9074
+ }
9075
+ }
9076
+ interface MaxGroupTieredPackagePrice {
7156
9077
  id: string;
7157
9078
  billable_metric: Shared.BillableMetricTiny | null;
7158
9079
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7171,6 +9092,10 @@ export declare namespace Price {
7171
9092
  fixed_price_quantity: number | null;
7172
9093
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7173
9094
  item: Shared.ItemSlim;
9095
+ /**
9096
+ * Configuration for max_group_tiered_package pricing
9097
+ */
9098
+ max_group_tiered_package_config: MaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
7174
9099
  /**
7175
9100
  * @deprecated
7176
9101
  */
@@ -7196,21 +9121,55 @@ export declare namespace Price {
7196
9121
  * @deprecated
7197
9122
  */
7198
9123
  minimum_amount: string | null;
7199
- model_type: 'scalable_matrix_with_unit_pricing';
9124
+ /**
9125
+ * The pricing model type
9126
+ */
9127
+ model_type: 'max_group_tiered_package';
7200
9128
  name: string;
7201
9129
  plan_phase_order: number | null;
7202
- price_type: 'usage_price' | 'fixed_price';
9130
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7203
9131
  /**
7204
9132
  * The price id this price replaces. This price will take the place of the replaced
7205
9133
  * price in plan version migrations.
7206
9134
  */
7207
9135
  replaces_price_id: string | null;
7208
- scalable_matrix_with_unit_pricing_config: {
7209
- [key: string]: unknown;
7210
- };
7211
9136
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7212
9137
  }
7213
- interface ScalableMatrixWithTieredPricingPrice {
9138
+ namespace MaxGroupTieredPackagePrice {
9139
+ /**
9140
+ * Configuration for max_group_tiered_package pricing
9141
+ */
9142
+ interface MaxGroupTieredPackageConfig {
9143
+ /**
9144
+ * The event property used to group before tiering the group with the highest value
9145
+ */
9146
+ grouping_key: string;
9147
+ /**
9148
+ * Package size
9149
+ */
9150
+ package_size: string;
9151
+ /**
9152
+ * Apply tiered pricing to the largest group after grouping with the provided key.
9153
+ */
9154
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
9155
+ }
9156
+ namespace MaxGroupTieredPackageConfig {
9157
+ /**
9158
+ * Configuration for a single tier
9159
+ */
9160
+ interface Tier {
9161
+ /**
9162
+ * Tier lower bound
9163
+ */
9164
+ tier_lower_bound: string;
9165
+ /**
9166
+ * Per unit amount
9167
+ */
9168
+ unit_amount: string;
9169
+ }
9170
+ }
9171
+ }
9172
+ interface ScalableMatrixWithUnitPricingPrice {
7214
9173
  id: string;
7215
9174
  billable_metric: Shared.BillableMetricTiny | null;
7216
9175
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7254,21 +9213,71 @@ export declare namespace Price {
7254
9213
  * @deprecated
7255
9214
  */
7256
9215
  minimum_amount: string | null;
7257
- model_type: 'scalable_matrix_with_tiered_pricing';
9216
+ /**
9217
+ * The pricing model type
9218
+ */
9219
+ model_type: 'scalable_matrix_with_unit_pricing';
7258
9220
  name: string;
7259
9221
  plan_phase_order: number | null;
7260
- price_type: 'usage_price' | 'fixed_price';
9222
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7261
9223
  /**
7262
9224
  * The price id this price replaces. This price will take the place of the replaced
7263
9225
  * price in plan version migrations.
7264
9226
  */
7265
9227
  replaces_price_id: string | null;
7266
- scalable_matrix_with_tiered_pricing_config: {
7267
- [key: string]: unknown;
7268
- };
9228
+ /**
9229
+ * Configuration for scalable_matrix_with_unit_pricing pricing
9230
+ */
9231
+ scalable_matrix_with_unit_pricing_config: ScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
7269
9232
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7270
9233
  }
7271
- interface CumulativeGroupedBulkPrice {
9234
+ namespace ScalableMatrixWithUnitPricingPrice {
9235
+ /**
9236
+ * Configuration for scalable_matrix_with_unit_pricing pricing
9237
+ */
9238
+ interface ScalableMatrixWithUnitPricingConfig {
9239
+ /**
9240
+ * Used to determine the unit rate
9241
+ */
9242
+ first_dimension: string;
9243
+ /**
9244
+ * Apply a scaling factor to each dimension
9245
+ */
9246
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
9247
+ /**
9248
+ * The final unit price to rate against the output of the matrix
9249
+ */
9250
+ unit_price: string;
9251
+ /**
9252
+ * If true, the unit price will be prorated to the billing period
9253
+ */
9254
+ prorate?: boolean | null;
9255
+ /**
9256
+ * Used to determine the unit rate (optional)
9257
+ */
9258
+ second_dimension?: string | null;
9259
+ }
9260
+ namespace ScalableMatrixWithUnitPricingConfig {
9261
+ /**
9262
+ * Configuration for a single matrix scaling factor
9263
+ */
9264
+ interface MatrixScalingFactor {
9265
+ /**
9266
+ * First dimension value
9267
+ */
9268
+ first_dimension_value: string;
9269
+ /**
9270
+ * Scaling factor
9271
+ */
9272
+ scaling_factor: string;
9273
+ /**
9274
+ * Second dimension value (optional)
9275
+ */
9276
+ second_dimension_value?: string | null;
9277
+ }
9278
+ }
9279
+ }
9280
+ interface ScalableMatrixWithTieredPricingPrice {
7272
9281
  id: string;
7273
9282
  billable_metric: Shared.BillableMetricTiny | null;
7274
9283
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7278,9 +9287,6 @@ export declare namespace Price {
7278
9287
  conversion_rate_config: Shared.UnitConversionRateConfig | Shared.TieredConversionRateConfig | null;
7279
9288
  created_at: string;
7280
9289
  credit_allocation: Shared.Allocation | null;
7281
- cumulative_grouped_bulk_config: {
7282
- [key: string]: unknown;
7283
- };
7284
9290
  currency: string;
7285
9291
  /**
7286
9292
  * @deprecated
@@ -7315,18 +9321,80 @@ export declare namespace Price {
7315
9321
  * @deprecated
7316
9322
  */
7317
9323
  minimum_amount: string | null;
7318
- model_type: 'cumulative_grouped_bulk';
9324
+ /**
9325
+ * The pricing model type
9326
+ */
9327
+ model_type: 'scalable_matrix_with_tiered_pricing';
7319
9328
  name: string;
7320
9329
  plan_phase_order: number | null;
7321
- price_type: 'usage_price' | 'fixed_price';
9330
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7322
9331
  /**
7323
9332
  * The price id this price replaces. This price will take the place of the replaced
7324
9333
  * price in plan version migrations.
7325
9334
  */
7326
9335
  replaces_price_id: string | null;
9336
+ /**
9337
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
9338
+ */
9339
+ scalable_matrix_with_tiered_pricing_config: ScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
7327
9340
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7328
9341
  }
7329
- interface GroupedWithMinMaxThresholdsPrice {
9342
+ namespace ScalableMatrixWithTieredPricingPrice {
9343
+ /**
9344
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
9345
+ */
9346
+ interface ScalableMatrixWithTieredPricingConfig {
9347
+ /**
9348
+ * Used for the scalable matrix first dimension
9349
+ */
9350
+ first_dimension: string;
9351
+ /**
9352
+ * Apply a scaling factor to each dimension
9353
+ */
9354
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
9355
+ /**
9356
+ * Tier pricing structure
9357
+ */
9358
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
9359
+ /**
9360
+ * Used for the scalable matrix second dimension (optional)
9361
+ */
9362
+ second_dimension?: string | null;
9363
+ }
9364
+ namespace ScalableMatrixWithTieredPricingConfig {
9365
+ /**
9366
+ * Configuration for a single matrix scaling factor
9367
+ */
9368
+ interface MatrixScalingFactor {
9369
+ /**
9370
+ * First dimension value
9371
+ */
9372
+ first_dimension_value: string;
9373
+ /**
9374
+ * Scaling factor
9375
+ */
9376
+ scaling_factor: string;
9377
+ /**
9378
+ * Second dimension value (optional)
9379
+ */
9380
+ second_dimension_value?: string | null;
9381
+ }
9382
+ /**
9383
+ * Configuration for a single tier entry with business logic
9384
+ */
9385
+ interface Tier {
9386
+ /**
9387
+ * Tier lower bound
9388
+ */
9389
+ tier_lower_bound: string;
9390
+ /**
9391
+ * Per unit amount
9392
+ */
9393
+ unit_amount: string;
9394
+ }
9395
+ }
9396
+ }
9397
+ interface CumulativeGroupedBulkPrice {
7330
9398
  id: string;
7331
9399
  billable_metric: Shared.BillableMetricTiny | null;
7332
9400
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
@@ -7336,6 +9404,10 @@ export declare namespace Price {
7336
9404
  conversion_rate_config: Shared.UnitConversionRateConfig | Shared.TieredConversionRateConfig | null;
7337
9405
  created_at: string;
7338
9406
  credit_allocation: Shared.Allocation | null;
9407
+ /**
9408
+ * Configuration for cumulative_grouped_bulk pricing
9409
+ */
9410
+ cumulative_grouped_bulk_config: CumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
7339
9411
  currency: string;
7340
9412
  /**
7341
9413
  * @deprecated
@@ -7343,9 +9415,6 @@ export declare namespace Price {
7343
9415
  discount: Shared.Discount | null;
7344
9416
  external_price_id: string | null;
7345
9417
  fixed_price_quantity: number | null;
7346
- grouped_with_min_max_thresholds_config: {
7347
- [key: string]: unknown;
7348
- };
7349
9418
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7350
9419
  item: Shared.ItemSlim;
7351
9420
  /**
@@ -7373,10 +9442,13 @@ export declare namespace Price {
7373
9442
  * @deprecated
7374
9443
  */
7375
9444
  minimum_amount: string | null;
7376
- model_type: 'grouped_with_min_max_thresholds';
9445
+ /**
9446
+ * The pricing model type
9447
+ */
9448
+ model_type: 'cumulative_grouped_bulk';
7377
9449
  name: string;
7378
9450
  plan_phase_order: number | null;
7379
- price_type: 'usage_price' | 'fixed_price';
9451
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7380
9452
  /**
7381
9453
  * The price id this price replaces. This price will take the place of the replaced
7382
9454
  * price in plan version migrations.
@@ -7384,6 +9456,40 @@ export declare namespace Price {
7384
9456
  replaces_price_id: string | null;
7385
9457
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7386
9458
  }
9459
+ namespace CumulativeGroupedBulkPrice {
9460
+ /**
9461
+ * Configuration for cumulative_grouped_bulk pricing
9462
+ */
9463
+ interface CumulativeGroupedBulkConfig {
9464
+ /**
9465
+ * Each tier lower bound must have the same group of values.
9466
+ */
9467
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
9468
+ /**
9469
+ * Grouping key name
9470
+ */
9471
+ group: string;
9472
+ }
9473
+ namespace CumulativeGroupedBulkConfig {
9474
+ /**
9475
+ * Configuration for a dimension value entry
9476
+ */
9477
+ interface DimensionValue {
9478
+ /**
9479
+ * Grouping key value
9480
+ */
9481
+ grouping_key: string;
9482
+ /**
9483
+ * Tier lower bound
9484
+ */
9485
+ tier_lower_bound: string;
9486
+ /**
9487
+ * Unit amount for this combination
9488
+ */
9489
+ unit_amount: string;
9490
+ }
9491
+ }
9492
+ }
7387
9493
  interface MinimumCompositePrice {
7388
9494
  id: string;
7389
9495
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7428,11 +9534,17 @@ export declare namespace Price {
7428
9534
  * @deprecated
7429
9535
  */
7430
9536
  minimum_amount: string | null;
9537
+ /**
9538
+ * Configuration for minimum pricing
9539
+ */
7431
9540
  minimum_config: MinimumCompositePrice.MinimumConfig;
9541
+ /**
9542
+ * The pricing model type
9543
+ */
7432
9544
  model_type: 'minimum';
7433
9545
  name: string;
7434
9546
  plan_phase_order: number | null;
7435
- price_type: 'usage_price' | 'fixed_price';
9547
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7436
9548
  /**
7437
9549
  * The price id this price replaces. This price will take the place of the replaced
7438
9550
  * price in plan version migrations.
@@ -7441,16 +9553,18 @@ export declare namespace Price {
7441
9553
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7442
9554
  }
7443
9555
  namespace MinimumCompositePrice {
9556
+ /**
9557
+ * Configuration for minimum pricing
9558
+ */
7444
9559
  interface MinimumConfig {
7445
9560
  /**
7446
9561
  * The minimum amount to apply
7447
9562
  */
7448
9563
  minimum_amount: string;
7449
9564
  /**
7450
- * By default, subtotals from minimum composite prices are prorated based on the
7451
- * service period. Set to false to disable proration.
9565
+ * If true, subtotals from this price are prorated based on the service period
7452
9566
  */
7453
- prorated?: boolean | null;
9567
+ prorated?: boolean;
7454
9568
  }
7455
9569
  }
7456
9570
  }
@@ -7551,6 +9665,9 @@ export interface TaxAmount {
7551
9665
  */
7552
9666
  tax_rate_percentage: string | null;
7553
9667
  }
9668
+ /**
9669
+ * Configuration for a single tier
9670
+ */
7554
9671
  export interface Tier {
7555
9672
  /**
7556
9673
  * Exclusive tier starting value
@@ -7561,15 +9678,11 @@ export interface Tier {
7561
9678
  */
7562
9679
  unit_amount: string;
7563
9680
  /**
7564
- * Inclusive tier ending value. If null, this is treated as the last tier
9681
+ * Inclusive tier ending value. This value is null if and only if this is the last
9682
+ * tier.
7565
9683
  */
7566
9684
  last_unit?: number | null;
7567
9685
  }
7568
- export interface TierConfig {
7569
- first_unit: number;
7570
- last_unit: number | null;
7571
- unit_amount: string;
7572
- }
7573
9686
  export interface TierSubLineItem {
7574
9687
  /**
7575
9688
  * The total amount for this sub line item.
@@ -7578,9 +9691,19 @@ export interface TierSubLineItem {
7578
9691
  grouping: SubLineItemGrouping | null;
7579
9692
  name: string;
7580
9693
  quantity: number;
7581
- tier_config: TierConfig;
9694
+ tier_config: TierSubLineItem.TierConfig;
7582
9695
  type: 'tier';
7583
9696
  }
9697
+ export declare namespace TierSubLineItem {
9698
+ interface TierConfig {
9699
+ first_unit: number;
9700
+ last_unit: number | null;
9701
+ unit_amount: string;
9702
+ }
9703
+ }
9704
+ /**
9705
+ * Configuration for tiered pricing
9706
+ */
7584
9707
  export interface TieredConfig {
7585
9708
  /**
7586
9709
  * Tiers for rating based on total usage quantities into the specified tier
@@ -7626,11 +9749,18 @@ export interface TrialDiscount {
7626
9749
  */
7627
9750
  trial_percentage_discount?: number | null;
7628
9751
  }
9752
+ /**
9753
+ * Configuration for unit pricing
9754
+ */
7629
9755
  export interface UnitConfig {
7630
9756
  /**
7631
9757
  * Rate per unit of usage
7632
9758
  */
7633
9759
  unit_amount: string;
9760
+ /**
9761
+ * Multiplier to scale rated quantity by
9762
+ */
9763
+ scaling_factor?: number | null;
7634
9764
  }
7635
9765
  export interface UnitConversionRateConfig {
7636
9766
  conversion_rate_type: 'unit';