orb-billing 5.6.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/core.js +3 -3
  3. package/core.js.map +1 -1
  4. package/core.mjs +3 -3
  5. package/core.mjs.map +1 -1
  6. package/index.d.mts +2 -4
  7. package/index.d.ts +2 -4
  8. package/index.d.ts.map +1 -1
  9. package/index.js.map +1 -1
  10. package/index.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/resources/beta/beta.d.ts +288 -10
  13. package/resources/beta/beta.d.ts.map +1 -1
  14. package/resources/beta/beta.js.map +1 -1
  15. package/resources/beta/beta.mjs.map +1 -1
  16. package/resources/beta/external-plan-id.d.ts +288 -10
  17. package/resources/beta/external-plan-id.d.ts.map +1 -1
  18. package/resources/customers/customers.d.ts +27 -6
  19. package/resources/customers/customers.d.ts.map +1 -1
  20. package/resources/customers/customers.js.map +1 -1
  21. package/resources/customers/customers.mjs.map +1 -1
  22. package/resources/index.d.ts +1 -1
  23. package/resources/index.d.ts.map +1 -1
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs.map +1 -1
  26. package/resources/invoices.d.ts +3 -0
  27. package/resources/invoices.d.ts.map +1 -1
  28. package/resources/invoices.js.map +1 -1
  29. package/resources/invoices.mjs.map +1 -1
  30. package/resources/plans/plans.d.ts +144 -5
  31. package/resources/plans/plans.d.ts.map +1 -1
  32. package/resources/plans/plans.js.map +1 -1
  33. package/resources/plans/plans.mjs.map +1 -1
  34. package/resources/prices/prices.d.ts +926 -123
  35. package/resources/prices/prices.d.ts.map +1 -1
  36. package/resources/prices/prices.js.map +1 -1
  37. package/resources/prices/prices.mjs.map +1 -1
  38. package/resources/shared.d.ts +2474 -338
  39. package/resources/shared.d.ts.map +1 -1
  40. package/resources/shared.js.map +1 -1
  41. package/resources/shared.mjs.map +1 -1
  42. package/resources/subscriptions.d.ts +1369 -174
  43. package/resources/subscriptions.d.ts.map +1 -1
  44. package/resources/subscriptions.js.map +1 -1
  45. package/resources/subscriptions.mjs.map +1 -1
  46. package/src/core.ts +3 -3
  47. package/src/index.ts +0 -4
  48. package/src/resources/beta/beta.ts +348 -20
  49. package/src/resources/beta/external-plan-id.ts +348 -20
  50. package/src/resources/customers/customers.ts +48 -6
  51. package/src/resources/index.ts +0 -1
  52. package/src/resources/invoices.ts +3 -0
  53. package/src/resources/plans/plans.ts +174 -10
  54. package/src/resources/prices/prices.ts +1060 -113
  55. package/src/resources/shared.ts +2792 -288
  56. package/src/resources/subscriptions.ts +1609 -202
  57. package/src/version.ts +1 -1
  58. package/version.d.ts +1 -1
  59. package/version.js +1 -1
  60. package/version.mjs +1 -1
@@ -155,6 +155,9 @@ export interface BillingCycleConfiguration {
155
155
 
156
156
  export type BillingCycleRelativeDate = 'start_of_term' | 'end_of_term';
157
157
 
158
+ /**
159
+ * Configuration for bulk pricing
160
+ */
158
161
  export interface BulkConfig {
159
162
  /**
160
163
  * Bulk tiers for rating based on total usage volume
@@ -162,6 +165,9 @@ export interface BulkConfig {
162
165
  tiers: Array<BulkTier>;
163
166
  }
164
167
 
168
+ /**
169
+ * Configuration for a single bulk pricing tier
170
+ */
165
171
  export interface BulkTier {
166
172
  /**
167
173
  * Amount per unit
@@ -1480,6 +1486,9 @@ export interface ItemSlim {
1480
1486
  name: string;
1481
1487
  }
1482
1488
 
1489
+ /**
1490
+ * Configuration for matrix pricing
1491
+ */
1483
1492
  export interface MatrixConfig {
1484
1493
  /**
1485
1494
  * Default per unit rate for any usage not bucketed into a specified matrix_value
@@ -1492,7 +1501,7 @@ export interface MatrixConfig {
1492
1501
  dimensions: Array<string | null>;
1493
1502
 
1494
1503
  /**
1495
- * Matrix values for specified matrix grouping keys
1504
+ * Matrix values configuration
1496
1505
  */
1497
1506
  matrix_values: Array<MatrixValue>;
1498
1507
  }
@@ -1514,11 +1523,12 @@ export interface MatrixSubLineItem {
1514
1523
  type: 'matrix';
1515
1524
  }
1516
1525
 
1526
+ /**
1527
+ * Configuration for a single matrix value
1528
+ */
1517
1529
  export interface MatrixValue {
1518
1530
  /**
1519
- * One or two matrix keys to filter usage to this Matrix value by. For example,
1520
- * ["region", "tier"] could be used to filter cloud usage by a cloud region and an
1521
- * instance tier.
1531
+ * One or two matrix keys to filter usage to this Matrix value by
1522
1532
  */
1523
1533
  dimension_values: Array<string | null>;
1524
1534
 
@@ -1528,11 +1538,14 @@ export interface MatrixValue {
1528
1538
  unit_amount: string;
1529
1539
  }
1530
1540
 
1541
+ /**
1542
+ * Configuration for matrix pricing with usage allocation
1543
+ */
1531
1544
  export interface MatrixWithAllocationConfig {
1532
1545
  /**
1533
- * Allocation to be used to calculate the price
1546
+ * Usage allocation
1534
1547
  */
1535
- allocation: number;
1548
+ allocation: string;
1536
1549
 
1537
1550
  /**
1538
1551
  * Default per unit rate for any usage not bucketed into a specified matrix_value
@@ -1545,9 +1558,28 @@ export interface MatrixWithAllocationConfig {
1545
1558
  dimensions: Array<string | null>;
1546
1559
 
1547
1560
  /**
1548
- * Matrix values for specified matrix grouping keys
1561
+ * Matrix values configuration
1549
1562
  */
1550
- matrix_values: Array<MatrixValue>;
1563
+ matrix_values: Array<MatrixWithAllocationConfig.MatrixValue>;
1564
+ }
1565
+
1566
+ export namespace MatrixWithAllocationConfig {
1567
+ /**
1568
+ * Configuration for a single matrix value
1569
+ */
1570
+ export interface MatrixValue {
1571
+ /**
1572
+ * One or two matrix keys to filter usage to this Matrix value by. For example,
1573
+ * ["region", "tier"] could be used to filter cloud usage by a cloud region and an
1574
+ * instance tier.
1575
+ */
1576
+ dimension_values: Array<string | null>;
1577
+
1578
+ /**
1579
+ * Unit price for the specified dimension_values
1580
+ */
1581
+ unit_amount: string;
1582
+ }
1551
1583
  }
1552
1584
 
1553
1585
  export interface Maximum {
@@ -1969,6 +2001,9 @@ export interface NewDimensionalPriceConfiguration {
1969
2001
  }
1970
2002
 
1971
2003
  export interface NewFloatingBulkPrice {
2004
+ /**
2005
+ * Configuration for bulk pricing
2006
+ */
1972
2007
  bulk_config: BulkConfig;
1973
2008
 
1974
2009
  /**
@@ -1986,6 +2021,9 @@ export interface NewFloatingBulkPrice {
1986
2021
  */
1987
2022
  item_id: string;
1988
2023
 
2024
+ /**
2025
+ * The pricing model type
2026
+ */
1989
2027
  model_type: 'bulk';
1990
2028
 
1991
2029
  /**
@@ -2057,7 +2095,10 @@ export interface NewFloatingBulkPrice {
2057
2095
  }
2058
2096
 
2059
2097
  export interface NewFloatingBulkWithProrationPrice {
2060
- bulk_with_proration_config: { [key: string]: unknown };
2098
+ /**
2099
+ * Configuration for bulk_with_proration pricing
2100
+ */
2101
+ bulk_with_proration_config: NewFloatingBulkWithProrationPrice.BulkWithProrationConfig;
2061
2102
 
2062
2103
  /**
2063
2104
  * The cadence to bill for this price on.
@@ -2074,6 +2115,9 @@ export interface NewFloatingBulkWithProrationPrice {
2074
2115
  */
2075
2116
  item_id: string;
2076
2117
 
2118
+ /**
2119
+ * The pricing model type
2120
+ */
2077
2121
  model_type: 'bulk_with_proration';
2078
2122
 
2079
2123
  /**
@@ -2144,13 +2188,45 @@ export interface NewFloatingBulkWithProrationPrice {
2144
2188
  metadata?: { [key: string]: string | null } | null;
2145
2189
  }
2146
2190
 
2191
+ export namespace NewFloatingBulkWithProrationPrice {
2192
+ /**
2193
+ * Configuration for bulk_with_proration pricing
2194
+ */
2195
+ export interface BulkWithProrationConfig {
2196
+ /**
2197
+ * Bulk tiers for rating based on total usage volume
2198
+ */
2199
+ tiers: Array<BulkWithProrationConfig.Tier>;
2200
+ }
2201
+
2202
+ export namespace BulkWithProrationConfig {
2203
+ /**
2204
+ * Configuration for a single bulk pricing tier with proration
2205
+ */
2206
+ export interface Tier {
2207
+ /**
2208
+ * Cost per unit
2209
+ */
2210
+ unit_amount: string;
2211
+
2212
+ /**
2213
+ * The lower bound for this tier
2214
+ */
2215
+ tier_lower_bound?: string | null;
2216
+ }
2217
+ }
2218
+ }
2219
+
2147
2220
  export interface NewFloatingCumulativeGroupedBulkPrice {
2148
2221
  /**
2149
2222
  * The cadence to bill for this price on.
2150
2223
  */
2151
2224
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
2152
2225
 
2153
- cumulative_grouped_bulk_config: { [key: string]: unknown };
2226
+ /**
2227
+ * Configuration for cumulative_grouped_bulk pricing
2228
+ */
2229
+ cumulative_grouped_bulk_config: NewFloatingCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
2154
2230
 
2155
2231
  /**
2156
2232
  * An ISO 4217 currency string for which this price is billed in.
@@ -2162,6 +2238,9 @@ export interface NewFloatingCumulativeGroupedBulkPrice {
2162
2238
  */
2163
2239
  item_id: string;
2164
2240
 
2241
+ /**
2242
+ * The pricing model type
2243
+ */
2165
2244
  model_type: 'cumulative_grouped_bulk';
2166
2245
 
2167
2246
  /**
@@ -2232,6 +2311,45 @@ export interface NewFloatingCumulativeGroupedBulkPrice {
2232
2311
  metadata?: { [key: string]: string | null } | null;
2233
2312
  }
2234
2313
 
2314
+ export namespace NewFloatingCumulativeGroupedBulkPrice {
2315
+ /**
2316
+ * Configuration for cumulative_grouped_bulk pricing
2317
+ */
2318
+ export interface CumulativeGroupedBulkConfig {
2319
+ /**
2320
+ * Each tier lower bound must have the same group of values.
2321
+ */
2322
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
2323
+
2324
+ /**
2325
+ * Grouping key name
2326
+ */
2327
+ group: string;
2328
+ }
2329
+
2330
+ export namespace CumulativeGroupedBulkConfig {
2331
+ /**
2332
+ * Configuration for a dimension value entry
2333
+ */
2334
+ export interface DimensionValue {
2335
+ /**
2336
+ * Grouping key value
2337
+ */
2338
+ grouping_key: string;
2339
+
2340
+ /**
2341
+ * Tier lower bound
2342
+ */
2343
+ tier_lower_bound: string;
2344
+
2345
+ /**
2346
+ * Unit amount for this combination
2347
+ */
2348
+ unit_amount: string;
2349
+ }
2350
+ }
2351
+ }
2352
+
2235
2353
  export interface NewFloatingGroupedAllocationPrice {
2236
2354
  /**
2237
2355
  * The cadence to bill for this price on.
@@ -2243,13 +2361,19 @@ export interface NewFloatingGroupedAllocationPrice {
2243
2361
  */
2244
2362
  currency: string;
2245
2363
 
2246
- grouped_allocation_config: { [key: string]: unknown };
2364
+ /**
2365
+ * Configuration for grouped_allocation pricing
2366
+ */
2367
+ grouped_allocation_config: NewFloatingGroupedAllocationPrice.GroupedAllocationConfig;
2247
2368
 
2248
2369
  /**
2249
2370
  * The id of the item the price will be associated with.
2250
2371
  */
2251
2372
  item_id: string;
2252
2373
 
2374
+ /**
2375
+ * The pricing model type
2376
+ */
2253
2377
  model_type: 'grouped_allocation';
2254
2378
 
2255
2379
  /**
@@ -2320,6 +2444,28 @@ export interface NewFloatingGroupedAllocationPrice {
2320
2444
  metadata?: { [key: string]: string | null } | null;
2321
2445
  }
2322
2446
 
2447
+ export namespace NewFloatingGroupedAllocationPrice {
2448
+ /**
2449
+ * Configuration for grouped_allocation pricing
2450
+ */
2451
+ export interface GroupedAllocationConfig {
2452
+ /**
2453
+ * Usage allocation per group
2454
+ */
2455
+ allocation: string;
2456
+
2457
+ /**
2458
+ * How to determine the groups that should each be allocated some quantity
2459
+ */
2460
+ grouping_key: string;
2461
+
2462
+ /**
2463
+ * Unit rate for post-allocation
2464
+ */
2465
+ overage_unit_rate: string;
2466
+ }
2467
+ }
2468
+
2323
2469
  export interface NewFloatingGroupedTieredPackagePrice {
2324
2470
  /**
2325
2471
  * The cadence to bill for this price on.
@@ -2331,13 +2477,19 @@ export interface NewFloatingGroupedTieredPackagePrice {
2331
2477
  */
2332
2478
  currency: string;
2333
2479
 
2334
- grouped_tiered_package_config: { [key: string]: unknown };
2480
+ /**
2481
+ * Configuration for grouped_tiered_package pricing
2482
+ */
2483
+ grouped_tiered_package_config: NewFloatingGroupedTieredPackagePrice.GroupedTieredPackageConfig;
2335
2484
 
2336
2485
  /**
2337
2486
  * The id of the item the price will be associated with.
2338
2487
  */
2339
2488
  item_id: string;
2340
2489
 
2490
+ /**
2491
+ * The pricing model type
2492
+ */
2341
2493
  model_type: 'grouped_tiered_package';
2342
2494
 
2343
2495
  /**
@@ -2408,6 +2560,46 @@ export interface NewFloatingGroupedTieredPackagePrice {
2408
2560
  metadata?: { [key: string]: string | null } | null;
2409
2561
  }
2410
2562
 
2563
+ export namespace NewFloatingGroupedTieredPackagePrice {
2564
+ /**
2565
+ * Configuration for grouped_tiered_package pricing
2566
+ */
2567
+ export interface GroupedTieredPackageConfig {
2568
+ /**
2569
+ * The event property used to group before tiering
2570
+ */
2571
+ grouping_key: string;
2572
+
2573
+ /**
2574
+ * Package size
2575
+ */
2576
+ package_size: string;
2577
+
2578
+ /**
2579
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
2580
+ * are defined using exclusive lower bounds.
2581
+ */
2582
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
2583
+ }
2584
+
2585
+ export namespace GroupedTieredPackageConfig {
2586
+ /**
2587
+ * Configuration for a single tier
2588
+ */
2589
+ export interface Tier {
2590
+ /**
2591
+ * Price per package
2592
+ */
2593
+ per_unit: string;
2594
+
2595
+ /**
2596
+ * Tier lower bound
2597
+ */
2598
+ tier_lower_bound: string;
2599
+ }
2600
+ }
2601
+ }
2602
+
2411
2603
  export interface NewFloatingGroupedTieredPrice {
2412
2604
  /**
2413
2605
  * The cadence to bill for this price on.
@@ -2419,13 +2611,19 @@ export interface NewFloatingGroupedTieredPrice {
2419
2611
  */
2420
2612
  currency: string;
2421
2613
 
2422
- grouped_tiered_config: { [key: string]: unknown };
2614
+ /**
2615
+ * Configuration for grouped_tiered pricing
2616
+ */
2617
+ grouped_tiered_config: NewFloatingGroupedTieredPrice.GroupedTieredConfig;
2423
2618
 
2424
2619
  /**
2425
2620
  * The id of the item the price will be associated with.
2426
2621
  */
2427
2622
  item_id: string;
2428
2623
 
2624
+ /**
2625
+ * The pricing model type
2626
+ */
2429
2627
  model_type: 'grouped_tiered';
2430
2628
 
2431
2629
  /**
@@ -2496,6 +2694,41 @@ export interface NewFloatingGroupedTieredPrice {
2496
2694
  metadata?: { [key: string]: string | null } | null;
2497
2695
  }
2498
2696
 
2697
+ export namespace NewFloatingGroupedTieredPrice {
2698
+ /**
2699
+ * Configuration for grouped_tiered pricing
2700
+ */
2701
+ export interface GroupedTieredConfig {
2702
+ /**
2703
+ * The billable metric property used to group before tiering
2704
+ */
2705
+ grouping_key: string;
2706
+
2707
+ /**
2708
+ * Apply tiered pricing to each segment generated after grouping with the provided
2709
+ * key
2710
+ */
2711
+ tiers: Array<GroupedTieredConfig.Tier>;
2712
+ }
2713
+
2714
+ export namespace GroupedTieredConfig {
2715
+ /**
2716
+ * Configuration for a single tier
2717
+ */
2718
+ export interface Tier {
2719
+ /**
2720
+ * Tier lower bound
2721
+ */
2722
+ tier_lower_bound: string;
2723
+
2724
+ /**
2725
+ * Per unit amount
2726
+ */
2727
+ unit_amount: string;
2728
+ }
2729
+ }
2730
+ }
2731
+
2499
2732
  export interface NewFloatingGroupedWithMeteredMinimumPrice {
2500
2733
  /**
2501
2734
  * The cadence to bill for this price on.
@@ -2507,13 +2740,19 @@ export interface NewFloatingGroupedWithMeteredMinimumPrice {
2507
2740
  */
2508
2741
  currency: string;
2509
2742
 
2510
- grouped_with_metered_minimum_config: { [key: string]: unknown };
2743
+ /**
2744
+ * Configuration for grouped_with_metered_minimum pricing
2745
+ */
2746
+ grouped_with_metered_minimum_config: NewFloatingGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
2511
2747
 
2512
2748
  /**
2513
2749
  * The id of the item the price will be associated with.
2514
2750
  */
2515
2751
  item_id: string;
2516
2752
 
2753
+ /**
2754
+ * The pricing model type
2755
+ */
2517
2756
  model_type: 'grouped_with_metered_minimum';
2518
2757
 
2519
2758
  /**
@@ -2584,6 +2823,77 @@ export interface NewFloatingGroupedWithMeteredMinimumPrice {
2584
2823
  metadata?: { [key: string]: string | null } | null;
2585
2824
  }
2586
2825
 
2826
+ export namespace NewFloatingGroupedWithMeteredMinimumPrice {
2827
+ /**
2828
+ * Configuration for grouped_with_metered_minimum pricing
2829
+ */
2830
+ export interface GroupedWithMeteredMinimumConfig {
2831
+ /**
2832
+ * Used to partition the usage into groups. The minimum amount is applied to each
2833
+ * group.
2834
+ */
2835
+ grouping_key: string;
2836
+
2837
+ /**
2838
+ * The minimum amount to charge per group per unit
2839
+ */
2840
+ minimum_unit_amount: string;
2841
+
2842
+ /**
2843
+ * Used to determine the unit rate
2844
+ */
2845
+ pricing_key: string;
2846
+
2847
+ /**
2848
+ * Scale the unit rates by the scaling factor.
2849
+ */
2850
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
2851
+
2852
+ /**
2853
+ * Used to determine the unit rate scaling factor
2854
+ */
2855
+ scaling_key: string;
2856
+
2857
+ /**
2858
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
2859
+ * unmatched usage.
2860
+ */
2861
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
2862
+ }
2863
+
2864
+ export namespace GroupedWithMeteredMinimumConfig {
2865
+ /**
2866
+ * Configuration for a scaling factor
2867
+ */
2868
+ export interface ScalingFactor {
2869
+ /**
2870
+ * Scaling factor
2871
+ */
2872
+ scaling_factor: string;
2873
+
2874
+ /**
2875
+ * Scaling value
2876
+ */
2877
+ scaling_value: string;
2878
+ }
2879
+
2880
+ /**
2881
+ * Configuration for a unit amount
2882
+ */
2883
+ export interface UnitAmount {
2884
+ /**
2885
+ * Pricing value
2886
+ */
2887
+ pricing_value: string;
2888
+
2889
+ /**
2890
+ * Per unit amount
2891
+ */
2892
+ unit_amount: string;
2893
+ }
2894
+ }
2895
+ }
2896
+
2587
2897
  export interface NewFloatingGroupedWithProratedMinimumPrice {
2588
2898
  /**
2589
2899
  * The cadence to bill for this price on.
@@ -2595,13 +2905,19 @@ export interface NewFloatingGroupedWithProratedMinimumPrice {
2595
2905
  */
2596
2906
  currency: string;
2597
2907
 
2598
- grouped_with_prorated_minimum_config: { [key: string]: unknown };
2908
+ /**
2909
+ * Configuration for grouped_with_prorated_minimum pricing
2910
+ */
2911
+ grouped_with_prorated_minimum_config: NewFloatingGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
2599
2912
 
2600
2913
  /**
2601
2914
  * The id of the item the price will be associated with.
2602
2915
  */
2603
2916
  item_id: string;
2604
2917
 
2918
+ /**
2919
+ * The pricing model type
2920
+ */
2605
2921
  model_type: 'grouped_with_prorated_minimum';
2606
2922
 
2607
2923
  /**
@@ -2672,6 +2988,28 @@ export interface NewFloatingGroupedWithProratedMinimumPrice {
2672
2988
  metadata?: { [key: string]: string | null } | null;
2673
2989
  }
2674
2990
 
2991
+ export namespace NewFloatingGroupedWithProratedMinimumPrice {
2992
+ /**
2993
+ * Configuration for grouped_with_prorated_minimum pricing
2994
+ */
2995
+ export interface GroupedWithProratedMinimumConfig {
2996
+ /**
2997
+ * How to determine the groups that should each have a minimum
2998
+ */
2999
+ grouping_key: string;
3000
+
3001
+ /**
3002
+ * The minimum amount to charge per group
3003
+ */
3004
+ minimum: string;
3005
+
3006
+ /**
3007
+ * The amount to charge per unit
3008
+ */
3009
+ unit_rate: string;
3010
+ }
3011
+ }
3012
+
2675
3013
  export interface NewFloatingMatrixPrice {
2676
3014
  /**
2677
3015
  * The cadence to bill for this price on.
@@ -2688,8 +3026,14 @@ export interface NewFloatingMatrixPrice {
2688
3026
  */
2689
3027
  item_id: string;
2690
3028
 
3029
+ /**
3030
+ * Configuration for matrix pricing
3031
+ */
2691
3032
  matrix_config: MatrixConfig;
2692
3033
 
3034
+ /**
3035
+ * The pricing model type
3036
+ */
2693
3037
  model_type: 'matrix';
2694
3038
 
2695
3039
  /**
@@ -2776,8 +3120,14 @@ export interface NewFloatingMatrixWithAllocationPrice {
2776
3120
  */
2777
3121
  item_id: string;
2778
3122
 
3123
+ /**
3124
+ * Configuration for matrix_with_allocation pricing
3125
+ */
2779
3126
  matrix_with_allocation_config: MatrixWithAllocationConfig;
2780
3127
 
3128
+ /**
3129
+ * The pricing model type
3130
+ */
2781
3131
  model_type: 'matrix_with_allocation';
2782
3132
 
2783
3133
  /**
@@ -2864,8 +3214,14 @@ export interface NewFloatingMatrixWithDisplayNamePrice {
2864
3214
  */
2865
3215
  item_id: string;
2866
3216
 
2867
- matrix_with_display_name_config: { [key: string]: unknown };
3217
+ /**
3218
+ * Configuration for matrix_with_display_name pricing
3219
+ */
3220
+ matrix_with_display_name_config: NewFloatingMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
2868
3221
 
3222
+ /**
3223
+ * The pricing model type
3224
+ */
2869
3225
  model_type: 'matrix_with_display_name';
2870
3226
 
2871
3227
  /**
@@ -2936,6 +3292,45 @@ export interface NewFloatingMatrixWithDisplayNamePrice {
2936
3292
  metadata?: { [key: string]: string | null } | null;
2937
3293
  }
2938
3294
 
3295
+ export namespace NewFloatingMatrixWithDisplayNamePrice {
3296
+ /**
3297
+ * Configuration for matrix_with_display_name pricing
3298
+ */
3299
+ export interface MatrixWithDisplayNameConfig {
3300
+ /**
3301
+ * Used to determine the unit rate
3302
+ */
3303
+ dimension: string;
3304
+
3305
+ /**
3306
+ * Apply per unit pricing to each dimension value
3307
+ */
3308
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
3309
+ }
3310
+
3311
+ export namespace MatrixWithDisplayNameConfig {
3312
+ /**
3313
+ * Configuration for a unit amount item
3314
+ */
3315
+ export interface UnitAmount {
3316
+ /**
3317
+ * The dimension value
3318
+ */
3319
+ dimension_value: string;
3320
+
3321
+ /**
3322
+ * Display name for this dimension value
3323
+ */
3324
+ display_name: string;
3325
+
3326
+ /**
3327
+ * Per unit amount
3328
+ */
3329
+ unit_amount: string;
3330
+ }
3331
+ }
3332
+ }
3333
+
2939
3334
  export interface NewFloatingMaxGroupTieredPackagePrice {
2940
3335
  /**
2941
3336
  * The cadence to bill for this price on.
@@ -2952,8 +3347,14 @@ export interface NewFloatingMaxGroupTieredPackagePrice {
2952
3347
  */
2953
3348
  item_id: string;
2954
3349
 
2955
- max_group_tiered_package_config: { [key: string]: unknown };
3350
+ /**
3351
+ * Configuration for max_group_tiered_package pricing
3352
+ */
3353
+ max_group_tiered_package_config: NewFloatingMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
2956
3354
 
3355
+ /**
3356
+ * The pricing model type
3357
+ */
2957
3358
  model_type: 'max_group_tiered_package';
2958
3359
 
2959
3360
  /**
@@ -3024,24 +3425,69 @@ export interface NewFloatingMaxGroupTieredPackagePrice {
3024
3425
  metadata?: { [key: string]: string | null } | null;
3025
3426
  }
3026
3427
 
3027
- export interface NewFloatingMinimumCompositePrice {
3428
+ export namespace NewFloatingMaxGroupTieredPackagePrice {
3028
3429
  /**
3029
- * The cadence to bill for this price on.
3430
+ * Configuration for max_group_tiered_package pricing
3030
3431
  */
3031
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3432
+ export interface MaxGroupTieredPackageConfig {
3433
+ /**
3434
+ * The event property used to group before tiering the group with the highest value
3435
+ */
3436
+ grouping_key: string;
3032
3437
 
3033
- /**
3034
- * An ISO 4217 currency string for which this price is billed in.
3035
- */
3036
- currency: string;
3438
+ /**
3439
+ * Package size
3440
+ */
3441
+ package_size: string;
3037
3442
 
3038
- /**
3039
- * The id of the item the price will be associated with.
3040
- */
3443
+ /**
3444
+ * Apply tiered pricing to the largest group after grouping with the provided key.
3445
+ */
3446
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
3447
+ }
3448
+
3449
+ export namespace MaxGroupTieredPackageConfig {
3450
+ /**
3451
+ * Configuration for a single tier
3452
+ */
3453
+ export interface Tier {
3454
+ /**
3455
+ * Tier lower bound
3456
+ */
3457
+ tier_lower_bound: string;
3458
+
3459
+ /**
3460
+ * Per unit amount
3461
+ */
3462
+ unit_amount: string;
3463
+ }
3464
+ }
3465
+ }
3466
+
3467
+ export interface NewFloatingMinimumCompositePrice {
3468
+ /**
3469
+ * The cadence to bill for this price on.
3470
+ */
3471
+ cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
3472
+
3473
+ /**
3474
+ * An ISO 4217 currency string for which this price is billed in.
3475
+ */
3476
+ currency: string;
3477
+
3478
+ /**
3479
+ * The id of the item the price will be associated with.
3480
+ */
3041
3481
  item_id: string;
3042
3482
 
3483
+ /**
3484
+ * Configuration for minimum pricing
3485
+ */
3043
3486
  minimum_config: NewFloatingMinimumCompositePrice.MinimumConfig;
3044
3487
 
3488
+ /**
3489
+ * The pricing model type
3490
+ */
3045
3491
  model_type: 'minimum';
3046
3492
 
3047
3493
  /**
@@ -3113,6 +3559,9 @@ export interface NewFloatingMinimumCompositePrice {
3113
3559
  }
3114
3560
 
3115
3561
  export namespace NewFloatingMinimumCompositePrice {
3562
+ /**
3563
+ * Configuration for minimum pricing
3564
+ */
3116
3565
  export interface MinimumConfig {
3117
3566
  /**
3118
3567
  * The minimum amount to apply
@@ -3120,10 +3569,9 @@ export namespace NewFloatingMinimumCompositePrice {
3120
3569
  minimum_amount: string;
3121
3570
 
3122
3571
  /**
3123
- * By default, subtotals from minimum composite prices are prorated based on the
3124
- * service period. Set to false to disable proration.
3572
+ * If true, subtotals from this price are prorated based on the service period
3125
3573
  */
3126
- prorated?: boolean | null;
3574
+ prorated?: boolean;
3127
3575
  }
3128
3576
  }
3129
3577
 
@@ -3143,6 +3591,9 @@ export interface NewFloatingPackagePrice {
3143
3591
  */
3144
3592
  item_id: string;
3145
3593
 
3594
+ /**
3595
+ * The pricing model type
3596
+ */
3146
3597
  model_type: 'package';
3147
3598
 
3148
3599
  /**
@@ -3150,6 +3601,9 @@ export interface NewFloatingPackagePrice {
3150
3601
  */
3151
3602
  name: string;
3152
3603
 
3604
+ /**
3605
+ * Configuration for package pricing
3606
+ */
3153
3607
  package_config: PackageConfig;
3154
3608
 
3155
3609
  /**
@@ -3231,6 +3685,9 @@ export interface NewFloatingPackageWithAllocationPrice {
3231
3685
  */
3232
3686
  item_id: string;
3233
3687
 
3688
+ /**
3689
+ * The pricing model type
3690
+ */
3234
3691
  model_type: 'package_with_allocation';
3235
3692
 
3236
3693
  /**
@@ -3238,7 +3695,10 @@ export interface NewFloatingPackageWithAllocationPrice {
3238
3695
  */
3239
3696
  name: string;
3240
3697
 
3241
- package_with_allocation_config: { [key: string]: unknown };
3698
+ /**
3699
+ * Configuration for package_with_allocation pricing
3700
+ */
3701
+ package_with_allocation_config: NewFloatingPackageWithAllocationPrice.PackageWithAllocationConfig;
3242
3702
 
3243
3703
  /**
3244
3704
  * The id of the billable metric for the price. Only needed if the price is
@@ -3303,6 +3763,28 @@ export interface NewFloatingPackageWithAllocationPrice {
3303
3763
  metadata?: { [key: string]: string | null } | null;
3304
3764
  }
3305
3765
 
3766
+ export namespace NewFloatingPackageWithAllocationPrice {
3767
+ /**
3768
+ * Configuration for package_with_allocation pricing
3769
+ */
3770
+ export interface PackageWithAllocationConfig {
3771
+ /**
3772
+ * Usage allocation
3773
+ */
3774
+ allocation: string;
3775
+
3776
+ /**
3777
+ * Price per package
3778
+ */
3779
+ package_amount: string;
3780
+
3781
+ /**
3782
+ * Package size
3783
+ */
3784
+ package_size: string;
3785
+ }
3786
+ }
3787
+
3306
3788
  export interface NewFloatingScalableMatrixWithTieredPricingPrice {
3307
3789
  /**
3308
3790
  * The cadence to bill for this price on.
@@ -3319,6 +3801,9 @@ export interface NewFloatingScalableMatrixWithTieredPricingPrice {
3319
3801
  */
3320
3802
  item_id: string;
3321
3803
 
3804
+ /**
3805
+ * The pricing model type
3806
+ */
3322
3807
  model_type: 'scalable_matrix_with_tiered_pricing';
3323
3808
 
3324
3809
  /**
@@ -3326,7 +3811,10 @@ export interface NewFloatingScalableMatrixWithTieredPricingPrice {
3326
3811
  */
3327
3812
  name: string;
3328
3813
 
3329
- scalable_matrix_with_tiered_pricing_config: { [key: string]: unknown };
3814
+ /**
3815
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
3816
+ */
3817
+ scalable_matrix_with_tiered_pricing_config: NewFloatingScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
3330
3818
 
3331
3819
  /**
3332
3820
  * The id of the billable metric for the price. Only needed if the price is
@@ -3391,6 +3879,70 @@ export interface NewFloatingScalableMatrixWithTieredPricingPrice {
3391
3879
  metadata?: { [key: string]: string | null } | null;
3392
3880
  }
3393
3881
 
3882
+ export namespace NewFloatingScalableMatrixWithTieredPricingPrice {
3883
+ /**
3884
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
3885
+ */
3886
+ export interface ScalableMatrixWithTieredPricingConfig {
3887
+ /**
3888
+ * Used for the scalable matrix first dimension
3889
+ */
3890
+ first_dimension: string;
3891
+
3892
+ /**
3893
+ * Apply a scaling factor to each dimension
3894
+ */
3895
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
3896
+
3897
+ /**
3898
+ * Tier pricing structure
3899
+ */
3900
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
3901
+
3902
+ /**
3903
+ * Used for the scalable matrix second dimension (optional)
3904
+ */
3905
+ second_dimension?: string | null;
3906
+ }
3907
+
3908
+ export namespace ScalableMatrixWithTieredPricingConfig {
3909
+ /**
3910
+ * Configuration for a single matrix scaling factor
3911
+ */
3912
+ export interface MatrixScalingFactor {
3913
+ /**
3914
+ * First dimension value
3915
+ */
3916
+ first_dimension_value: string;
3917
+
3918
+ /**
3919
+ * Scaling factor
3920
+ */
3921
+ scaling_factor: string;
3922
+
3923
+ /**
3924
+ * Second dimension value (optional)
3925
+ */
3926
+ second_dimension_value?: string | null;
3927
+ }
3928
+
3929
+ /**
3930
+ * Configuration for a single tier entry with business logic
3931
+ */
3932
+ export interface Tier {
3933
+ /**
3934
+ * Tier lower bound
3935
+ */
3936
+ tier_lower_bound: string;
3937
+
3938
+ /**
3939
+ * Per unit amount
3940
+ */
3941
+ unit_amount: string;
3942
+ }
3943
+ }
3944
+ }
3945
+
3394
3946
  export interface NewFloatingScalableMatrixWithUnitPricingPrice {
3395
3947
  /**
3396
3948
  * The cadence to bill for this price on.
@@ -3407,6 +3959,9 @@ export interface NewFloatingScalableMatrixWithUnitPricingPrice {
3407
3959
  */
3408
3960
  item_id: string;
3409
3961
 
3962
+ /**
3963
+ * The pricing model type
3964
+ */
3410
3965
  model_type: 'scalable_matrix_with_unit_pricing';
3411
3966
 
3412
3967
  /**
@@ -3414,7 +3969,10 @@ export interface NewFloatingScalableMatrixWithUnitPricingPrice {
3414
3969
  */
3415
3970
  name: string;
3416
3971
 
3417
- scalable_matrix_with_unit_pricing_config: { [key: string]: unknown };
3972
+ /**
3973
+ * Configuration for scalable_matrix_with_unit_pricing pricing
3974
+ */
3975
+ scalable_matrix_with_unit_pricing_config: NewFloatingScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
3418
3976
 
3419
3977
  /**
3420
3978
  * The id of the billable metric for the price. Only needed if the price is
@@ -3479,6 +4037,60 @@ export interface NewFloatingScalableMatrixWithUnitPricingPrice {
3479
4037
  metadata?: { [key: string]: string | null } | null;
3480
4038
  }
3481
4039
 
4040
+ export namespace NewFloatingScalableMatrixWithUnitPricingPrice {
4041
+ /**
4042
+ * Configuration for scalable_matrix_with_unit_pricing pricing
4043
+ */
4044
+ export interface ScalableMatrixWithUnitPricingConfig {
4045
+ /**
4046
+ * Used to determine the unit rate
4047
+ */
4048
+ first_dimension: string;
4049
+
4050
+ /**
4051
+ * Apply a scaling factor to each dimension
4052
+ */
4053
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
4054
+
4055
+ /**
4056
+ * The final unit price to rate against the output of the matrix
4057
+ */
4058
+ unit_price: string;
4059
+
4060
+ /**
4061
+ * If true, the unit price will be prorated to the billing period
4062
+ */
4063
+ prorate?: boolean | null;
4064
+
4065
+ /**
4066
+ * Used to determine the unit rate (optional)
4067
+ */
4068
+ second_dimension?: string | null;
4069
+ }
4070
+
4071
+ export namespace ScalableMatrixWithUnitPricingConfig {
4072
+ /**
4073
+ * Configuration for a single matrix scaling factor
4074
+ */
4075
+ export interface MatrixScalingFactor {
4076
+ /**
4077
+ * First dimension value
4078
+ */
4079
+ first_dimension_value: string;
4080
+
4081
+ /**
4082
+ * Scaling factor
4083
+ */
4084
+ scaling_factor: string;
4085
+
4086
+ /**
4087
+ * Second dimension value (optional)
4088
+ */
4089
+ second_dimension_value?: string | null;
4090
+ }
4091
+ }
4092
+ }
4093
+
3482
4094
  export interface NewFloatingThresholdTotalAmountPrice {
3483
4095
  /**
3484
4096
  * The cadence to bill for this price on.
@@ -3495,6 +4107,9 @@ export interface NewFloatingThresholdTotalAmountPrice {
3495
4107
  */
3496
4108
  item_id: string;
3497
4109
 
4110
+ /**
4111
+ * The pricing model type
4112
+ */
3498
4113
  model_type: 'threshold_total_amount';
3499
4114
 
3500
4115
  /**
@@ -3502,7 +4117,10 @@ export interface NewFloatingThresholdTotalAmountPrice {
3502
4117
  */
3503
4118
  name: string;
3504
4119
 
3505
- threshold_total_amount_config: { [key: string]: unknown };
4120
+ /**
4121
+ * Configuration for threshold_total_amount pricing
4122
+ */
4123
+ threshold_total_amount_config: NewFloatingThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
3506
4124
 
3507
4125
  /**
3508
4126
  * The id of the billable metric for the price. Only needed if the price is
@@ -3567,6 +4185,41 @@ export interface NewFloatingThresholdTotalAmountPrice {
3567
4185
  metadata?: { [key: string]: string | null } | null;
3568
4186
  }
3569
4187
 
4188
+ export namespace NewFloatingThresholdTotalAmountPrice {
4189
+ /**
4190
+ * Configuration for threshold_total_amount pricing
4191
+ */
4192
+ export interface ThresholdTotalAmountConfig {
4193
+ /**
4194
+ * When the quantity consumed passes a provided threshold, the configured total
4195
+ * will be charged
4196
+ */
4197
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
4198
+
4199
+ /**
4200
+ * If true, the unit price will be prorated to the billing period
4201
+ */
4202
+ prorate?: boolean | null;
4203
+ }
4204
+
4205
+ export namespace ThresholdTotalAmountConfig {
4206
+ /**
4207
+ * Configuration for a single threshold
4208
+ */
4209
+ export interface ConsumptionTable {
4210
+ /**
4211
+ * Quantity threshold
4212
+ */
4213
+ threshold: string;
4214
+
4215
+ /**
4216
+ * Total amount for this threshold
4217
+ */
4218
+ total_amount: string;
4219
+ }
4220
+ }
4221
+ }
4222
+
3570
4223
  export interface NewFloatingTieredPackagePrice {
3571
4224
  /**
3572
4225
  * The cadence to bill for this price on.
@@ -3583,6 +4236,9 @@ export interface NewFloatingTieredPackagePrice {
3583
4236
  */
3584
4237
  item_id: string;
3585
4238
 
4239
+ /**
4240
+ * The pricing model type
4241
+ */
3586
4242
  model_type: 'tiered_package';
3587
4243
 
3588
4244
  /**
@@ -3590,7 +4246,10 @@ export interface NewFloatingTieredPackagePrice {
3590
4246
  */
3591
4247
  name: string;
3592
4248
 
3593
- tiered_package_config: { [key: string]: unknown };
4249
+ /**
4250
+ * Configuration for tiered_package pricing
4251
+ */
4252
+ tiered_package_config: NewFloatingTieredPackagePrice.TieredPackageConfig;
3594
4253
 
3595
4254
  /**
3596
4255
  * The id of the billable metric for the price. Only needed if the price is
@@ -3655,6 +4314,43 @@ export interface NewFloatingTieredPackagePrice {
3655
4314
  metadata?: { [key: string]: string | null } | null;
3656
4315
  }
3657
4316
 
4317
+ export namespace NewFloatingTieredPackagePrice {
4318
+ /**
4319
+ * Configuration for tiered_package pricing
4320
+ */
4321
+ export interface TieredPackageConfig {
4322
+ /**
4323
+ * Package size
4324
+ */
4325
+ package_size: string;
4326
+
4327
+ /**
4328
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
4329
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
4330
+ * the total quantity rather than the number of packages, so they must be multiples
4331
+ * of the package size.
4332
+ */
4333
+ tiers: Array<TieredPackageConfig.Tier>;
4334
+ }
4335
+
4336
+ export namespace TieredPackageConfig {
4337
+ /**
4338
+ * Configuration for a single tier with business logic
4339
+ */
4340
+ export interface Tier {
4341
+ /**
4342
+ * Price per package
4343
+ */
4344
+ per_unit: string;
4345
+
4346
+ /**
4347
+ * Tier lower bound
4348
+ */
4349
+ tier_lower_bound: string;
4350
+ }
4351
+ }
4352
+ }
4353
+
3658
4354
  export interface NewFloatingTieredPackageWithMinimumPrice {
3659
4355
  /**
3660
4356
  * The cadence to bill for this price on.
@@ -3671,6 +4367,9 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3671
4367
  */
3672
4368
  item_id: string;
3673
4369
 
4370
+ /**
4371
+ * The pricing model type
4372
+ */
3674
4373
  model_type: 'tiered_package_with_minimum';
3675
4374
 
3676
4375
  /**
@@ -3678,7 +4377,10 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3678
4377
  */
3679
4378
  name: string;
3680
4379
 
3681
- tiered_package_with_minimum_config: { [key: string]: unknown };
4380
+ /**
4381
+ * Configuration for tiered_package_with_minimum pricing
4382
+ */
4383
+ tiered_package_with_minimum_config: NewFloatingTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
3682
4384
 
3683
4385
  /**
3684
4386
  * The id of the billable metric for the price. Only needed if the price is
@@ -3743,6 +4445,46 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3743
4445
  metadata?: { [key: string]: string | null } | null;
3744
4446
  }
3745
4447
 
4448
+ export namespace NewFloatingTieredPackageWithMinimumPrice {
4449
+ /**
4450
+ * Configuration for tiered_package_with_minimum pricing
4451
+ */
4452
+ export interface TieredPackageWithMinimumConfig {
4453
+ /**
4454
+ * Package size
4455
+ */
4456
+ package_size: number;
4457
+
4458
+ /**
4459
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
4460
+ * are defined using exclusive lower bounds.
4461
+ */
4462
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
4463
+ }
4464
+
4465
+ export namespace TieredPackageWithMinimumConfig {
4466
+ /**
4467
+ * Configuration for a single tier
4468
+ */
4469
+ export interface Tier {
4470
+ /**
4471
+ * Minimum amount
4472
+ */
4473
+ minimum_amount: string;
4474
+
4475
+ /**
4476
+ * Price per package
4477
+ */
4478
+ per_unit: string;
4479
+
4480
+ /**
4481
+ * Tier lower bound
4482
+ */
4483
+ tier_lower_bound: string;
4484
+ }
4485
+ }
4486
+ }
4487
+
3746
4488
  export interface NewFloatingTieredPrice {
3747
4489
  /**
3748
4490
  * The cadence to bill for this price on.
@@ -3759,6 +4501,9 @@ export interface NewFloatingTieredPrice {
3759
4501
  */
3760
4502
  item_id: string;
3761
4503
 
4504
+ /**
4505
+ * The pricing model type
4506
+ */
3762
4507
  model_type: 'tiered';
3763
4508
 
3764
4509
  /**
@@ -3766,6 +4511,9 @@ export interface NewFloatingTieredPrice {
3766
4511
  */
3767
4512
  name: string;
3768
4513
 
4514
+ /**
4515
+ * Configuration for tiered pricing
4516
+ */
3769
4517
  tiered_config: TieredConfig;
3770
4518
 
3771
4519
  /**
@@ -3847,6 +4595,9 @@ export interface NewFloatingTieredWithMinimumPrice {
3847
4595
  */
3848
4596
  item_id: string;
3849
4597
 
4598
+ /**
4599
+ * The pricing model type
4600
+ */
3850
4601
  model_type: 'tiered_with_minimum';
3851
4602
 
3852
4603
  /**
@@ -3854,7 +4605,10 @@ export interface NewFloatingTieredWithMinimumPrice {
3854
4605
  */
3855
4606
  name: string;
3856
4607
 
3857
- tiered_with_minimum_config: { [key: string]: unknown };
4608
+ /**
4609
+ * Configuration for tiered_with_minimum pricing
4610
+ */
4611
+ tiered_with_minimum_config: NewFloatingTieredWithMinimumPrice.TieredWithMinimumConfig;
3858
4612
 
3859
4613
  /**
3860
4614
  * The id of the billable metric for the price. Only needed if the price is
@@ -3919,6 +4673,51 @@ export interface NewFloatingTieredWithMinimumPrice {
3919
4673
  metadata?: { [key: string]: string | null } | null;
3920
4674
  }
3921
4675
 
4676
+ export namespace NewFloatingTieredWithMinimumPrice {
4677
+ /**
4678
+ * Configuration for tiered_with_minimum pricing
4679
+ */
4680
+ export interface TieredWithMinimumConfig {
4681
+ /**
4682
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
4683
+ * defined using exclusive lower bounds.
4684
+ */
4685
+ tiers: Array<TieredWithMinimumConfig.Tier>;
4686
+
4687
+ /**
4688
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
4689
+ */
4690
+ hide_zero_amount_tiers?: boolean;
4691
+
4692
+ /**
4693
+ * If true, the unit price will be prorated to the billing period
4694
+ */
4695
+ prorate?: boolean;
4696
+ }
4697
+
4698
+ export namespace TieredWithMinimumConfig {
4699
+ /**
4700
+ * Configuration for a single tier
4701
+ */
4702
+ export interface Tier {
4703
+ /**
4704
+ * Minimum amount
4705
+ */
4706
+ minimum_amount: string;
4707
+
4708
+ /**
4709
+ * Tier lower bound
4710
+ */
4711
+ tier_lower_bound: string;
4712
+
4713
+ /**
4714
+ * Per unit amount
4715
+ */
4716
+ unit_amount: string;
4717
+ }
4718
+ }
4719
+ }
4720
+
3922
4721
  export interface NewFloatingTieredWithProrationPrice {
3923
4722
  /**
3924
4723
  * The cadence to bill for this price on.
@@ -3935,6 +4734,9 @@ export interface NewFloatingTieredWithProrationPrice {
3935
4734
  */
3936
4735
  item_id: string;
3937
4736
 
4737
+ /**
4738
+ * The pricing model type
4739
+ */
3938
4740
  model_type: 'tiered_with_proration';
3939
4741
 
3940
4742
  /**
@@ -3942,7 +4744,10 @@ export interface NewFloatingTieredWithProrationPrice {
3942
4744
  */
3943
4745
  name: string;
3944
4746
 
3945
- tiered_with_proration_config: { [key: string]: unknown };
4747
+ /**
4748
+ * Configuration for tiered_with_proration pricing
4749
+ */
4750
+ tiered_with_proration_config: NewFloatingTieredWithProrationPrice.TieredWithProrationConfig;
3946
4751
 
3947
4752
  /**
3948
4753
  * The id of the billable metric for the price. Only needed if the price is
@@ -4007,13 +4812,43 @@ export interface NewFloatingTieredWithProrationPrice {
4007
4812
  metadata?: { [key: string]: string | null } | null;
4008
4813
  }
4009
4814
 
4010
- export interface NewFloatingUnitPrice {
4815
+ export namespace NewFloatingTieredWithProrationPrice {
4011
4816
  /**
4012
- * The cadence to bill for this price on.
4817
+ * Configuration for tiered_with_proration pricing
4013
4818
  */
4014
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4819
+ export interface TieredWithProrationConfig {
4820
+ /**
4821
+ * Tiers for rating based on total usage quantities into the specified tier with
4822
+ * proration
4823
+ */
4824
+ tiers: Array<TieredWithProrationConfig.Tier>;
4825
+ }
4015
4826
 
4016
- /**
4827
+ export namespace TieredWithProrationConfig {
4828
+ /**
4829
+ * Configuration for a single tiered with proration tier
4830
+ */
4831
+ export interface Tier {
4832
+ /**
4833
+ * Inclusive tier starting value
4834
+ */
4835
+ tier_lower_bound: string;
4836
+
4837
+ /**
4838
+ * Amount per unit
4839
+ */
4840
+ unit_amount: string;
4841
+ }
4842
+ }
4843
+ }
4844
+
4845
+ export interface NewFloatingUnitPrice {
4846
+ /**
4847
+ * The cadence to bill for this price on.
4848
+ */
4849
+ cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4850
+
4851
+ /**
4017
4852
  * An ISO 4217 currency string for which this price is billed in.
4018
4853
  */
4019
4854
  currency: string;
@@ -4023,6 +4858,9 @@ export interface NewFloatingUnitPrice {
4023
4858
  */
4024
4859
  item_id: string;
4025
4860
 
4861
+ /**
4862
+ * The pricing model type
4863
+ */
4026
4864
  model_type: 'unit';
4027
4865
 
4028
4866
  /**
@@ -4030,6 +4868,9 @@ export interface NewFloatingUnitPrice {
4030
4868
  */
4031
4869
  name: string;
4032
4870
 
4871
+ /**
4872
+ * Configuration for unit pricing
4873
+ */
4033
4874
  unit_config: UnitConfig;
4034
4875
 
4035
4876
  /**
@@ -4111,6 +4952,9 @@ export interface NewFloatingUnitWithPercentPrice {
4111
4952
  */
4112
4953
  item_id: string;
4113
4954
 
4955
+ /**
4956
+ * The pricing model type
4957
+ */
4114
4958
  model_type: 'unit_with_percent';
4115
4959
 
4116
4960
  /**
@@ -4118,7 +4962,10 @@ export interface NewFloatingUnitWithPercentPrice {
4118
4962
  */
4119
4963
  name: string;
4120
4964
 
4121
- unit_with_percent_config: { [key: string]: unknown };
4965
+ /**
4966
+ * Configuration for unit_with_percent pricing
4967
+ */
4968
+ unit_with_percent_config: NewFloatingUnitWithPercentPrice.UnitWithPercentConfig;
4122
4969
 
4123
4970
  /**
4124
4971
  * The id of the billable metric for the price. Only needed if the price is
@@ -4183,6 +5030,23 @@ export interface NewFloatingUnitWithPercentPrice {
4183
5030
  metadata?: { [key: string]: string | null } | null;
4184
5031
  }
4185
5032
 
5033
+ export namespace NewFloatingUnitWithPercentPrice {
5034
+ /**
5035
+ * Configuration for unit_with_percent pricing
5036
+ */
5037
+ export interface UnitWithPercentConfig {
5038
+ /**
5039
+ * What percent, out of 100, of the calculated total to charge
5040
+ */
5041
+ percent: string;
5042
+
5043
+ /**
5044
+ * Rate per unit of usage
5045
+ */
5046
+ unit_amount: string;
5047
+ }
5048
+ }
5049
+
4186
5050
  export interface NewFloatingUnitWithProrationPrice {
4187
5051
  /**
4188
5052
  * The cadence to bill for this price on.
@@ -4199,6 +5063,9 @@ export interface NewFloatingUnitWithProrationPrice {
4199
5063
  */
4200
5064
  item_id: string;
4201
5065
 
5066
+ /**
5067
+ * The pricing model type
5068
+ */
4202
5069
  model_type: 'unit_with_proration';
4203
5070
 
4204
5071
  /**
@@ -4206,7 +5073,10 @@ export interface NewFloatingUnitWithProrationPrice {
4206
5073
  */
4207
5074
  name: string;
4208
5075
 
4209
- unit_with_proration_config: { [key: string]: unknown };
5076
+ /**
5077
+ * Configuration for unit_with_proration pricing
5078
+ */
5079
+ unit_with_proration_config: NewFloatingUnitWithProrationPrice.UnitWithProrationConfig;
4210
5080
 
4211
5081
  /**
4212
5082
  * The id of the billable metric for the price. Only needed if the price is
@@ -4271,6 +5141,18 @@ export interface NewFloatingUnitWithProrationPrice {
4271
5141
  metadata?: { [key: string]: string | null } | null;
4272
5142
  }
4273
5143
 
5144
+ export namespace NewFloatingUnitWithProrationPrice {
5145
+ /**
5146
+ * Configuration for unit_with_proration pricing
5147
+ */
5148
+ export interface UnitWithProrationConfig {
5149
+ /**
5150
+ * Rate per unit of usage
5151
+ */
5152
+ unit_amount: string;
5153
+ }
5154
+ }
5155
+
4274
5156
  export interface NewMaximum {
4275
5157
  adjustment_type: 'maximum';
4276
5158
 
@@ -4403,6 +5285,9 @@ export interface NewPercentageDiscount {
4403
5285
  }
4404
5286
 
4405
5287
  export interface NewPlanBulkPrice {
5288
+ /**
5289
+ * Configuration for bulk pricing
5290
+ */
4406
5291
  bulk_config: BulkConfig;
4407
5292
 
4408
5293
  /**
@@ -4415,6 +5300,9 @@ export interface NewPlanBulkPrice {
4415
5300
  */
4416
5301
  item_id: string;
4417
5302
 
5303
+ /**
5304
+ * The pricing model type
5305
+ */
4418
5306
  model_type: 'bulk';
4419
5307
 
4420
5308
  /**
@@ -4498,7 +5386,10 @@ export interface NewPlanBulkPrice {
4498
5386
  }
4499
5387
 
4500
5388
  export interface NewPlanBulkWithProrationPrice {
4501
- bulk_with_proration_config: { [key: string]: unknown };
5389
+ /**
5390
+ * Configuration for bulk_with_proration pricing
5391
+ */
5392
+ bulk_with_proration_config: NewPlanBulkWithProrationPrice.BulkWithProrationConfig;
4502
5393
 
4503
5394
  /**
4504
5395
  * The cadence to bill for this price on.
@@ -4510,6 +5401,9 @@ export interface NewPlanBulkWithProrationPrice {
4510
5401
  */
4511
5402
  item_id: string;
4512
5403
 
5404
+ /**
5405
+ * The pricing model type
5406
+ */
4513
5407
  model_type: 'bulk_with_proration';
4514
5408
 
4515
5409
  /**
@@ -4592,19 +5486,54 @@ export interface NewPlanBulkWithProrationPrice {
4592
5486
  reference_id?: string | null;
4593
5487
  }
4594
5488
 
5489
+ export namespace NewPlanBulkWithProrationPrice {
5490
+ /**
5491
+ * Configuration for bulk_with_proration pricing
5492
+ */
5493
+ export interface BulkWithProrationConfig {
5494
+ /**
5495
+ * Bulk tiers for rating based on total usage volume
5496
+ */
5497
+ tiers: Array<BulkWithProrationConfig.Tier>;
5498
+ }
5499
+
5500
+ export namespace BulkWithProrationConfig {
5501
+ /**
5502
+ * Configuration for a single bulk pricing tier with proration
5503
+ */
5504
+ export interface Tier {
5505
+ /**
5506
+ * Cost per unit
5507
+ */
5508
+ unit_amount: string;
5509
+
5510
+ /**
5511
+ * The lower bound for this tier
5512
+ */
5513
+ tier_lower_bound?: string | null;
5514
+ }
5515
+ }
5516
+ }
5517
+
4595
5518
  export interface NewPlanCumulativeGroupedBulkPrice {
4596
5519
  /**
4597
5520
  * The cadence to bill for this price on.
4598
5521
  */
4599
5522
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4600
5523
 
4601
- cumulative_grouped_bulk_config: { [key: string]: unknown };
5524
+ /**
5525
+ * Configuration for cumulative_grouped_bulk pricing
5526
+ */
5527
+ cumulative_grouped_bulk_config: NewPlanCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
4602
5528
 
4603
5529
  /**
4604
5530
  * The id of the item the price will be associated with.
4605
5531
  */
4606
5532
  item_id: string;
4607
5533
 
5534
+ /**
5535
+ * The pricing model type
5536
+ */
4608
5537
  model_type: 'cumulative_grouped_bulk';
4609
5538
 
4610
5539
  /**
@@ -4687,19 +5616,64 @@ export interface NewPlanCumulativeGroupedBulkPrice {
4687
5616
  reference_id?: string | null;
4688
5617
  }
4689
5618
 
5619
+ export namespace NewPlanCumulativeGroupedBulkPrice {
5620
+ /**
5621
+ * Configuration for cumulative_grouped_bulk pricing
5622
+ */
5623
+ export interface CumulativeGroupedBulkConfig {
5624
+ /**
5625
+ * Each tier lower bound must have the same group of values.
5626
+ */
5627
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
5628
+
5629
+ /**
5630
+ * Grouping key name
5631
+ */
5632
+ group: string;
5633
+ }
5634
+
5635
+ export namespace CumulativeGroupedBulkConfig {
5636
+ /**
5637
+ * Configuration for a dimension value entry
5638
+ */
5639
+ export interface DimensionValue {
5640
+ /**
5641
+ * Grouping key value
5642
+ */
5643
+ grouping_key: string;
5644
+
5645
+ /**
5646
+ * Tier lower bound
5647
+ */
5648
+ tier_lower_bound: string;
5649
+
5650
+ /**
5651
+ * Unit amount for this combination
5652
+ */
5653
+ unit_amount: string;
5654
+ }
5655
+ }
5656
+ }
5657
+
4690
5658
  export interface NewPlanGroupedAllocationPrice {
4691
5659
  /**
4692
5660
  * The cadence to bill for this price on.
4693
5661
  */
4694
5662
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4695
5663
 
4696
- grouped_allocation_config: { [key: string]: unknown };
5664
+ /**
5665
+ * Configuration for grouped_allocation pricing
5666
+ */
5667
+ grouped_allocation_config: NewPlanGroupedAllocationPrice.GroupedAllocationConfig;
4697
5668
 
4698
5669
  /**
4699
5670
  * The id of the item the price will be associated with.
4700
5671
  */
4701
5672
  item_id: string;
4702
5673
 
5674
+ /**
5675
+ * The pricing model type
5676
+ */
4703
5677
  model_type: 'grouped_allocation';
4704
5678
 
4705
5679
  /**
@@ -4782,19 +5756,47 @@ export interface NewPlanGroupedAllocationPrice {
4782
5756
  reference_id?: string | null;
4783
5757
  }
4784
5758
 
5759
+ export namespace NewPlanGroupedAllocationPrice {
5760
+ /**
5761
+ * Configuration for grouped_allocation pricing
5762
+ */
5763
+ export interface GroupedAllocationConfig {
5764
+ /**
5765
+ * Usage allocation per group
5766
+ */
5767
+ allocation: string;
5768
+
5769
+ /**
5770
+ * How to determine the groups that should each be allocated some quantity
5771
+ */
5772
+ grouping_key: string;
5773
+
5774
+ /**
5775
+ * Unit rate for post-allocation
5776
+ */
5777
+ overage_unit_rate: string;
5778
+ }
5779
+ }
5780
+
4785
5781
  export interface NewPlanGroupedTieredPackagePrice {
4786
5782
  /**
4787
5783
  * The cadence to bill for this price on.
4788
5784
  */
4789
5785
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4790
5786
 
4791
- grouped_tiered_package_config: { [key: string]: unknown };
5787
+ /**
5788
+ * Configuration for grouped_tiered_package pricing
5789
+ */
5790
+ grouped_tiered_package_config: NewPlanGroupedTieredPackagePrice.GroupedTieredPackageConfig;
4792
5791
 
4793
5792
  /**
4794
5793
  * The id of the item the price will be associated with.
4795
5794
  */
4796
5795
  item_id: string;
4797
5796
 
5797
+ /**
5798
+ * The pricing model type
5799
+ */
4798
5800
  model_type: 'grouped_tiered_package';
4799
5801
 
4800
5802
  /**
@@ -4877,19 +5879,65 @@ export interface NewPlanGroupedTieredPackagePrice {
4877
5879
  reference_id?: string | null;
4878
5880
  }
4879
5881
 
5882
+ export namespace NewPlanGroupedTieredPackagePrice {
5883
+ /**
5884
+ * Configuration for grouped_tiered_package pricing
5885
+ */
5886
+ export interface GroupedTieredPackageConfig {
5887
+ /**
5888
+ * The event property used to group before tiering
5889
+ */
5890
+ grouping_key: string;
5891
+
5892
+ /**
5893
+ * Package size
5894
+ */
5895
+ package_size: string;
5896
+
5897
+ /**
5898
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
5899
+ * are defined using exclusive lower bounds.
5900
+ */
5901
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
5902
+ }
5903
+
5904
+ export namespace GroupedTieredPackageConfig {
5905
+ /**
5906
+ * Configuration for a single tier
5907
+ */
5908
+ export interface Tier {
5909
+ /**
5910
+ * Price per package
5911
+ */
5912
+ per_unit: string;
5913
+
5914
+ /**
5915
+ * Tier lower bound
5916
+ */
5917
+ tier_lower_bound: string;
5918
+ }
5919
+ }
5920
+ }
5921
+
4880
5922
  export interface NewPlanGroupedTieredPrice {
4881
5923
  /**
4882
5924
  * The cadence to bill for this price on.
4883
5925
  */
4884
5926
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4885
5927
 
4886
- grouped_tiered_config: { [key: string]: unknown };
5928
+ /**
5929
+ * Configuration for grouped_tiered pricing
5930
+ */
5931
+ grouped_tiered_config: NewPlanGroupedTieredPrice.GroupedTieredConfig;
4887
5932
 
4888
5933
  /**
4889
5934
  * The id of the item the price will be associated with.
4890
5935
  */
4891
5936
  item_id: string;
4892
5937
 
5938
+ /**
5939
+ * The pricing model type
5940
+ */
4893
5941
  model_type: 'grouped_tiered';
4894
5942
 
4895
5943
  /**
@@ -4972,19 +6020,60 @@ export interface NewPlanGroupedTieredPrice {
4972
6020
  reference_id?: string | null;
4973
6021
  }
4974
6022
 
6023
+ export namespace NewPlanGroupedTieredPrice {
6024
+ /**
6025
+ * Configuration for grouped_tiered pricing
6026
+ */
6027
+ export interface GroupedTieredConfig {
6028
+ /**
6029
+ * The billable metric property used to group before tiering
6030
+ */
6031
+ grouping_key: string;
6032
+
6033
+ /**
6034
+ * Apply tiered pricing to each segment generated after grouping with the provided
6035
+ * key
6036
+ */
6037
+ tiers: Array<GroupedTieredConfig.Tier>;
6038
+ }
6039
+
6040
+ export namespace GroupedTieredConfig {
6041
+ /**
6042
+ * Configuration for a single tier
6043
+ */
6044
+ export interface Tier {
6045
+ /**
6046
+ * Tier lower bound
6047
+ */
6048
+ tier_lower_bound: string;
6049
+
6050
+ /**
6051
+ * Per unit amount
6052
+ */
6053
+ unit_amount: string;
6054
+ }
6055
+ }
6056
+ }
6057
+
4975
6058
  export interface NewPlanGroupedWithMeteredMinimumPrice {
4976
6059
  /**
4977
6060
  * The cadence to bill for this price on.
4978
6061
  */
4979
6062
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4980
6063
 
4981
- grouped_with_metered_minimum_config: { [key: string]: unknown };
6064
+ /**
6065
+ * Configuration for grouped_with_metered_minimum pricing
6066
+ */
6067
+ grouped_with_metered_minimum_config: NewPlanGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
4982
6068
 
4983
6069
  /**
4984
6070
  * The id of the item the price will be associated with.
4985
6071
  */
4986
6072
  item_id: string;
4987
6073
 
6074
+ /**
6075
+ * The pricing model type
6076
+ */
4988
6077
  model_type: 'grouped_with_metered_minimum';
4989
6078
 
4990
6079
  /**
@@ -5067,19 +6156,96 @@ export interface NewPlanGroupedWithMeteredMinimumPrice {
5067
6156
  reference_id?: string | null;
5068
6157
  }
5069
6158
 
6159
+ export namespace NewPlanGroupedWithMeteredMinimumPrice {
6160
+ /**
6161
+ * Configuration for grouped_with_metered_minimum pricing
6162
+ */
6163
+ export interface GroupedWithMeteredMinimumConfig {
6164
+ /**
6165
+ * Used to partition the usage into groups. The minimum amount is applied to each
6166
+ * group.
6167
+ */
6168
+ grouping_key: string;
6169
+
6170
+ /**
6171
+ * The minimum amount to charge per group per unit
6172
+ */
6173
+ minimum_unit_amount: string;
6174
+
6175
+ /**
6176
+ * Used to determine the unit rate
6177
+ */
6178
+ pricing_key: string;
6179
+
6180
+ /**
6181
+ * Scale the unit rates by the scaling factor.
6182
+ */
6183
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
6184
+
6185
+ /**
6186
+ * Used to determine the unit rate scaling factor
6187
+ */
6188
+ scaling_key: string;
6189
+
6190
+ /**
6191
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
6192
+ * unmatched usage.
6193
+ */
6194
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
6195
+ }
6196
+
6197
+ export namespace GroupedWithMeteredMinimumConfig {
6198
+ /**
6199
+ * Configuration for a scaling factor
6200
+ */
6201
+ export interface ScalingFactor {
6202
+ /**
6203
+ * Scaling factor
6204
+ */
6205
+ scaling_factor: string;
6206
+
6207
+ /**
6208
+ * Scaling value
6209
+ */
6210
+ scaling_value: string;
6211
+ }
6212
+
6213
+ /**
6214
+ * Configuration for a unit amount
6215
+ */
6216
+ export interface UnitAmount {
6217
+ /**
6218
+ * Pricing value
6219
+ */
6220
+ pricing_value: string;
6221
+
6222
+ /**
6223
+ * Per unit amount
6224
+ */
6225
+ unit_amount: string;
6226
+ }
6227
+ }
6228
+ }
6229
+
5070
6230
  export interface NewPlanGroupedWithProratedMinimumPrice {
5071
6231
  /**
5072
6232
  * The cadence to bill for this price on.
5073
6233
  */
5074
6234
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
5075
6235
 
5076
- grouped_with_prorated_minimum_config: { [key: string]: unknown };
6236
+ /**
6237
+ * Configuration for grouped_with_prorated_minimum pricing
6238
+ */
6239
+ grouped_with_prorated_minimum_config: NewPlanGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
5077
6240
 
5078
6241
  /**
5079
6242
  * The id of the item the price will be associated with.
5080
6243
  */
5081
6244
  item_id: string;
5082
6245
 
6246
+ /**
6247
+ * The pricing model type
6248
+ */
5083
6249
  model_type: 'grouped_with_prorated_minimum';
5084
6250
 
5085
6251
  /**
@@ -5162,6 +6328,28 @@ export interface NewPlanGroupedWithProratedMinimumPrice {
5162
6328
  reference_id?: string | null;
5163
6329
  }
5164
6330
 
6331
+ export namespace NewPlanGroupedWithProratedMinimumPrice {
6332
+ /**
6333
+ * Configuration for grouped_with_prorated_minimum pricing
6334
+ */
6335
+ export interface GroupedWithProratedMinimumConfig {
6336
+ /**
6337
+ * How to determine the groups that should each have a minimum
6338
+ */
6339
+ grouping_key: string;
6340
+
6341
+ /**
6342
+ * The minimum amount to charge per group
6343
+ */
6344
+ minimum: string;
6345
+
6346
+ /**
6347
+ * The amount to charge per unit
6348
+ */
6349
+ unit_rate: string;
6350
+ }
6351
+ }
6352
+
5165
6353
  export interface NewPlanMatrixPrice {
5166
6354
  /**
5167
6355
  * The cadence to bill for this price on.
@@ -5173,8 +6361,14 @@ export interface NewPlanMatrixPrice {
5173
6361
  */
5174
6362
  item_id: string;
5175
6363
 
6364
+ /**
6365
+ * Configuration for matrix pricing
6366
+ */
5176
6367
  matrix_config: MatrixConfig;
5177
6368
 
6369
+ /**
6370
+ * The pricing model type
6371
+ */
5178
6372
  model_type: 'matrix';
5179
6373
 
5180
6374
  /**
@@ -5268,8 +6462,14 @@ export interface NewPlanMatrixWithAllocationPrice {
5268
6462
  */
5269
6463
  item_id: string;
5270
6464
 
6465
+ /**
6466
+ * Configuration for matrix_with_allocation pricing
6467
+ */
5271
6468
  matrix_with_allocation_config: MatrixWithAllocationConfig;
5272
6469
 
6470
+ /**
6471
+ * The pricing model type
6472
+ */
5273
6473
  model_type: 'matrix_with_allocation';
5274
6474
 
5275
6475
  /**
@@ -5363,8 +6563,14 @@ export interface NewPlanMatrixWithDisplayNamePrice {
5363
6563
  */
5364
6564
  item_id: string;
5365
6565
 
5366
- matrix_with_display_name_config: { [key: string]: unknown };
6566
+ /**
6567
+ * Configuration for matrix_with_display_name pricing
6568
+ */
6569
+ matrix_with_display_name_config: NewPlanMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
5367
6570
 
6571
+ /**
6572
+ * The pricing model type
6573
+ */
5368
6574
  model_type: 'matrix_with_display_name';
5369
6575
 
5370
6576
  /**
@@ -5447,20 +6653,65 @@ export interface NewPlanMatrixWithDisplayNamePrice {
5447
6653
  reference_id?: string | null;
5448
6654
  }
5449
6655
 
5450
- export interface NewPlanMaxGroupTieredPackagePrice {
5451
- /**
5452
- * The cadence to bill for this price on.
5453
- */
5454
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
5455
-
6656
+ export namespace NewPlanMatrixWithDisplayNamePrice {
5456
6657
  /**
5457
- * The id of the item the price will be associated with.
6658
+ * Configuration for matrix_with_display_name pricing
5458
6659
  */
5459
- item_id: string;
5460
-
5461
- max_group_tiered_package_config: { [key: string]: unknown };
6660
+ export interface MatrixWithDisplayNameConfig {
6661
+ /**
6662
+ * Used to determine the unit rate
6663
+ */
6664
+ dimension: string;
5462
6665
 
5463
- model_type: 'max_group_tiered_package';
6666
+ /**
6667
+ * Apply per unit pricing to each dimension value
6668
+ */
6669
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
6670
+ }
6671
+
6672
+ export namespace MatrixWithDisplayNameConfig {
6673
+ /**
6674
+ * Configuration for a unit amount item
6675
+ */
6676
+ export interface UnitAmount {
6677
+ /**
6678
+ * The dimension value
6679
+ */
6680
+ dimension_value: string;
6681
+
6682
+ /**
6683
+ * Display name for this dimension value
6684
+ */
6685
+ display_name: string;
6686
+
6687
+ /**
6688
+ * Per unit amount
6689
+ */
6690
+ unit_amount: string;
6691
+ }
6692
+ }
6693
+ }
6694
+
6695
+ export interface NewPlanMaxGroupTieredPackagePrice {
6696
+ /**
6697
+ * The cadence to bill for this price on.
6698
+ */
6699
+ cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
6700
+
6701
+ /**
6702
+ * The id of the item the price will be associated with.
6703
+ */
6704
+ item_id: string;
6705
+
6706
+ /**
6707
+ * Configuration for max_group_tiered_package pricing
6708
+ */
6709
+ max_group_tiered_package_config: NewPlanMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
6710
+
6711
+ /**
6712
+ * The pricing model type
6713
+ */
6714
+ model_type: 'max_group_tiered_package';
5464
6715
 
5465
6716
  /**
5466
6717
  * The name of the price.
@@ -5542,6 +6793,45 @@ export interface NewPlanMaxGroupTieredPackagePrice {
5542
6793
  reference_id?: string | null;
5543
6794
  }
5544
6795
 
6796
+ export namespace NewPlanMaxGroupTieredPackagePrice {
6797
+ /**
6798
+ * Configuration for max_group_tiered_package pricing
6799
+ */
6800
+ export interface MaxGroupTieredPackageConfig {
6801
+ /**
6802
+ * The event property used to group before tiering the group with the highest value
6803
+ */
6804
+ grouping_key: string;
6805
+
6806
+ /**
6807
+ * Package size
6808
+ */
6809
+ package_size: string;
6810
+
6811
+ /**
6812
+ * Apply tiered pricing to the largest group after grouping with the provided key.
6813
+ */
6814
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
6815
+ }
6816
+
6817
+ export namespace MaxGroupTieredPackageConfig {
6818
+ /**
6819
+ * Configuration for a single tier
6820
+ */
6821
+ export interface Tier {
6822
+ /**
6823
+ * Tier lower bound
6824
+ */
6825
+ tier_lower_bound: string;
6826
+
6827
+ /**
6828
+ * Per unit amount
6829
+ */
6830
+ unit_amount: string;
6831
+ }
6832
+ }
6833
+ }
6834
+
5545
6835
  export interface NewPlanMinimumCompositePrice {
5546
6836
  /**
5547
6837
  * The cadence to bill for this price on.
@@ -5553,8 +6843,14 @@ export interface NewPlanMinimumCompositePrice {
5553
6843
  */
5554
6844
  item_id: string;
5555
6845
 
6846
+ /**
6847
+ * Configuration for minimum pricing
6848
+ */
5556
6849
  minimum_config: NewPlanMinimumCompositePrice.MinimumConfig;
5557
6850
 
6851
+ /**
6852
+ * The pricing model type
6853
+ */
5558
6854
  model_type: 'minimum';
5559
6855
 
5560
6856
  /**
@@ -5638,6 +6934,9 @@ export interface NewPlanMinimumCompositePrice {
5638
6934
  }
5639
6935
 
5640
6936
  export namespace NewPlanMinimumCompositePrice {
6937
+ /**
6938
+ * Configuration for minimum pricing
6939
+ */
5641
6940
  export interface MinimumConfig {
5642
6941
  /**
5643
6942
  * The minimum amount to apply
@@ -5645,10 +6944,9 @@ export namespace NewPlanMinimumCompositePrice {
5645
6944
  minimum_amount: string;
5646
6945
 
5647
6946
  /**
5648
- * By default, subtotals from minimum composite prices are prorated based on the
5649
- * service period. Set to false to disable proration.
6947
+ * If true, subtotals from this price are prorated based on the service period
5650
6948
  */
5651
- prorated?: boolean | null;
6949
+ prorated?: boolean;
5652
6950
  }
5653
6951
  }
5654
6952
 
@@ -5663,6 +6961,9 @@ export interface NewPlanPackagePrice {
5663
6961
  */
5664
6962
  item_id: string;
5665
6963
 
6964
+ /**
6965
+ * The pricing model type
6966
+ */
5666
6967
  model_type: 'package';
5667
6968
 
5668
6969
  /**
@@ -5670,6 +6971,9 @@ export interface NewPlanPackagePrice {
5670
6971
  */
5671
6972
  name: string;
5672
6973
 
6974
+ /**
6975
+ * Configuration for package pricing
6976
+ */
5673
6977
  package_config: PackageConfig;
5674
6978
 
5675
6979
  /**
@@ -5758,6 +7062,9 @@ export interface NewPlanPackageWithAllocationPrice {
5758
7062
  */
5759
7063
  item_id: string;
5760
7064
 
7065
+ /**
7066
+ * The pricing model type
7067
+ */
5761
7068
  model_type: 'package_with_allocation';
5762
7069
 
5763
7070
  /**
@@ -5765,7 +7072,10 @@ export interface NewPlanPackageWithAllocationPrice {
5765
7072
  */
5766
7073
  name: string;
5767
7074
 
5768
- package_with_allocation_config: { [key: string]: unknown };
7075
+ /**
7076
+ * Configuration for package_with_allocation pricing
7077
+ */
7078
+ package_with_allocation_config: NewPlanPackageWithAllocationPrice.PackageWithAllocationConfig;
5769
7079
 
5770
7080
  /**
5771
7081
  * The id of the billable metric for the price. Only needed if the price is
@@ -5842,6 +7152,28 @@ export interface NewPlanPackageWithAllocationPrice {
5842
7152
  reference_id?: string | null;
5843
7153
  }
5844
7154
 
7155
+ export namespace NewPlanPackageWithAllocationPrice {
7156
+ /**
7157
+ * Configuration for package_with_allocation pricing
7158
+ */
7159
+ export interface PackageWithAllocationConfig {
7160
+ /**
7161
+ * Usage allocation
7162
+ */
7163
+ allocation: string;
7164
+
7165
+ /**
7166
+ * Price per package
7167
+ */
7168
+ package_amount: string;
7169
+
7170
+ /**
7171
+ * Package size
7172
+ */
7173
+ package_size: string;
7174
+ }
7175
+ }
7176
+
5845
7177
  export interface NewPlanScalableMatrixWithTieredPricingPrice {
5846
7178
  /**
5847
7179
  * The cadence to bill for this price on.
@@ -5853,6 +7185,9 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5853
7185
  */
5854
7186
  item_id: string;
5855
7187
 
7188
+ /**
7189
+ * The pricing model type
7190
+ */
5856
7191
  model_type: 'scalable_matrix_with_tiered_pricing';
5857
7192
 
5858
7193
  /**
@@ -5860,7 +7195,10 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5860
7195
  */
5861
7196
  name: string;
5862
7197
 
5863
- scalable_matrix_with_tiered_pricing_config: { [key: string]: unknown };
7198
+ /**
7199
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
7200
+ */
7201
+ scalable_matrix_with_tiered_pricing_config: NewPlanScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
5864
7202
 
5865
7203
  /**
5866
7204
  * The id of the billable metric for the price. Only needed if the price is
@@ -5937,6 +7275,70 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5937
7275
  reference_id?: string | null;
5938
7276
  }
5939
7277
 
7278
+ export namespace NewPlanScalableMatrixWithTieredPricingPrice {
7279
+ /**
7280
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
7281
+ */
7282
+ export interface ScalableMatrixWithTieredPricingConfig {
7283
+ /**
7284
+ * Used for the scalable matrix first dimension
7285
+ */
7286
+ first_dimension: string;
7287
+
7288
+ /**
7289
+ * Apply a scaling factor to each dimension
7290
+ */
7291
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
7292
+
7293
+ /**
7294
+ * Tier pricing structure
7295
+ */
7296
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
7297
+
7298
+ /**
7299
+ * Used for the scalable matrix second dimension (optional)
7300
+ */
7301
+ second_dimension?: string | null;
7302
+ }
7303
+
7304
+ export namespace ScalableMatrixWithTieredPricingConfig {
7305
+ /**
7306
+ * Configuration for a single matrix scaling factor
7307
+ */
7308
+ export interface MatrixScalingFactor {
7309
+ /**
7310
+ * First dimension value
7311
+ */
7312
+ first_dimension_value: string;
7313
+
7314
+ /**
7315
+ * Scaling factor
7316
+ */
7317
+ scaling_factor: string;
7318
+
7319
+ /**
7320
+ * Second dimension value (optional)
7321
+ */
7322
+ second_dimension_value?: string | null;
7323
+ }
7324
+
7325
+ /**
7326
+ * Configuration for a single tier entry with business logic
7327
+ */
7328
+ export interface Tier {
7329
+ /**
7330
+ * Tier lower bound
7331
+ */
7332
+ tier_lower_bound: string;
7333
+
7334
+ /**
7335
+ * Per unit amount
7336
+ */
7337
+ unit_amount: string;
7338
+ }
7339
+ }
7340
+ }
7341
+
5940
7342
  export interface NewPlanScalableMatrixWithUnitPricingPrice {
5941
7343
  /**
5942
7344
  * The cadence to bill for this price on.
@@ -5948,6 +7350,9 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
5948
7350
  */
5949
7351
  item_id: string;
5950
7352
 
7353
+ /**
7354
+ * The pricing model type
7355
+ */
5951
7356
  model_type: 'scalable_matrix_with_unit_pricing';
5952
7357
 
5953
7358
  /**
@@ -5955,7 +7360,10 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
5955
7360
  */
5956
7361
  name: string;
5957
7362
 
5958
- scalable_matrix_with_unit_pricing_config: { [key: string]: unknown };
7363
+ /**
7364
+ * Configuration for scalable_matrix_with_unit_pricing pricing
7365
+ */
7366
+ scalable_matrix_with_unit_pricing_config: NewPlanScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
5959
7367
 
5960
7368
  /**
5961
7369
  * The id of the billable metric for the price. Only needed if the price is
@@ -6032,6 +7440,60 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
6032
7440
  reference_id?: string | null;
6033
7441
  }
6034
7442
 
7443
+ export namespace NewPlanScalableMatrixWithUnitPricingPrice {
7444
+ /**
7445
+ * Configuration for scalable_matrix_with_unit_pricing pricing
7446
+ */
7447
+ export interface ScalableMatrixWithUnitPricingConfig {
7448
+ /**
7449
+ * Used to determine the unit rate
7450
+ */
7451
+ first_dimension: string;
7452
+
7453
+ /**
7454
+ * Apply a scaling factor to each dimension
7455
+ */
7456
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
7457
+
7458
+ /**
7459
+ * The final unit price to rate against the output of the matrix
7460
+ */
7461
+ unit_price: string;
7462
+
7463
+ /**
7464
+ * If true, the unit price will be prorated to the billing period
7465
+ */
7466
+ prorate?: boolean | null;
7467
+
7468
+ /**
7469
+ * Used to determine the unit rate (optional)
7470
+ */
7471
+ second_dimension?: string | null;
7472
+ }
7473
+
7474
+ export namespace ScalableMatrixWithUnitPricingConfig {
7475
+ /**
7476
+ * Configuration for a single matrix scaling factor
7477
+ */
7478
+ export interface MatrixScalingFactor {
7479
+ /**
7480
+ * First dimension value
7481
+ */
7482
+ first_dimension_value: string;
7483
+
7484
+ /**
7485
+ * Scaling factor
7486
+ */
7487
+ scaling_factor: string;
7488
+
7489
+ /**
7490
+ * Second dimension value (optional)
7491
+ */
7492
+ second_dimension_value?: string | null;
7493
+ }
7494
+ }
7495
+ }
7496
+
6035
7497
  export interface NewPlanThresholdTotalAmountPrice {
6036
7498
  /**
6037
7499
  * The cadence to bill for this price on.
@@ -6043,6 +7505,9 @@ export interface NewPlanThresholdTotalAmountPrice {
6043
7505
  */
6044
7506
  item_id: string;
6045
7507
 
7508
+ /**
7509
+ * The pricing model type
7510
+ */
6046
7511
  model_type: 'threshold_total_amount';
6047
7512
 
6048
7513
  /**
@@ -6050,7 +7515,10 @@ export interface NewPlanThresholdTotalAmountPrice {
6050
7515
  */
6051
7516
  name: string;
6052
7517
 
6053
- threshold_total_amount_config: { [key: string]: unknown };
7518
+ /**
7519
+ * Configuration for threshold_total_amount pricing
7520
+ */
7521
+ threshold_total_amount_config: NewPlanThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
6054
7522
 
6055
7523
  /**
6056
7524
  * The id of the billable metric for the price. Only needed if the price is
@@ -6127,7 +7595,42 @@ export interface NewPlanThresholdTotalAmountPrice {
6127
7595
  reference_id?: string | null;
6128
7596
  }
6129
7597
 
6130
- export interface NewPlanTierWithProrationPrice {
7598
+ export namespace NewPlanThresholdTotalAmountPrice {
7599
+ /**
7600
+ * Configuration for threshold_total_amount pricing
7601
+ */
7602
+ export interface ThresholdTotalAmountConfig {
7603
+ /**
7604
+ * When the quantity consumed passes a provided threshold, the configured total
7605
+ * will be charged
7606
+ */
7607
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
7608
+
7609
+ /**
7610
+ * If true, the unit price will be prorated to the billing period
7611
+ */
7612
+ prorate?: boolean | null;
7613
+ }
7614
+
7615
+ export namespace ThresholdTotalAmountConfig {
7616
+ /**
7617
+ * Configuration for a single threshold
7618
+ */
7619
+ export interface ConsumptionTable {
7620
+ /**
7621
+ * Quantity threshold
7622
+ */
7623
+ threshold: string;
7624
+
7625
+ /**
7626
+ * Total amount for this threshold
7627
+ */
7628
+ total_amount: string;
7629
+ }
7630
+ }
7631
+ }
7632
+
7633
+ export interface NewPlanTieredPackagePrice {
6131
7634
  /**
6132
7635
  * The cadence to bill for this price on.
6133
7636
  */
@@ -6138,14 +7641,20 @@ export interface NewPlanTierWithProrationPrice {
6138
7641
  */
6139
7642
  item_id: string;
6140
7643
 
6141
- model_type: 'tiered_with_proration';
7644
+ /**
7645
+ * The pricing model type
7646
+ */
7647
+ model_type: 'tiered_package';
6142
7648
 
6143
7649
  /**
6144
7650
  * The name of the price.
6145
7651
  */
6146
7652
  name: string;
6147
7653
 
6148
- tiered_with_proration_config: { [key: string]: unknown };
7654
+ /**
7655
+ * Configuration for tiered_package pricing
7656
+ */
7657
+ tiered_package_config: NewPlanTieredPackagePrice.TieredPackageConfig;
6149
7658
 
6150
7659
  /**
6151
7660
  * The id of the billable metric for the price. Only needed if the price is
@@ -6222,7 +7731,44 @@ export interface NewPlanTierWithProrationPrice {
6222
7731
  reference_id?: string | null;
6223
7732
  }
6224
7733
 
6225
- export interface NewPlanTieredPackagePrice {
7734
+ export namespace NewPlanTieredPackagePrice {
7735
+ /**
7736
+ * Configuration for tiered_package pricing
7737
+ */
7738
+ export interface TieredPackageConfig {
7739
+ /**
7740
+ * Package size
7741
+ */
7742
+ package_size: string;
7743
+
7744
+ /**
7745
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7746
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
7747
+ * the total quantity rather than the number of packages, so they must be multiples
7748
+ * of the package size.
7749
+ */
7750
+ tiers: Array<TieredPackageConfig.Tier>;
7751
+ }
7752
+
7753
+ export namespace TieredPackageConfig {
7754
+ /**
7755
+ * Configuration for a single tier with business logic
7756
+ */
7757
+ export interface Tier {
7758
+ /**
7759
+ * Price per package
7760
+ */
7761
+ per_unit: string;
7762
+
7763
+ /**
7764
+ * Tier lower bound
7765
+ */
7766
+ tier_lower_bound: string;
7767
+ }
7768
+ }
7769
+ }
7770
+
7771
+ export interface NewPlanTieredPackageWithMinimumPrice {
6226
7772
  /**
6227
7773
  * The cadence to bill for this price on.
6228
7774
  */
@@ -6233,14 +7779,20 @@ export interface NewPlanTieredPackagePrice {
6233
7779
  */
6234
7780
  item_id: string;
6235
7781
 
6236
- model_type: 'tiered_package';
7782
+ /**
7783
+ * The pricing model type
7784
+ */
7785
+ model_type: 'tiered_package_with_minimum';
6237
7786
 
6238
7787
  /**
6239
7788
  * The name of the price.
6240
7789
  */
6241
7790
  name: string;
6242
7791
 
6243
- tiered_package_config: { [key: string]: unknown };
7792
+ /**
7793
+ * Configuration for tiered_package_with_minimum pricing
7794
+ */
7795
+ tiered_package_with_minimum_config: NewPlanTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
6244
7796
 
6245
7797
  /**
6246
7798
  * The id of the billable metric for the price. Only needed if the price is
@@ -6317,7 +7869,47 @@ export interface NewPlanTieredPackagePrice {
6317
7869
  reference_id?: string | null;
6318
7870
  }
6319
7871
 
6320
- export interface NewPlanTieredPackageWithMinimumPrice {
7872
+ export namespace NewPlanTieredPackageWithMinimumPrice {
7873
+ /**
7874
+ * Configuration for tiered_package_with_minimum pricing
7875
+ */
7876
+ export interface TieredPackageWithMinimumConfig {
7877
+ /**
7878
+ * Package size
7879
+ */
7880
+ package_size: number;
7881
+
7882
+ /**
7883
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7884
+ * are defined using exclusive lower bounds.
7885
+ */
7886
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
7887
+ }
7888
+
7889
+ export namespace TieredPackageWithMinimumConfig {
7890
+ /**
7891
+ * Configuration for a single tier
7892
+ */
7893
+ export interface Tier {
7894
+ /**
7895
+ * Minimum amount
7896
+ */
7897
+ minimum_amount: string;
7898
+
7899
+ /**
7900
+ * Price per package
7901
+ */
7902
+ per_unit: string;
7903
+
7904
+ /**
7905
+ * Tier lower bound
7906
+ */
7907
+ tier_lower_bound: string;
7908
+ }
7909
+ }
7910
+ }
7911
+
7912
+ export interface NewPlanTieredPrice {
6321
7913
  /**
6322
7914
  * The cadence to bill for this price on.
6323
7915
  */
@@ -6328,14 +7920,20 @@ export interface NewPlanTieredPackageWithMinimumPrice {
6328
7920
  */
6329
7921
  item_id: string;
6330
7922
 
6331
- model_type: 'tiered_package_with_minimum';
7923
+ /**
7924
+ * The pricing model type
7925
+ */
7926
+ model_type: 'tiered';
6332
7927
 
6333
7928
  /**
6334
7929
  * The name of the price.
6335
7930
  */
6336
7931
  name: string;
6337
7932
 
6338
- tiered_package_with_minimum_config: { [key: string]: unknown };
7933
+ /**
7934
+ * Configuration for tiered pricing
7935
+ */
7936
+ tiered_config: TieredConfig;
6339
7937
 
6340
7938
  /**
6341
7939
  * The id of the billable metric for the price. Only needed if the price is
@@ -6412,7 +8010,7 @@ export interface NewPlanTieredPackageWithMinimumPrice {
6412
8010
  reference_id?: string | null;
6413
8011
  }
6414
8012
 
6415
- export interface NewPlanTieredPrice {
8013
+ export interface NewPlanTieredWithMinimumPrice {
6416
8014
  /**
6417
8015
  * The cadence to bill for this price on.
6418
8016
  */
@@ -6423,14 +8021,20 @@ export interface NewPlanTieredPrice {
6423
8021
  */
6424
8022
  item_id: string;
6425
8023
 
6426
- model_type: 'tiered';
6427
-
8024
+ /**
8025
+ * The pricing model type
8026
+ */
8027
+ model_type: 'tiered_with_minimum';
8028
+
6428
8029
  /**
6429
8030
  * The name of the price.
6430
8031
  */
6431
8032
  name: string;
6432
8033
 
6433
- tiered_config: TieredConfig;
8034
+ /**
8035
+ * Configuration for tiered_with_minimum pricing
8036
+ */
8037
+ tiered_with_minimum_config: NewPlanTieredWithMinimumPrice.TieredWithMinimumConfig;
6434
8038
 
6435
8039
  /**
6436
8040
  * The id of the billable metric for the price. Only needed if the price is
@@ -6507,99 +8111,49 @@ export interface NewPlanTieredPrice {
6507
8111
  reference_id?: string | null;
6508
8112
  }
6509
8113
 
6510
- export interface NewPlanTieredWithMinimumPrice {
6511
- /**
6512
- * The cadence to bill for this price on.
6513
- */
6514
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
6515
-
6516
- /**
6517
- * The id of the item the price will be associated with.
6518
- */
6519
- item_id: string;
6520
-
6521
- model_type: 'tiered_with_minimum';
6522
-
6523
- /**
6524
- * The name of the price.
6525
- */
6526
- name: string;
6527
-
6528
- tiered_with_minimum_config: { [key: string]: unknown };
6529
-
6530
- /**
6531
- * The id of the billable metric for the price. Only needed if the price is
6532
- * usage-based.
6533
- */
6534
- billable_metric_id?: string | null;
6535
-
6536
- /**
6537
- * If the Price represents a fixed cost, the price will be billed in-advance if
6538
- * this is true, and in-arrears if this is false.
6539
- */
6540
- billed_in_advance?: boolean | null;
6541
-
6542
- /**
6543
- * For custom cadence: specifies the duration of the billing period in days or
6544
- * months.
6545
- */
6546
- billing_cycle_configuration?: NewBillingCycleConfiguration | null;
6547
-
6548
- /**
6549
- * The per unit conversion rate of the price currency to the invoicing currency.
6550
- */
6551
- conversion_rate?: number | null;
6552
-
6553
- /**
6554
- * The configuration for the rate of the price currency to the invoicing currency.
6555
- */
6556
- conversion_rate_config?: UnitConversionRateConfig | TieredConversionRateConfig | null;
6557
-
6558
- /**
6559
- * An ISO 4217 currency string, or custom pricing unit identifier, in which this
6560
- * price is billed.
6561
- */
6562
- currency?: string | null;
6563
-
6564
- /**
6565
- * For dimensional price: specifies a price group and dimension values
6566
- */
6567
- dimensional_price_configuration?: NewDimensionalPriceConfiguration | null;
6568
-
8114
+ export namespace NewPlanTieredWithMinimumPrice {
6569
8115
  /**
6570
- * An alias for the price.
8116
+ * Configuration for tiered_with_minimum pricing
6571
8117
  */
6572
- external_price_id?: string | null;
8118
+ export interface TieredWithMinimumConfig {
8119
+ /**
8120
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
8121
+ * defined using exclusive lower bounds.
8122
+ */
8123
+ tiers: Array<TieredWithMinimumConfig.Tier>;
6573
8124
 
6574
- /**
6575
- * If the Price represents a fixed cost, this represents the quantity of units
6576
- * applied.
6577
- */
6578
- fixed_price_quantity?: number | null;
8125
+ /**
8126
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
8127
+ */
8128
+ hide_zero_amount_tiers?: boolean;
6579
8129
 
6580
- /**
6581
- * The property used to group this price on an invoice
6582
- */
6583
- invoice_grouping_key?: string | null;
8130
+ /**
8131
+ * If true, the unit price will be prorated to the billing period
8132
+ */
8133
+ prorate?: boolean;
8134
+ }
6584
8135
 
6585
- /**
6586
- * Within each billing cycle, specifies the cadence at which invoices are produced.
6587
- * If unspecified, a single invoice is produced per billing cycle.
6588
- */
6589
- invoicing_cycle_configuration?: NewBillingCycleConfiguration | null;
8136
+ export namespace TieredWithMinimumConfig {
8137
+ /**
8138
+ * Configuration for a single tier
8139
+ */
8140
+ export interface Tier {
8141
+ /**
8142
+ * Minimum amount
8143
+ */
8144
+ minimum_amount: string;
6590
8145
 
6591
- /**
6592
- * User-specified key/value pairs for the resource. Individual keys can be removed
6593
- * by setting the value to `null`, and the entire metadata mapping can be cleared
6594
- * by setting `metadata` to `null`.
6595
- */
6596
- metadata?: { [key: string]: string | null } | null;
8146
+ /**
8147
+ * Tier lower bound
8148
+ */
8149
+ tier_lower_bound: string;
6597
8150
 
6598
- /**
6599
- * A transient ID that can be used to reference this price when adding adjustments
6600
- * in the same API call.
6601
- */
6602
- reference_id?: string | null;
8151
+ /**
8152
+ * Per unit amount
8153
+ */
8154
+ unit_amount: string;
8155
+ }
8156
+ }
6603
8157
  }
6604
8158
 
6605
8159
  export interface NewPlanUnitPrice {
@@ -6613,6 +8167,9 @@ export interface NewPlanUnitPrice {
6613
8167
  */
6614
8168
  item_id: string;
6615
8169
 
8170
+ /**
8171
+ * The pricing model type
8172
+ */
6616
8173
  model_type: 'unit';
6617
8174
 
6618
8175
  /**
@@ -6620,6 +8177,9 @@ export interface NewPlanUnitPrice {
6620
8177
  */
6621
8178
  name: string;
6622
8179
 
8180
+ /**
8181
+ * Configuration for unit pricing
8182
+ */
6623
8183
  unit_config: UnitConfig;
6624
8184
 
6625
8185
  /**
@@ -6708,6 +8268,9 @@ export interface NewPlanUnitWithPercentPrice {
6708
8268
  */
6709
8269
  item_id: string;
6710
8270
 
8271
+ /**
8272
+ * The pricing model type
8273
+ */
6711
8274
  model_type: 'unit_with_percent';
6712
8275
 
6713
8276
  /**
@@ -6715,7 +8278,10 @@ export interface NewPlanUnitWithPercentPrice {
6715
8278
  */
6716
8279
  name: string;
6717
8280
 
6718
- unit_with_percent_config: { [key: string]: unknown };
8281
+ /**
8282
+ * Configuration for unit_with_percent pricing
8283
+ */
8284
+ unit_with_percent_config: NewPlanUnitWithPercentPrice.UnitWithPercentConfig;
6719
8285
 
6720
8286
  /**
6721
8287
  * The id of the billable metric for the price. Only needed if the price is
@@ -6792,6 +8358,23 @@ export interface NewPlanUnitWithPercentPrice {
6792
8358
  reference_id?: string | null;
6793
8359
  }
6794
8360
 
8361
+ export namespace NewPlanUnitWithPercentPrice {
8362
+ /**
8363
+ * Configuration for unit_with_percent pricing
8364
+ */
8365
+ export interface UnitWithPercentConfig {
8366
+ /**
8367
+ * What percent, out of 100, of the calculated total to charge
8368
+ */
8369
+ percent: string;
8370
+
8371
+ /**
8372
+ * Rate per unit of usage
8373
+ */
8374
+ unit_amount: string;
8375
+ }
8376
+ }
8377
+
6795
8378
  export interface NewPlanUnitWithProrationPrice {
6796
8379
  /**
6797
8380
  * The cadence to bill for this price on.
@@ -6803,6 +8386,9 @@ export interface NewPlanUnitWithProrationPrice {
6803
8386
  */
6804
8387
  item_id: string;
6805
8388
 
8389
+ /**
8390
+ * The pricing model type
8391
+ */
6806
8392
  model_type: 'unit_with_proration';
6807
8393
 
6808
8394
  /**
@@ -6810,7 +8396,10 @@ export interface NewPlanUnitWithProrationPrice {
6810
8396
  */
6811
8397
  name: string;
6812
8398
 
6813
- unit_with_proration_config: { [key: string]: unknown };
8399
+ /**
8400
+ * Configuration for unit_with_proration pricing
8401
+ */
8402
+ unit_with_proration_config: NewPlanUnitWithProrationPrice.UnitWithProrationConfig;
6814
8403
 
6815
8404
  /**
6816
8405
  * The id of the billable metric for the price. Only needed if the price is
@@ -6887,6 +8476,18 @@ export interface NewPlanUnitWithProrationPrice {
6887
8476
  reference_id?: string | null;
6888
8477
  }
6889
8478
 
8479
+ export namespace NewPlanUnitWithProrationPrice {
8480
+ /**
8481
+ * Configuration for unit_with_proration pricing
8482
+ */
8483
+ export interface UnitWithProrationConfig {
8484
+ /**
8485
+ * Rate per unit of usage
8486
+ */
8487
+ unit_amount: string;
8488
+ }
8489
+ }
8490
+
6890
8491
  export interface NewUsageDiscount {
6891
8492
  adjustment_type: 'usage_discount';
6892
8493
 
@@ -6944,6 +8545,9 @@ export interface OtherSubLineItem {
6944
8545
  type: "'null'";
6945
8546
  }
6946
8547
 
8548
+ /**
8549
+ * Configuration for package pricing
8550
+ */
6947
8551
  export interface PackageConfig {
6948
8552
  /**
6949
8553
  * A currency amount to rate usage by
@@ -7282,14 +8886,14 @@ export interface PlanPhaseUsageDiscountAdjustment {
7282
8886
  */
7283
8887
  export type Price =
7284
8888
  | Price.UnitPrice
7285
- | Price.PackagePrice
7286
- | Price.MatrixPrice
7287
8889
  | Price.TieredPrice
7288
8890
  | Price.BulkPrice
8891
+ | Price.PackagePrice
8892
+ | Price.MatrixPrice
7289
8893
  | Price.ThresholdTotalAmountPrice
7290
8894
  | Price.TieredPackagePrice
7291
- | Price.GroupedTieredPrice
7292
8895
  | Price.TieredWithMinimumPrice
8896
+ | Price.GroupedTieredPrice
7293
8897
  | Price.TieredPackageWithMinimumPrice
7294
8898
  | Price.PackageWithAllocationPrice
7295
8899
  | Price.UnitWithPercentPrice
@@ -7297,16 +8901,16 @@ export type Price =
7297
8901
  | Price.TieredWithProrationPrice
7298
8902
  | Price.UnitWithProrationPrice
7299
8903
  | Price.GroupedAllocationPrice
8904
+ | Price.BulkWithProrationPrice
7300
8905
  | Price.GroupedWithProratedMinimumPrice
7301
8906
  | Price.GroupedWithMeteredMinimumPrice
8907
+ | Price.GroupedWithMinMaxThresholdsPrice
7302
8908
  | Price.MatrixWithDisplayNamePrice
7303
- | Price.BulkWithProrationPrice
7304
8909
  | Price.GroupedTieredPackagePrice
7305
8910
  | Price.MaxGroupTieredPackagePrice
7306
8911
  | Price.ScalableMatrixWithUnitPricingPrice
7307
8912
  | Price.ScalableMatrixWithTieredPricingPrice
7308
8913
  | Price.CumulativeGroupedBulkPrice
7309
- | Price.GroupedWithMinMaxThresholdsPrice
7310
8914
  | Price.MinimumCompositePrice;
7311
8915
 
7312
8916
  export namespace Price {
@@ -7372,13 +8976,16 @@ export namespace Price {
7372
8976
  */
7373
8977
  minimum_amount: string | null;
7374
8978
 
8979
+ /**
8980
+ * The pricing model type
8981
+ */
7375
8982
  model_type: 'unit';
7376
8983
 
7377
8984
  name: string;
7378
8985
 
7379
8986
  plan_phase_order: number | null;
7380
8987
 
7381
- price_type: 'usage_price' | 'fixed_price';
8988
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7382
8989
 
7383
8990
  /**
7384
8991
  * The price id this price replaces. This price will take the place of the replaced
@@ -7386,12 +8993,15 @@ export namespace Price {
7386
8993
  */
7387
8994
  replaces_price_id: string | null;
7388
8995
 
8996
+ /**
8997
+ * Configuration for unit pricing
8998
+ */
7389
8999
  unit_config: Shared.UnitConfig;
7390
9000
 
7391
9001
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7392
9002
  }
7393
9003
 
7394
- export interface PackagePrice {
9004
+ export interface TieredPrice {
7395
9005
  id: string;
7396
9006
 
7397
9007
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7453,15 +9063,16 @@ export namespace Price {
7453
9063
  */
7454
9064
  minimum_amount: string | null;
7455
9065
 
7456
- model_type: 'package';
9066
+ /**
9067
+ * The pricing model type
9068
+ */
9069
+ model_type: 'tiered';
7457
9070
 
7458
9071
  name: string;
7459
9072
 
7460
- package_config: Shared.PackageConfig;
7461
-
7462
9073
  plan_phase_order: number | null;
7463
9074
 
7464
- price_type: 'usage_price' | 'fixed_price';
9075
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7465
9076
 
7466
9077
  /**
7467
9078
  * The price id this price replaces. This price will take the place of the replaced
@@ -7469,16 +9080,26 @@ export namespace Price {
7469
9080
  */
7470
9081
  replaces_price_id: string | null;
7471
9082
 
9083
+ /**
9084
+ * Configuration for tiered pricing
9085
+ */
9086
+ tiered_config: Shared.TieredConfig;
9087
+
7472
9088
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7473
9089
  }
7474
9090
 
7475
- export interface MatrixPrice {
9091
+ export interface BulkPrice {
7476
9092
  id: string;
7477
9093
 
7478
9094
  billable_metric: Shared.BillableMetricTiny | null;
7479
9095
 
7480
9096
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7481
9097
 
9098
+ /**
9099
+ * Configuration for bulk pricing
9100
+ */
9101
+ bulk_config: Shared.BulkConfig;
9102
+
7482
9103
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
7483
9104
 
7484
9105
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -7506,8 +9127,6 @@ export namespace Price {
7506
9127
 
7507
9128
  item: Shared.ItemSlim;
7508
9129
 
7509
- matrix_config: Shared.MatrixConfig;
7510
-
7511
9130
  /**
7512
9131
  * @deprecated
7513
9132
  */
@@ -7536,13 +9155,16 @@ export namespace Price {
7536
9155
  */
7537
9156
  minimum_amount: string | null;
7538
9157
 
7539
- model_type: 'matrix';
9158
+ /**
9159
+ * The pricing model type
9160
+ */
9161
+ model_type: 'bulk';
7540
9162
 
7541
9163
  name: string;
7542
9164
 
7543
9165
  plan_phase_order: number | null;
7544
9166
 
7545
- price_type: 'usage_price' | 'fixed_price';
9167
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7546
9168
 
7547
9169
  /**
7548
9170
  * The price id this price replaces. This price will take the place of the replaced
@@ -7553,7 +9175,7 @@ export namespace Price {
7553
9175
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7554
9176
  }
7555
9177
 
7556
- export interface TieredPrice {
9178
+ export interface PackagePrice {
7557
9179
  id: string;
7558
9180
 
7559
9181
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7615,13 +9237,21 @@ export namespace Price {
7615
9237
  */
7616
9238
  minimum_amount: string | null;
7617
9239
 
7618
- model_type: 'tiered';
9240
+ /**
9241
+ * The pricing model type
9242
+ */
9243
+ model_type: 'package';
7619
9244
 
7620
9245
  name: string;
7621
9246
 
9247
+ /**
9248
+ * Configuration for package pricing
9249
+ */
9250
+ package_config: Shared.PackageConfig;
9251
+
7622
9252
  plan_phase_order: number | null;
7623
9253
 
7624
- price_type: 'usage_price' | 'fixed_price';
9254
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7625
9255
 
7626
9256
  /**
7627
9257
  * The price id this price replaces. This price will take the place of the replaced
@@ -7629,20 +9259,16 @@ export namespace Price {
7629
9259
  */
7630
9260
  replaces_price_id: string | null;
7631
9261
 
7632
- tiered_config: Shared.TieredConfig;
7633
-
7634
9262
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7635
9263
  }
7636
9264
 
7637
- export interface BulkPrice {
9265
+ export interface MatrixPrice {
7638
9266
  id: string;
7639
9267
 
7640
9268
  billable_metric: Shared.BillableMetricTiny | null;
7641
9269
 
7642
9270
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7643
9271
 
7644
- bulk_config: Shared.BulkConfig;
7645
-
7646
9272
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
7647
9273
 
7648
9274
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -7670,6 +9296,11 @@ export namespace Price {
7670
9296
 
7671
9297
  item: Shared.ItemSlim;
7672
9298
 
9299
+ /**
9300
+ * Configuration for matrix pricing
9301
+ */
9302
+ matrix_config: Shared.MatrixConfig;
9303
+
7673
9304
  /**
7674
9305
  * @deprecated
7675
9306
  */
@@ -7698,13 +9329,16 @@ export namespace Price {
7698
9329
  */
7699
9330
  minimum_amount: string | null;
7700
9331
 
7701
- model_type: 'bulk';
9332
+ /**
9333
+ * The pricing model type
9334
+ */
9335
+ model_type: 'matrix';
7702
9336
 
7703
9337
  name: string;
7704
9338
 
7705
9339
  plan_phase_order: number | null;
7706
9340
 
7707
- price_type: 'usage_price' | 'fixed_price';
9341
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7708
9342
 
7709
9343
  /**
7710
9344
  * The price id this price replaces. This price will take the place of the replaced
@@ -7777,13 +9411,16 @@ export namespace Price {
7777
9411
  */
7778
9412
  minimum_amount: string | null;
7779
9413
 
9414
+ /**
9415
+ * The pricing model type
9416
+ */
7780
9417
  model_type: 'threshold_total_amount';
7781
9418
 
7782
9419
  name: string;
7783
9420
 
7784
9421
  plan_phase_order: number | null;
7785
9422
 
7786
- price_type: 'usage_price' | 'fixed_price';
9423
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7787
9424
 
7788
9425
  /**
7789
9426
  * The price id this price replaces. This price will take the place of the replaced
@@ -7791,11 +9428,49 @@ export namespace Price {
7791
9428
  */
7792
9429
  replaces_price_id: string | null;
7793
9430
 
7794
- threshold_total_amount_config: { [key: string]: unknown };
9431
+ /**
9432
+ * Configuration for threshold_total_amount pricing
9433
+ */
9434
+ threshold_total_amount_config: ThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
7795
9435
 
7796
9436
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7797
9437
  }
7798
9438
 
9439
+ export namespace ThresholdTotalAmountPrice {
9440
+ /**
9441
+ * Configuration for threshold_total_amount pricing
9442
+ */
9443
+ export interface ThresholdTotalAmountConfig {
9444
+ /**
9445
+ * When the quantity consumed passes a provided threshold, the configured total
9446
+ * will be charged
9447
+ */
9448
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
9449
+
9450
+ /**
9451
+ * If true, the unit price will be prorated to the billing period
9452
+ */
9453
+ prorate?: boolean | null;
9454
+ }
9455
+
9456
+ export namespace ThresholdTotalAmountConfig {
9457
+ /**
9458
+ * Configuration for a single threshold
9459
+ */
9460
+ export interface ConsumptionTable {
9461
+ /**
9462
+ * Quantity threshold
9463
+ */
9464
+ threshold: string;
9465
+
9466
+ /**
9467
+ * Total amount for this threshold
9468
+ */
9469
+ total_amount: string;
9470
+ }
9471
+ }
9472
+ }
9473
+
7799
9474
  export interface TieredPackagePrice {
7800
9475
  id: string;
7801
9476
 
@@ -7858,13 +9533,16 @@ export namespace Price {
7858
9533
  */
7859
9534
  minimum_amount: string | null;
7860
9535
 
9536
+ /**
9537
+ * The pricing model type
9538
+ */
7861
9539
  model_type: 'tiered_package';
7862
9540
 
7863
9541
  name: string;
7864
9542
 
7865
9543
  plan_phase_order: number | null;
7866
9544
 
7867
- price_type: 'usage_price' | 'fixed_price';
9545
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7868
9546
 
7869
9547
  /**
7870
9548
  * The price id this price replaces. This price will take the place of the replaced
@@ -7872,12 +9550,52 @@ export namespace Price {
7872
9550
  */
7873
9551
  replaces_price_id: string | null;
7874
9552
 
7875
- tiered_package_config: { [key: string]: unknown };
9553
+ /**
9554
+ * Configuration for tiered_package pricing
9555
+ */
9556
+ tiered_package_config: TieredPackagePrice.TieredPackageConfig;
7876
9557
 
7877
9558
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7878
9559
  }
7879
9560
 
7880
- export interface GroupedTieredPrice {
9561
+ export namespace TieredPackagePrice {
9562
+ /**
9563
+ * Configuration for tiered_package pricing
9564
+ */
9565
+ export interface TieredPackageConfig {
9566
+ /**
9567
+ * Package size
9568
+ */
9569
+ package_size: string;
9570
+
9571
+ /**
9572
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9573
+ * are defined using exclusive lower bounds. The tier bounds are defined based on
9574
+ * the total quantity rather than the number of packages, so they must be multiples
9575
+ * of the package size.
9576
+ */
9577
+ tiers: Array<TieredPackageConfig.Tier>;
9578
+ }
9579
+
9580
+ export namespace TieredPackageConfig {
9581
+ /**
9582
+ * Configuration for a single tier with business logic
9583
+ */
9584
+ export interface Tier {
9585
+ /**
9586
+ * Price per package
9587
+ */
9588
+ per_unit: string;
9589
+
9590
+ /**
9591
+ * Tier lower bound
9592
+ */
9593
+ tier_lower_bound: string;
9594
+ }
9595
+ }
9596
+ }
9597
+
9598
+ export interface TieredWithMinimumPrice {
7881
9599
  id: string;
7882
9600
 
7883
9601
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7907,8 +9625,6 @@ export namespace Price {
7907
9625
 
7908
9626
  fixed_price_quantity: number | null;
7909
9627
 
7910
- grouped_tiered_config: { [key: string]: unknown };
7911
-
7912
9628
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7913
9629
 
7914
9630
  item: Shared.ItemSlim;
@@ -7941,13 +9657,16 @@ export namespace Price {
7941
9657
  */
7942
9658
  minimum_amount: string | null;
7943
9659
 
7944
- model_type: 'grouped_tiered';
9660
+ /**
9661
+ * The pricing model type
9662
+ */
9663
+ model_type: 'tiered_with_minimum';
7945
9664
 
7946
9665
  name: string;
7947
9666
 
7948
9667
  plan_phase_order: number | null;
7949
9668
 
7950
- price_type: 'usage_price' | 'fixed_price';
9669
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7951
9670
 
7952
9671
  /**
7953
9672
  * The price id this price replaces. This price will take the place of the replaced
@@ -7955,13 +9674,63 @@ export namespace Price {
7955
9674
  */
7956
9675
  replaces_price_id: string | null;
7957
9676
 
9677
+ /**
9678
+ * Configuration for tiered_with_minimum pricing
9679
+ */
9680
+ tiered_with_minimum_config: TieredWithMinimumPrice.TieredWithMinimumConfig;
9681
+
7958
9682
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7959
9683
  }
7960
9684
 
7961
- export interface TieredWithMinimumPrice {
7962
- id: string;
9685
+ export namespace TieredWithMinimumPrice {
9686
+ /**
9687
+ * Configuration for tiered_with_minimum pricing
9688
+ */
9689
+ export interface TieredWithMinimumConfig {
9690
+ /**
9691
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
9692
+ * defined using exclusive lower bounds.
9693
+ */
9694
+ tiers: Array<TieredWithMinimumConfig.Tier>;
7963
9695
 
7964
- billable_metric: Shared.BillableMetricTiny | null;
9696
+ /**
9697
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
9698
+ */
9699
+ hide_zero_amount_tiers?: boolean;
9700
+
9701
+ /**
9702
+ * If true, the unit price will be prorated to the billing period
9703
+ */
9704
+ prorate?: boolean;
9705
+ }
9706
+
9707
+ export namespace TieredWithMinimumConfig {
9708
+ /**
9709
+ * Configuration for a single tier
9710
+ */
9711
+ export interface Tier {
9712
+ /**
9713
+ * Minimum amount
9714
+ */
9715
+ minimum_amount: string;
9716
+
9717
+ /**
9718
+ * Tier lower bound
9719
+ */
9720
+ tier_lower_bound: string;
9721
+
9722
+ /**
9723
+ * Per unit amount
9724
+ */
9725
+ unit_amount: string;
9726
+ }
9727
+ }
9728
+ }
9729
+
9730
+ export interface GroupedTieredPrice {
9731
+ id: string;
9732
+
9733
+ billable_metric: Shared.BillableMetricTiny | null;
7965
9734
 
7966
9735
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7967
9736
 
@@ -7988,6 +9757,11 @@ export namespace Price {
7988
9757
 
7989
9758
  fixed_price_quantity: number | null;
7990
9759
 
9760
+ /**
9761
+ * Configuration for grouped_tiered pricing
9762
+ */
9763
+ grouped_tiered_config: GroupedTieredPrice.GroupedTieredConfig;
9764
+
7991
9765
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7992
9766
 
7993
9767
  item: Shared.ItemSlim;
@@ -8020,13 +9794,16 @@ export namespace Price {
8020
9794
  */
8021
9795
  minimum_amount: string | null;
8022
9796
 
8023
- model_type: 'tiered_with_minimum';
9797
+ /**
9798
+ * The pricing model type
9799
+ */
9800
+ model_type: 'grouped_tiered';
8024
9801
 
8025
9802
  name: string;
8026
9803
 
8027
9804
  plan_phase_order: number | null;
8028
9805
 
8029
- price_type: 'usage_price' | 'fixed_price';
9806
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8030
9807
 
8031
9808
  /**
8032
9809
  * The price id this price replaces. This price will take the place of the replaced
@@ -8034,11 +9811,44 @@ export namespace Price {
8034
9811
  */
8035
9812
  replaces_price_id: string | null;
8036
9813
 
8037
- tiered_with_minimum_config: { [key: string]: unknown };
8038
-
8039
9814
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8040
9815
  }
8041
9816
 
9817
+ export namespace GroupedTieredPrice {
9818
+ /**
9819
+ * Configuration for grouped_tiered pricing
9820
+ */
9821
+ export interface GroupedTieredConfig {
9822
+ /**
9823
+ * The billable metric property used to group before tiering
9824
+ */
9825
+ grouping_key: string;
9826
+
9827
+ /**
9828
+ * Apply tiered pricing to each segment generated after grouping with the provided
9829
+ * key
9830
+ */
9831
+ tiers: Array<GroupedTieredConfig.Tier>;
9832
+ }
9833
+
9834
+ export namespace GroupedTieredConfig {
9835
+ /**
9836
+ * Configuration for a single tier
9837
+ */
9838
+ export interface Tier {
9839
+ /**
9840
+ * Tier lower bound
9841
+ */
9842
+ tier_lower_bound: string;
9843
+
9844
+ /**
9845
+ * Per unit amount
9846
+ */
9847
+ unit_amount: string;
9848
+ }
9849
+ }
9850
+ }
9851
+
8042
9852
  export interface TieredPackageWithMinimumPrice {
8043
9853
  id: string;
8044
9854
 
@@ -8101,13 +9911,16 @@ export namespace Price {
8101
9911
  */
8102
9912
  minimum_amount: string | null;
8103
9913
 
9914
+ /**
9915
+ * The pricing model type
9916
+ */
8104
9917
  model_type: 'tiered_package_with_minimum';
8105
9918
 
8106
9919
  name: string;
8107
9920
 
8108
9921
  plan_phase_order: number | null;
8109
9922
 
8110
- price_type: 'usage_price' | 'fixed_price';
9923
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8111
9924
 
8112
9925
  /**
8113
9926
  * The price id this price replaces. This price will take the place of the replaced
@@ -8115,11 +9928,54 @@ export namespace Price {
8115
9928
  */
8116
9929
  replaces_price_id: string | null;
8117
9930
 
8118
- tiered_package_with_minimum_config: { [key: string]: unknown };
9931
+ /**
9932
+ * Configuration for tiered_package_with_minimum pricing
9933
+ */
9934
+ tiered_package_with_minimum_config: TieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
8119
9935
 
8120
9936
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8121
9937
  }
8122
9938
 
9939
+ export namespace TieredPackageWithMinimumPrice {
9940
+ /**
9941
+ * Configuration for tiered_package_with_minimum pricing
9942
+ */
9943
+ export interface TieredPackageWithMinimumConfig {
9944
+ /**
9945
+ * Package size
9946
+ */
9947
+ package_size: number;
9948
+
9949
+ /**
9950
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9951
+ * are defined using exclusive lower bounds.
9952
+ */
9953
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
9954
+ }
9955
+
9956
+ export namespace TieredPackageWithMinimumConfig {
9957
+ /**
9958
+ * Configuration for a single tier
9959
+ */
9960
+ export interface Tier {
9961
+ /**
9962
+ * Minimum amount
9963
+ */
9964
+ minimum_amount: string;
9965
+
9966
+ /**
9967
+ * Price per package
9968
+ */
9969
+ per_unit: string;
9970
+
9971
+ /**
9972
+ * Tier lower bound
9973
+ */
9974
+ tier_lower_bound: string;
9975
+ }
9976
+ }
9977
+ }
9978
+
8123
9979
  export interface PackageWithAllocationPrice {
8124
9980
  id: string;
8125
9981
 
@@ -8182,15 +10038,21 @@ export namespace Price {
8182
10038
  */
8183
10039
  minimum_amount: string | null;
8184
10040
 
10041
+ /**
10042
+ * The pricing model type
10043
+ */
8185
10044
  model_type: 'package_with_allocation';
8186
10045
 
8187
10046
  name: string;
8188
10047
 
8189
- package_with_allocation_config: { [key: string]: unknown };
10048
+ /**
10049
+ * Configuration for package_with_allocation pricing
10050
+ */
10051
+ package_with_allocation_config: PackageWithAllocationPrice.PackageWithAllocationConfig;
8190
10052
 
8191
10053
  plan_phase_order: number | null;
8192
10054
 
8193
- price_type: 'usage_price' | 'fixed_price';
10055
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8194
10056
 
8195
10057
  /**
8196
10058
  * The price id this price replaces. This price will take the place of the replaced
@@ -8201,6 +10063,28 @@ export namespace Price {
8201
10063
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8202
10064
  }
8203
10065
 
10066
+ export namespace PackageWithAllocationPrice {
10067
+ /**
10068
+ * Configuration for package_with_allocation pricing
10069
+ */
10070
+ export interface PackageWithAllocationConfig {
10071
+ /**
10072
+ * Usage allocation
10073
+ */
10074
+ allocation: string;
10075
+
10076
+ /**
10077
+ * Price per package
10078
+ */
10079
+ package_amount: string;
10080
+
10081
+ /**
10082
+ * Package size
10083
+ */
10084
+ package_size: string;
10085
+ }
10086
+ }
10087
+
8204
10088
  export interface UnitWithPercentPrice {
8205
10089
  id: string;
8206
10090
 
@@ -8263,13 +10147,16 @@ export namespace Price {
8263
10147
  */
8264
10148
  minimum_amount: string | null;
8265
10149
 
10150
+ /**
10151
+ * The pricing model type
10152
+ */
8266
10153
  model_type: 'unit_with_percent';
8267
10154
 
8268
10155
  name: string;
8269
10156
 
8270
10157
  plan_phase_order: number | null;
8271
10158
 
8272
- price_type: 'usage_price' | 'fixed_price';
10159
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8273
10160
 
8274
10161
  /**
8275
10162
  * The price id this price replaces. This price will take the place of the replaced
@@ -8277,11 +10164,31 @@ export namespace Price {
8277
10164
  */
8278
10165
  replaces_price_id: string | null;
8279
10166
 
8280
- unit_with_percent_config: { [key: string]: unknown };
10167
+ /**
10168
+ * Configuration for unit_with_percent pricing
10169
+ */
10170
+ unit_with_percent_config: UnitWithPercentPrice.UnitWithPercentConfig;
8281
10171
 
8282
10172
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8283
10173
  }
8284
10174
 
10175
+ export namespace UnitWithPercentPrice {
10176
+ /**
10177
+ * Configuration for unit_with_percent pricing
10178
+ */
10179
+ export interface UnitWithPercentConfig {
10180
+ /**
10181
+ * What percent, out of 100, of the calculated total to charge
10182
+ */
10183
+ percent: string;
10184
+
10185
+ /**
10186
+ * Rate per unit of usage
10187
+ */
10188
+ unit_amount: string;
10189
+ }
10190
+ }
10191
+
8285
10192
  export interface MatrixWithAllocationPrice {
8286
10193
  id: string;
8287
10194
 
@@ -8316,6 +10223,9 @@ export namespace Price {
8316
10223
 
8317
10224
  item: Shared.ItemSlim;
8318
10225
 
10226
+ /**
10227
+ * Configuration for matrix_with_allocation pricing
10228
+ */
8319
10229
  matrix_with_allocation_config: Shared.MatrixWithAllocationConfig;
8320
10230
 
8321
10231
  /**
@@ -8346,13 +10256,16 @@ export namespace Price {
8346
10256
  */
8347
10257
  minimum_amount: string | null;
8348
10258
 
10259
+ /**
10260
+ * The pricing model type
10261
+ */
8349
10262
  model_type: 'matrix_with_allocation';
8350
10263
 
8351
10264
  name: string;
8352
10265
 
8353
10266
  plan_phase_order: number | null;
8354
10267
 
8355
- price_type: 'usage_price' | 'fixed_price';
10268
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8356
10269
 
8357
10270
  /**
8358
10271
  * The price id this price replaces. This price will take the place of the replaced
@@ -8425,13 +10338,16 @@ export namespace Price {
8425
10338
  */
8426
10339
  minimum_amount: string | null;
8427
10340
 
10341
+ /**
10342
+ * The pricing model type
10343
+ */
8428
10344
  model_type: 'tiered_with_proration';
8429
10345
 
8430
10346
  name: string;
8431
10347
 
8432
10348
  plan_phase_order: number | null;
8433
10349
 
8434
- price_type: 'usage_price' | 'fixed_price';
10350
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8435
10351
 
8436
10352
  /**
8437
10353
  * The price id this price replaces. This price will take the place of the replaced
@@ -8439,11 +10355,44 @@ export namespace Price {
8439
10355
  */
8440
10356
  replaces_price_id: string | null;
8441
10357
 
8442
- tiered_with_proration_config: { [key: string]: unknown };
10358
+ /**
10359
+ * Configuration for tiered_with_proration pricing
10360
+ */
10361
+ tiered_with_proration_config: TieredWithProrationPrice.TieredWithProrationConfig;
8443
10362
 
8444
10363
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8445
10364
  }
8446
10365
 
10366
+ export namespace TieredWithProrationPrice {
10367
+ /**
10368
+ * Configuration for tiered_with_proration pricing
10369
+ */
10370
+ export interface TieredWithProrationConfig {
10371
+ /**
10372
+ * Tiers for rating based on total usage quantities into the specified tier with
10373
+ * proration
10374
+ */
10375
+ tiers: Array<TieredWithProrationConfig.Tier>;
10376
+ }
10377
+
10378
+ export namespace TieredWithProrationConfig {
10379
+ /**
10380
+ * Configuration for a single tiered with proration tier
10381
+ */
10382
+ export interface Tier {
10383
+ /**
10384
+ * Inclusive tier starting value
10385
+ */
10386
+ tier_lower_bound: string;
10387
+
10388
+ /**
10389
+ * Amount per unit
10390
+ */
10391
+ unit_amount: string;
10392
+ }
10393
+ }
10394
+ }
10395
+
8447
10396
  export interface UnitWithProrationPrice {
8448
10397
  id: string;
8449
10398
 
@@ -8506,13 +10455,16 @@ export namespace Price {
8506
10455
  */
8507
10456
  minimum_amount: string | null;
8508
10457
 
10458
+ /**
10459
+ * The pricing model type
10460
+ */
8509
10461
  model_type: 'unit_with_proration';
8510
10462
 
8511
10463
  name: string;
8512
10464
 
8513
10465
  plan_phase_order: number | null;
8514
10466
 
8515
- price_type: 'usage_price' | 'fixed_price';
10467
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8516
10468
 
8517
10469
  /**
8518
10470
  * The price id this price replaces. This price will take the place of the replaced
@@ -8520,11 +10472,26 @@ export namespace Price {
8520
10472
  */
8521
10473
  replaces_price_id: string | null;
8522
10474
 
8523
- unit_with_proration_config: { [key: string]: unknown };
10475
+ /**
10476
+ * Configuration for unit_with_proration pricing
10477
+ */
10478
+ unit_with_proration_config: UnitWithProrationPrice.UnitWithProrationConfig;
8524
10479
 
8525
10480
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8526
10481
  }
8527
10482
 
10483
+ export namespace UnitWithProrationPrice {
10484
+ /**
10485
+ * Configuration for unit_with_proration pricing
10486
+ */
10487
+ export interface UnitWithProrationConfig {
10488
+ /**
10489
+ * Rate per unit of usage
10490
+ */
10491
+ unit_amount: string;
10492
+ }
10493
+ }
10494
+
8528
10495
  export interface GroupedAllocationPrice {
8529
10496
  id: string;
8530
10497
 
@@ -8555,7 +10522,10 @@ export namespace Price {
8555
10522
 
8556
10523
  fixed_price_quantity: number | null;
8557
10524
 
8558
- grouped_allocation_config: { [key: string]: unknown };
10525
+ /**
10526
+ * Configuration for grouped_allocation pricing
10527
+ */
10528
+ grouped_allocation_config: GroupedAllocationPrice.GroupedAllocationConfig;
8559
10529
 
8560
10530
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8561
10531
 
@@ -8589,13 +10559,16 @@ export namespace Price {
8589
10559
  */
8590
10560
  minimum_amount: string | null;
8591
10561
 
10562
+ /**
10563
+ * The pricing model type
10564
+ */
8592
10565
  model_type: 'grouped_allocation';
8593
10566
 
8594
10567
  name: string;
8595
10568
 
8596
10569
  plan_phase_order: number | null;
8597
10570
 
8598
- price_type: 'usage_price' | 'fixed_price';
10571
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8599
10572
 
8600
10573
  /**
8601
10574
  * The price id this price replaces. This price will take the place of the replaced
@@ -8606,13 +10579,40 @@ export namespace Price {
8606
10579
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8607
10580
  }
8608
10581
 
8609
- export interface GroupedWithProratedMinimumPrice {
10582
+ export namespace GroupedAllocationPrice {
10583
+ /**
10584
+ * Configuration for grouped_allocation pricing
10585
+ */
10586
+ export interface GroupedAllocationConfig {
10587
+ /**
10588
+ * Usage allocation per group
10589
+ */
10590
+ allocation: string;
10591
+
10592
+ /**
10593
+ * How to determine the groups that should each be allocated some quantity
10594
+ */
10595
+ grouping_key: string;
10596
+
10597
+ /**
10598
+ * Unit rate for post-allocation
10599
+ */
10600
+ overage_unit_rate: string;
10601
+ }
10602
+ }
10603
+
10604
+ export interface BulkWithProrationPrice {
8610
10605
  id: string;
8611
10606
 
8612
10607
  billable_metric: Shared.BillableMetricTiny | null;
8613
10608
 
8614
10609
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8615
10610
 
10611
+ /**
10612
+ * Configuration for bulk_with_proration pricing
10613
+ */
10614
+ bulk_with_proration_config: BulkWithProrationPrice.BulkWithProrationConfig;
10615
+
8616
10616
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
8617
10617
 
8618
10618
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -8636,8 +10636,6 @@ export namespace Price {
8636
10636
 
8637
10637
  fixed_price_quantity: number | null;
8638
10638
 
8639
- grouped_with_prorated_minimum_config: { [key: string]: unknown };
8640
-
8641
10639
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8642
10640
 
8643
10641
  item: Shared.ItemSlim;
@@ -8670,13 +10668,16 @@ export namespace Price {
8670
10668
  */
8671
10669
  minimum_amount: string | null;
8672
10670
 
8673
- model_type: 'grouped_with_prorated_minimum';
10671
+ /**
10672
+ * The pricing model type
10673
+ */
10674
+ model_type: 'bulk_with_proration';
8674
10675
 
8675
10676
  name: string;
8676
10677
 
8677
10678
  plan_phase_order: number | null;
8678
10679
 
8679
- price_type: 'usage_price' | 'fixed_price';
10680
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8680
10681
 
8681
10682
  /**
8682
10683
  * The price id this price replaces. This price will take the place of the replaced
@@ -8687,7 +10688,36 @@ export namespace Price {
8687
10688
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8688
10689
  }
8689
10690
 
8690
- export interface GroupedWithMeteredMinimumPrice {
10691
+ export namespace BulkWithProrationPrice {
10692
+ /**
10693
+ * Configuration for bulk_with_proration pricing
10694
+ */
10695
+ export interface BulkWithProrationConfig {
10696
+ /**
10697
+ * Bulk tiers for rating based on total usage volume
10698
+ */
10699
+ tiers: Array<BulkWithProrationConfig.Tier>;
10700
+ }
10701
+
10702
+ export namespace BulkWithProrationConfig {
10703
+ /**
10704
+ * Configuration for a single bulk pricing tier with proration
10705
+ */
10706
+ export interface Tier {
10707
+ /**
10708
+ * Cost per unit
10709
+ */
10710
+ unit_amount: string;
10711
+
10712
+ /**
10713
+ * The lower bound for this tier
10714
+ */
10715
+ tier_lower_bound?: string | null;
10716
+ }
10717
+ }
10718
+ }
10719
+
10720
+ export interface GroupedWithProratedMinimumPrice {
8691
10721
  id: string;
8692
10722
 
8693
10723
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8717,7 +10747,10 @@ export namespace Price {
8717
10747
 
8718
10748
  fixed_price_quantity: number | null;
8719
10749
 
8720
- grouped_with_metered_minimum_config: { [key: string]: unknown };
10750
+ /**
10751
+ * Configuration for grouped_with_prorated_minimum pricing
10752
+ */
10753
+ grouped_with_prorated_minimum_config: GroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
8721
10754
 
8722
10755
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8723
10756
 
@@ -8751,13 +10784,16 @@ export namespace Price {
8751
10784
  */
8752
10785
  minimum_amount: string | null;
8753
10786
 
8754
- model_type: 'grouped_with_metered_minimum';
10787
+ /**
10788
+ * The pricing model type
10789
+ */
10790
+ model_type: 'grouped_with_prorated_minimum';
8755
10791
 
8756
10792
  name: string;
8757
10793
 
8758
10794
  plan_phase_order: number | null;
8759
10795
 
8760
- price_type: 'usage_price' | 'fixed_price';
10796
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8761
10797
 
8762
10798
  /**
8763
10799
  * The price id this price replaces. This price will take the place of the replaced
@@ -8768,7 +10804,29 @@ export namespace Price {
8768
10804
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8769
10805
  }
8770
10806
 
8771
- export interface MatrixWithDisplayNamePrice {
10807
+ export namespace GroupedWithProratedMinimumPrice {
10808
+ /**
10809
+ * Configuration for grouped_with_prorated_minimum pricing
10810
+ */
10811
+ export interface GroupedWithProratedMinimumConfig {
10812
+ /**
10813
+ * How to determine the groups that should each have a minimum
10814
+ */
10815
+ grouping_key: string;
10816
+
10817
+ /**
10818
+ * The minimum amount to charge per group
10819
+ */
10820
+ minimum: string;
10821
+
10822
+ /**
10823
+ * The amount to charge per unit
10824
+ */
10825
+ unit_rate: string;
10826
+ }
10827
+ }
10828
+
10829
+ export interface GroupedWithMeteredMinimumPrice {
8772
10830
  id: string;
8773
10831
 
8774
10832
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8798,12 +10856,15 @@ export namespace Price {
8798
10856
 
8799
10857
  fixed_price_quantity: number | null;
8800
10858
 
10859
+ /**
10860
+ * Configuration for grouped_with_metered_minimum pricing
10861
+ */
10862
+ grouped_with_metered_minimum_config: GroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
10863
+
8801
10864
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8802
10865
 
8803
10866
  item: Shared.ItemSlim;
8804
10867
 
8805
- matrix_with_display_name_config: { [key: string]: unknown };
8806
-
8807
10868
  /**
8808
10869
  * @deprecated
8809
10870
  */
@@ -8832,13 +10893,16 @@ export namespace Price {
8832
10893
  */
8833
10894
  minimum_amount: string | null;
8834
10895
 
8835
- model_type: 'matrix_with_display_name';
10896
+ /**
10897
+ * The pricing model type
10898
+ */
10899
+ model_type: 'grouped_with_metered_minimum';
8836
10900
 
8837
10901
  name: string;
8838
10902
 
8839
10903
  plan_phase_order: number | null;
8840
10904
 
8841
- price_type: 'usage_price' | 'fixed_price';
10905
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8842
10906
 
8843
10907
  /**
8844
10908
  * The price id this price replaces. This price will take the place of the replaced
@@ -8849,15 +10913,84 @@ export namespace Price {
8849
10913
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8850
10914
  }
8851
10915
 
8852
- export interface BulkWithProrationPrice {
10916
+ export namespace GroupedWithMeteredMinimumPrice {
10917
+ /**
10918
+ * Configuration for grouped_with_metered_minimum pricing
10919
+ */
10920
+ export interface GroupedWithMeteredMinimumConfig {
10921
+ /**
10922
+ * Used to partition the usage into groups. The minimum amount is applied to each
10923
+ * group.
10924
+ */
10925
+ grouping_key: string;
10926
+
10927
+ /**
10928
+ * The minimum amount to charge per group per unit
10929
+ */
10930
+ minimum_unit_amount: string;
10931
+
10932
+ /**
10933
+ * Used to determine the unit rate
10934
+ */
10935
+ pricing_key: string;
10936
+
10937
+ /**
10938
+ * Scale the unit rates by the scaling factor.
10939
+ */
10940
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
10941
+
10942
+ /**
10943
+ * Used to determine the unit rate scaling factor
10944
+ */
10945
+ scaling_key: string;
10946
+
10947
+ /**
10948
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
10949
+ * unmatched usage.
10950
+ */
10951
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
10952
+ }
10953
+
10954
+ export namespace GroupedWithMeteredMinimumConfig {
10955
+ /**
10956
+ * Configuration for a scaling factor
10957
+ */
10958
+ export interface ScalingFactor {
10959
+ /**
10960
+ * Scaling factor
10961
+ */
10962
+ scaling_factor: string;
10963
+
10964
+ /**
10965
+ * Scaling value
10966
+ */
10967
+ scaling_value: string;
10968
+ }
10969
+
10970
+ /**
10971
+ * Configuration for a unit amount
10972
+ */
10973
+ export interface UnitAmount {
10974
+ /**
10975
+ * Pricing value
10976
+ */
10977
+ pricing_value: string;
10978
+
10979
+ /**
10980
+ * Per unit amount
10981
+ */
10982
+ unit_amount: string;
10983
+ }
10984
+ }
10985
+ }
10986
+
10987
+ export interface GroupedWithMinMaxThresholdsPrice {
8853
10988
  id: string;
8854
10989
 
8855
10990
  billable_metric: Shared.BillableMetricTiny | null;
8856
10991
 
8857
10992
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8858
10993
 
8859
- bulk_with_proration_config: { [key: string]: unknown };
8860
-
8861
10994
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
8862
10995
 
8863
10996
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -8881,6 +11014,11 @@ export namespace Price {
8881
11014
 
8882
11015
  fixed_price_quantity: number | null;
8883
11016
 
11017
+ /**
11018
+ * Configuration for grouped_with_min_max_thresholds pricing
11019
+ */
11020
+ grouped_with_min_max_thresholds_config: GroupedWithMinMaxThresholdsPrice.GroupedWithMinMaxThresholdsConfig;
11021
+
8884
11022
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8885
11023
 
8886
11024
  item: Shared.ItemSlim;
@@ -8913,13 +11051,16 @@ export namespace Price {
8913
11051
  */
8914
11052
  minimum_amount: string | null;
8915
11053
 
8916
- model_type: 'bulk_with_proration';
11054
+ /**
11055
+ * The pricing model type
11056
+ */
11057
+ model_type: 'grouped_with_min_max_thresholds';
8917
11058
 
8918
11059
  name: string;
8919
11060
 
8920
11061
  plan_phase_order: number | null;
8921
11062
 
8922
- price_type: 'usage_price' | 'fixed_price';
11063
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8923
11064
 
8924
11065
  /**
8925
11066
  * The price id this price replaces. This price will take the place of the replaced
@@ -8930,7 +11071,34 @@ export namespace Price {
8930
11071
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8931
11072
  }
8932
11073
 
8933
- export interface GroupedTieredPackagePrice {
11074
+ export namespace GroupedWithMinMaxThresholdsPrice {
11075
+ /**
11076
+ * Configuration for grouped_with_min_max_thresholds pricing
11077
+ */
11078
+ export interface GroupedWithMinMaxThresholdsConfig {
11079
+ /**
11080
+ * The event property used to group before applying thresholds
11081
+ */
11082
+ grouping_key: string;
11083
+
11084
+ /**
11085
+ * The maximum amount to charge each group
11086
+ */
11087
+ maximum_charge: string;
11088
+
11089
+ /**
11090
+ * The minimum amount to charge each group, regardless of usage
11091
+ */
11092
+ minimum_charge: string;
11093
+
11094
+ /**
11095
+ * The base price charged per group
11096
+ */
11097
+ per_unit_rate: string;
11098
+ }
11099
+ }
11100
+
11101
+ export interface MatrixWithDisplayNamePrice {
8934
11102
  id: string;
8935
11103
 
8936
11104
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8960,12 +11128,15 @@ export namespace Price {
8960
11128
 
8961
11129
  fixed_price_quantity: number | null;
8962
11130
 
8963
- grouped_tiered_package_config: { [key: string]: unknown };
8964
-
8965
11131
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8966
11132
 
8967
11133
  item: Shared.ItemSlim;
8968
11134
 
11135
+ /**
11136
+ * Configuration for matrix_with_display_name pricing
11137
+ */
11138
+ matrix_with_display_name_config: MatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
11139
+
8969
11140
  /**
8970
11141
  * @deprecated
8971
11142
  */
@@ -8994,13 +11165,16 @@ export namespace Price {
8994
11165
  */
8995
11166
  minimum_amount: string | null;
8996
11167
 
8997
- model_type: 'grouped_tiered_package';
11168
+ /**
11169
+ * The pricing model type
11170
+ */
11171
+ model_type: 'matrix_with_display_name';
8998
11172
 
8999
11173
  name: string;
9000
11174
 
9001
11175
  plan_phase_order: number | null;
9002
11176
 
9003
- price_type: 'usage_price' | 'fixed_price';
11177
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9004
11178
 
9005
11179
  /**
9006
11180
  * The price id this price replaces. This price will take the place of the replaced
@@ -9011,7 +11185,46 @@ export namespace Price {
9011
11185
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9012
11186
  }
9013
11187
 
9014
- export interface MaxGroupTieredPackagePrice {
11188
+ export namespace MatrixWithDisplayNamePrice {
11189
+ /**
11190
+ * Configuration for matrix_with_display_name pricing
11191
+ */
11192
+ export interface MatrixWithDisplayNameConfig {
11193
+ /**
11194
+ * Used to determine the unit rate
11195
+ */
11196
+ dimension: string;
11197
+
11198
+ /**
11199
+ * Apply per unit pricing to each dimension value
11200
+ */
11201
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
11202
+ }
11203
+
11204
+ export namespace MatrixWithDisplayNameConfig {
11205
+ /**
11206
+ * Configuration for a unit amount item
11207
+ */
11208
+ export interface UnitAmount {
11209
+ /**
11210
+ * The dimension value
11211
+ */
11212
+ dimension_value: string;
11213
+
11214
+ /**
11215
+ * Display name for this dimension value
11216
+ */
11217
+ display_name: string;
11218
+
11219
+ /**
11220
+ * Per unit amount
11221
+ */
11222
+ unit_amount: string;
11223
+ }
11224
+ }
11225
+ }
11226
+
11227
+ export interface GroupedTieredPackagePrice {
9015
11228
  id: string;
9016
11229
 
9017
11230
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9041,12 +11254,15 @@ export namespace Price {
9041
11254
 
9042
11255
  fixed_price_quantity: number | null;
9043
11256
 
11257
+ /**
11258
+ * Configuration for grouped_tiered_package pricing
11259
+ */
11260
+ grouped_tiered_package_config: GroupedTieredPackagePrice.GroupedTieredPackageConfig;
11261
+
9044
11262
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
9045
11263
 
9046
11264
  item: Shared.ItemSlim;
9047
11265
 
9048
- max_group_tiered_package_config: { [key: string]: unknown };
9049
-
9050
11266
  /**
9051
11267
  * @deprecated
9052
11268
  */
@@ -9075,13 +11291,16 @@ export namespace Price {
9075
11291
  */
9076
11292
  minimum_amount: string | null;
9077
11293
 
9078
- model_type: 'max_group_tiered_package';
11294
+ /**
11295
+ * The pricing model type
11296
+ */
11297
+ model_type: 'grouped_tiered_package';
9079
11298
 
9080
11299
  name: string;
9081
11300
 
9082
11301
  plan_phase_order: number | null;
9083
11302
 
9084
- price_type: 'usage_price' | 'fixed_price';
11303
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9085
11304
 
9086
11305
  /**
9087
11306
  * The price id this price replaces. This price will take the place of the replaced
@@ -9092,7 +11311,47 @@ export namespace Price {
9092
11311
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9093
11312
  }
9094
11313
 
9095
- export interface ScalableMatrixWithUnitPricingPrice {
11314
+ export namespace GroupedTieredPackagePrice {
11315
+ /**
11316
+ * Configuration for grouped_tiered_package pricing
11317
+ */
11318
+ export interface GroupedTieredPackageConfig {
11319
+ /**
11320
+ * The event property used to group before tiering
11321
+ */
11322
+ grouping_key: string;
11323
+
11324
+ /**
11325
+ * Package size
11326
+ */
11327
+ package_size: string;
11328
+
11329
+ /**
11330
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
11331
+ * are defined using exclusive lower bounds.
11332
+ */
11333
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
11334
+ }
11335
+
11336
+ export namespace GroupedTieredPackageConfig {
11337
+ /**
11338
+ * Configuration for a single tier
11339
+ */
11340
+ export interface Tier {
11341
+ /**
11342
+ * Price per package
11343
+ */
11344
+ per_unit: string;
11345
+
11346
+ /**
11347
+ * Tier lower bound
11348
+ */
11349
+ tier_lower_bound: string;
11350
+ }
11351
+ }
11352
+ }
11353
+
11354
+ export interface MaxGroupTieredPackagePrice {
9096
11355
  id: string;
9097
11356
 
9098
11357
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9126,6 +11385,11 @@ export namespace Price {
9126
11385
 
9127
11386
  item: Shared.ItemSlim;
9128
11387
 
11388
+ /**
11389
+ * Configuration for max_group_tiered_package pricing
11390
+ */
11391
+ max_group_tiered_package_config: MaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
11392
+
9129
11393
  /**
9130
11394
  * @deprecated
9131
11395
  */
@@ -9154,13 +11418,16 @@ export namespace Price {
9154
11418
  */
9155
11419
  minimum_amount: string | null;
9156
11420
 
9157
- model_type: 'scalable_matrix_with_unit_pricing';
11421
+ /**
11422
+ * The pricing model type
11423
+ */
11424
+ model_type: 'max_group_tiered_package';
9158
11425
 
9159
11426
  name: string;
9160
11427
 
9161
11428
  plan_phase_order: number | null;
9162
11429
 
9163
- price_type: 'usage_price' | 'fixed_price';
11430
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9164
11431
 
9165
11432
  /**
9166
11433
  * The price id this price replaces. This price will take the place of the replaced
@@ -9168,12 +11435,49 @@ export namespace Price {
9168
11435
  */
9169
11436
  replaces_price_id: string | null;
9170
11437
 
9171
- scalable_matrix_with_unit_pricing_config: { [key: string]: unknown };
9172
-
9173
11438
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9174
11439
  }
9175
11440
 
9176
- export interface ScalableMatrixWithTieredPricingPrice {
11441
+ export namespace MaxGroupTieredPackagePrice {
11442
+ /**
11443
+ * Configuration for max_group_tiered_package pricing
11444
+ */
11445
+ export interface MaxGroupTieredPackageConfig {
11446
+ /**
11447
+ * The event property used to group before tiering the group with the highest value
11448
+ */
11449
+ grouping_key: string;
11450
+
11451
+ /**
11452
+ * Package size
11453
+ */
11454
+ package_size: string;
11455
+
11456
+ /**
11457
+ * Apply tiered pricing to the largest group after grouping with the provided key.
11458
+ */
11459
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
11460
+ }
11461
+
11462
+ export namespace MaxGroupTieredPackageConfig {
11463
+ /**
11464
+ * Configuration for a single tier
11465
+ */
11466
+ export interface Tier {
11467
+ /**
11468
+ * Tier lower bound
11469
+ */
11470
+ tier_lower_bound: string;
11471
+
11472
+ /**
11473
+ * Per unit amount
11474
+ */
11475
+ unit_amount: string;
11476
+ }
11477
+ }
11478
+ }
11479
+
11480
+ export interface ScalableMatrixWithUnitPricingPrice {
9177
11481
  id: string;
9178
11482
 
9179
11483
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9235,13 +11539,16 @@ export namespace Price {
9235
11539
  */
9236
11540
  minimum_amount: string | null;
9237
11541
 
9238
- model_type: 'scalable_matrix_with_tiered_pricing';
11542
+ /**
11543
+ * The pricing model type
11544
+ */
11545
+ model_type: 'scalable_matrix_with_unit_pricing';
9239
11546
 
9240
11547
  name: string;
9241
11548
 
9242
11549
  plan_phase_order: number | null;
9243
11550
 
9244
- price_type: 'usage_price' | 'fixed_price';
11551
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9245
11552
 
9246
11553
  /**
9247
11554
  * The price id this price replaces. This price will take the place of the replaced
@@ -9249,12 +11556,69 @@ export namespace Price {
9249
11556
  */
9250
11557
  replaces_price_id: string | null;
9251
11558
 
9252
- scalable_matrix_with_tiered_pricing_config: { [key: string]: unknown };
11559
+ /**
11560
+ * Configuration for scalable_matrix_with_unit_pricing pricing
11561
+ */
11562
+ scalable_matrix_with_unit_pricing_config: ScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
9253
11563
 
9254
11564
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9255
11565
  }
9256
11566
 
9257
- export interface CumulativeGroupedBulkPrice {
11567
+ export namespace ScalableMatrixWithUnitPricingPrice {
11568
+ /**
11569
+ * Configuration for scalable_matrix_with_unit_pricing pricing
11570
+ */
11571
+ export interface ScalableMatrixWithUnitPricingConfig {
11572
+ /**
11573
+ * Used to determine the unit rate
11574
+ */
11575
+ first_dimension: string;
11576
+
11577
+ /**
11578
+ * Apply a scaling factor to each dimension
11579
+ */
11580
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
11581
+
11582
+ /**
11583
+ * The final unit price to rate against the output of the matrix
11584
+ */
11585
+ unit_price: string;
11586
+
11587
+ /**
11588
+ * If true, the unit price will be prorated to the billing period
11589
+ */
11590
+ prorate?: boolean | null;
11591
+
11592
+ /**
11593
+ * Used to determine the unit rate (optional)
11594
+ */
11595
+ second_dimension?: string | null;
11596
+ }
11597
+
11598
+ export namespace ScalableMatrixWithUnitPricingConfig {
11599
+ /**
11600
+ * Configuration for a single matrix scaling factor
11601
+ */
11602
+ export interface MatrixScalingFactor {
11603
+ /**
11604
+ * First dimension value
11605
+ */
11606
+ first_dimension_value: string;
11607
+
11608
+ /**
11609
+ * Scaling factor
11610
+ */
11611
+ scaling_factor: string;
11612
+
11613
+ /**
11614
+ * Second dimension value (optional)
11615
+ */
11616
+ second_dimension_value?: string | null;
11617
+ }
11618
+ }
11619
+ }
11620
+
11621
+ export interface ScalableMatrixWithTieredPricingPrice {
9258
11622
  id: string;
9259
11623
 
9260
11624
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9273,8 +11637,6 @@ export namespace Price {
9273
11637
 
9274
11638
  credit_allocation: Shared.Allocation | null;
9275
11639
 
9276
- cumulative_grouped_bulk_config: { [key: string]: unknown };
9277
-
9278
11640
  currency: string;
9279
11641
 
9280
11642
  /**
@@ -9318,13 +11680,16 @@ export namespace Price {
9318
11680
  */
9319
11681
  minimum_amount: string | null;
9320
11682
 
9321
- model_type: 'cumulative_grouped_bulk';
11683
+ /**
11684
+ * The pricing model type
11685
+ */
11686
+ model_type: 'scalable_matrix_with_tiered_pricing';
9322
11687
 
9323
11688
  name: string;
9324
11689
 
9325
11690
  plan_phase_order: number | null;
9326
11691
 
9327
- price_type: 'usage_price' | 'fixed_price';
11692
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9328
11693
 
9329
11694
  /**
9330
11695
  * The price id this price replaces. This price will take the place of the replaced
@@ -9332,10 +11697,79 @@ export namespace Price {
9332
11697
  */
9333
11698
  replaces_price_id: string | null;
9334
11699
 
11700
+ /**
11701
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
11702
+ */
11703
+ scalable_matrix_with_tiered_pricing_config: ScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
11704
+
9335
11705
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9336
11706
  }
9337
11707
 
9338
- export interface GroupedWithMinMaxThresholdsPrice {
11708
+ export namespace ScalableMatrixWithTieredPricingPrice {
11709
+ /**
11710
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
11711
+ */
11712
+ export interface ScalableMatrixWithTieredPricingConfig {
11713
+ /**
11714
+ * Used for the scalable matrix first dimension
11715
+ */
11716
+ first_dimension: string;
11717
+
11718
+ /**
11719
+ * Apply a scaling factor to each dimension
11720
+ */
11721
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
11722
+
11723
+ /**
11724
+ * Tier pricing structure
11725
+ */
11726
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
11727
+
11728
+ /**
11729
+ * Used for the scalable matrix second dimension (optional)
11730
+ */
11731
+ second_dimension?: string | null;
11732
+ }
11733
+
11734
+ export namespace ScalableMatrixWithTieredPricingConfig {
11735
+ /**
11736
+ * Configuration for a single matrix scaling factor
11737
+ */
11738
+ export interface MatrixScalingFactor {
11739
+ /**
11740
+ * First dimension value
11741
+ */
11742
+ first_dimension_value: string;
11743
+
11744
+ /**
11745
+ * Scaling factor
11746
+ */
11747
+ scaling_factor: string;
11748
+
11749
+ /**
11750
+ * Second dimension value (optional)
11751
+ */
11752
+ second_dimension_value?: string | null;
11753
+ }
11754
+
11755
+ /**
11756
+ * Configuration for a single tier entry with business logic
11757
+ */
11758
+ export interface Tier {
11759
+ /**
11760
+ * Tier lower bound
11761
+ */
11762
+ tier_lower_bound: string;
11763
+
11764
+ /**
11765
+ * Per unit amount
11766
+ */
11767
+ unit_amount: string;
11768
+ }
11769
+ }
11770
+ }
11771
+
11772
+ export interface CumulativeGroupedBulkPrice {
9339
11773
  id: string;
9340
11774
 
9341
11775
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9354,6 +11788,11 @@ export namespace Price {
9354
11788
 
9355
11789
  credit_allocation: Shared.Allocation | null;
9356
11790
 
11791
+ /**
11792
+ * Configuration for cumulative_grouped_bulk pricing
11793
+ */
11794
+ cumulative_grouped_bulk_config: CumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
11795
+
9357
11796
  currency: string;
9358
11797
 
9359
11798
  /**
@@ -9365,8 +11804,6 @@ export namespace Price {
9365
11804
 
9366
11805
  fixed_price_quantity: number | null;
9367
11806
 
9368
- grouped_with_min_max_thresholds_config: { [key: string]: unknown };
9369
-
9370
11807
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
9371
11808
 
9372
11809
  item: Shared.ItemSlim;
@@ -9399,13 +11836,16 @@ export namespace Price {
9399
11836
  */
9400
11837
  minimum_amount: string | null;
9401
11838
 
9402
- model_type: 'grouped_with_min_max_thresholds';
11839
+ /**
11840
+ * The pricing model type
11841
+ */
11842
+ model_type: 'cumulative_grouped_bulk';
9403
11843
 
9404
11844
  name: string;
9405
11845
 
9406
11846
  plan_phase_order: number | null;
9407
11847
 
9408
- price_type: 'usage_price' | 'fixed_price';
11848
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9409
11849
 
9410
11850
  /**
9411
11851
  * The price id this price replaces. This price will take the place of the replaced
@@ -9416,6 +11856,45 @@ export namespace Price {
9416
11856
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9417
11857
  }
9418
11858
 
11859
+ export namespace CumulativeGroupedBulkPrice {
11860
+ /**
11861
+ * Configuration for cumulative_grouped_bulk pricing
11862
+ */
11863
+ export interface CumulativeGroupedBulkConfig {
11864
+ /**
11865
+ * Each tier lower bound must have the same group of values.
11866
+ */
11867
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
11868
+
11869
+ /**
11870
+ * Grouping key name
11871
+ */
11872
+ group: string;
11873
+ }
11874
+
11875
+ export namespace CumulativeGroupedBulkConfig {
11876
+ /**
11877
+ * Configuration for a dimension value entry
11878
+ */
11879
+ export interface DimensionValue {
11880
+ /**
11881
+ * Grouping key value
11882
+ */
11883
+ grouping_key: string;
11884
+
11885
+ /**
11886
+ * Tier lower bound
11887
+ */
11888
+ tier_lower_bound: string;
11889
+
11890
+ /**
11891
+ * Unit amount for this combination
11892
+ */
11893
+ unit_amount: string;
11894
+ }
11895
+ }
11896
+ }
11897
+
9419
11898
  export interface MinimumCompositePrice {
9420
11899
  id: string;
9421
11900
 
@@ -9478,15 +11957,21 @@ export namespace Price {
9478
11957
  */
9479
11958
  minimum_amount: string | null;
9480
11959
 
11960
+ /**
11961
+ * Configuration for minimum pricing
11962
+ */
9481
11963
  minimum_config: MinimumCompositePrice.MinimumConfig;
9482
11964
 
11965
+ /**
11966
+ * The pricing model type
11967
+ */
9483
11968
  model_type: 'minimum';
9484
11969
 
9485
11970
  name: string;
9486
11971
 
9487
11972
  plan_phase_order: number | null;
9488
11973
 
9489
- price_type: 'usage_price' | 'fixed_price';
11974
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9490
11975
 
9491
11976
  /**
9492
11977
  * The price id this price replaces. This price will take the place of the replaced
@@ -9498,6 +11983,9 @@ export namespace Price {
9498
11983
  }
9499
11984
 
9500
11985
  export namespace MinimumCompositePrice {
11986
+ /**
11987
+ * Configuration for minimum pricing
11988
+ */
9501
11989
  export interface MinimumConfig {
9502
11990
  /**
9503
11991
  * The minimum amount to apply
@@ -9505,10 +11993,9 @@ export namespace Price {
9505
11993
  minimum_amount: string;
9506
11994
 
9507
11995
  /**
9508
- * By default, subtotals from minimum composite prices are prorated based on the
9509
- * service period. Set to false to disable proration.
11996
+ * If true, subtotals from this price are prorated based on the service period
9510
11997
  */
9511
- prorated?: boolean | null;
11998
+ prorated?: boolean;
9512
11999
  }
9513
12000
  }
9514
12001
  }
@@ -9629,6 +12116,9 @@ export interface TaxAmount {
9629
12116
  tax_rate_percentage: string | null;
9630
12117
  }
9631
12118
 
12119
+ /**
12120
+ * Configuration for a single tier
12121
+ */
9632
12122
  export interface Tier {
9633
12123
  /**
9634
12124
  * Exclusive tier starting value
@@ -9641,19 +12131,12 @@ export interface Tier {
9641
12131
  unit_amount: string;
9642
12132
 
9643
12133
  /**
9644
- * Inclusive tier ending value. If null, this is treated as the last tier
12134
+ * Inclusive tier ending value. This value is null if and only if this is the last
12135
+ * tier.
9645
12136
  */
9646
12137
  last_unit?: number | null;
9647
12138
  }
9648
12139
 
9649
- export interface TierConfig {
9650
- first_unit: number;
9651
-
9652
- last_unit: number | null;
9653
-
9654
- unit_amount: string;
9655
- }
9656
-
9657
12140
  export interface TierSubLineItem {
9658
12141
  /**
9659
12142
  * The total amount for this sub line item.
@@ -9666,11 +12149,24 @@ export interface TierSubLineItem {
9666
12149
 
9667
12150
  quantity: number;
9668
12151
 
9669
- tier_config: TierConfig;
12152
+ tier_config: TierSubLineItem.TierConfig;
9670
12153
 
9671
12154
  type: 'tier';
9672
12155
  }
9673
12156
 
12157
+ export namespace TierSubLineItem {
12158
+ export interface TierConfig {
12159
+ first_unit: number;
12160
+
12161
+ last_unit: number | null;
12162
+
12163
+ unit_amount: string;
12164
+ }
12165
+ }
12166
+
12167
+ /**
12168
+ * Configuration for tiered pricing
12169
+ */
9674
12170
  export interface TieredConfig {
9675
12171
  /**
9676
12172
  * Tiers for rating based on total usage quantities into the specified tier
@@ -9728,11 +12224,19 @@ export interface TrialDiscount {
9728
12224
  trial_percentage_discount?: number | null;
9729
12225
  }
9730
12226
 
12227
+ /**
12228
+ * Configuration for unit pricing
12229
+ */
9731
12230
  export interface UnitConfig {
9732
12231
  /**
9733
12232
  * Rate per unit of usage
9734
12233
  */
9735
12234
  unit_amount: string;
12235
+
12236
+ /**
12237
+ * Multiplier to scale rated quantity by
12238
+ */
12239
+ scaling_factor?: number | null;
9736
12240
  }
9737
12241
 
9738
12242
  export interface UnitConversionRateConfig {