orb-billing 5.6.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/core.js +3 -3
  3. package/core.js.map +1 -1
  4. package/core.mjs +3 -3
  5. package/core.mjs.map +1 -1
  6. package/index.d.mts +2 -4
  7. package/index.d.ts +2 -4
  8. package/index.d.ts.map +1 -1
  9. package/index.js.map +1 -1
  10. package/index.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/resources/beta/beta.d.ts +288 -10
  13. package/resources/beta/beta.d.ts.map +1 -1
  14. package/resources/beta/beta.js.map +1 -1
  15. package/resources/beta/beta.mjs.map +1 -1
  16. package/resources/beta/external-plan-id.d.ts +288 -10
  17. package/resources/beta/external-plan-id.d.ts.map +1 -1
  18. package/resources/customers/customers.d.ts +27 -6
  19. package/resources/customers/customers.d.ts.map +1 -1
  20. package/resources/customers/customers.js.map +1 -1
  21. package/resources/customers/customers.mjs.map +1 -1
  22. package/resources/index.d.ts +1 -1
  23. package/resources/index.d.ts.map +1 -1
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs.map +1 -1
  26. package/resources/invoices.d.ts +3 -0
  27. package/resources/invoices.d.ts.map +1 -1
  28. package/resources/invoices.js.map +1 -1
  29. package/resources/invoices.mjs.map +1 -1
  30. package/resources/plans/plans.d.ts +144 -5
  31. package/resources/plans/plans.d.ts.map +1 -1
  32. package/resources/plans/plans.js.map +1 -1
  33. package/resources/plans/plans.mjs.map +1 -1
  34. package/resources/prices/prices.d.ts +924 -123
  35. package/resources/prices/prices.d.ts.map +1 -1
  36. package/resources/prices/prices.js.map +1 -1
  37. package/resources/prices/prices.mjs.map +1 -1
  38. package/resources/shared.d.ts +2468 -338
  39. package/resources/shared.d.ts.map +1 -1
  40. package/resources/shared.js.map +1 -1
  41. package/resources/shared.mjs.map +1 -1
  42. package/resources/subscriptions.d.ts +1367 -174
  43. package/resources/subscriptions.d.ts.map +1 -1
  44. package/resources/subscriptions.js.map +1 -1
  45. package/resources/subscriptions.mjs.map +1 -1
  46. package/src/core.ts +3 -3
  47. package/src/index.ts +0 -4
  48. package/src/resources/beta/beta.ts +348 -20
  49. package/src/resources/beta/external-plan-id.ts +348 -20
  50. package/src/resources/customers/customers.ts +48 -6
  51. package/src/resources/index.ts +0 -1
  52. package/src/resources/invoices.ts +3 -0
  53. package/src/resources/plans/plans.ts +174 -10
  54. package/src/resources/prices/prices.ts +1058 -113
  55. package/src/resources/shared.ts +2786 -288
  56. package/src/resources/subscriptions.ts +1607 -202
  57. package/src/version.ts +1 -1
  58. package/version.d.ts +1 -1
  59. package/version.js +1 -1
  60. package/version.mjs +1 -1
@@ -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,41 @@ 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.
4330
+ */
4331
+ tiers: Array<TieredPackageConfig.Tier>;
4332
+ }
4333
+
4334
+ export namespace TieredPackageConfig {
4335
+ /**
4336
+ * Configuration for a single tier with business logic
4337
+ */
4338
+ export interface Tier {
4339
+ /**
4340
+ * Price per package
4341
+ */
4342
+ per_unit: string;
4343
+
4344
+ /**
4345
+ * Tier lower bound
4346
+ */
4347
+ tier_lower_bound: string;
4348
+ }
4349
+ }
4350
+ }
4351
+
3658
4352
  export interface NewFloatingTieredPackageWithMinimumPrice {
3659
4353
  /**
3660
4354
  * The cadence to bill for this price on.
@@ -3671,6 +4365,9 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3671
4365
  */
3672
4366
  item_id: string;
3673
4367
 
4368
+ /**
4369
+ * The pricing model type
4370
+ */
3674
4371
  model_type: 'tiered_package_with_minimum';
3675
4372
 
3676
4373
  /**
@@ -3678,7 +4375,10 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3678
4375
  */
3679
4376
  name: string;
3680
4377
 
3681
- tiered_package_with_minimum_config: { [key: string]: unknown };
4378
+ /**
4379
+ * Configuration for tiered_package_with_minimum pricing
4380
+ */
4381
+ tiered_package_with_minimum_config: NewFloatingTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
3682
4382
 
3683
4383
  /**
3684
4384
  * The id of the billable metric for the price. Only needed if the price is
@@ -3743,6 +4443,46 @@ export interface NewFloatingTieredPackageWithMinimumPrice {
3743
4443
  metadata?: { [key: string]: string | null } | null;
3744
4444
  }
3745
4445
 
4446
+ export namespace NewFloatingTieredPackageWithMinimumPrice {
4447
+ /**
4448
+ * Configuration for tiered_package_with_minimum pricing
4449
+ */
4450
+ export interface TieredPackageWithMinimumConfig {
4451
+ /**
4452
+ * Package size
4453
+ */
4454
+ package_size: number;
4455
+
4456
+ /**
4457
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
4458
+ * are defined using exclusive lower bounds.
4459
+ */
4460
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
4461
+ }
4462
+
4463
+ export namespace TieredPackageWithMinimumConfig {
4464
+ /**
4465
+ * Configuration for a single tier
4466
+ */
4467
+ export interface Tier {
4468
+ /**
4469
+ * Minimum amount
4470
+ */
4471
+ minimum_amount: string;
4472
+
4473
+ /**
4474
+ * Price per package
4475
+ */
4476
+ per_unit: string;
4477
+
4478
+ /**
4479
+ * Tier lower bound
4480
+ */
4481
+ tier_lower_bound: string;
4482
+ }
4483
+ }
4484
+ }
4485
+
3746
4486
  export interface NewFloatingTieredPrice {
3747
4487
  /**
3748
4488
  * The cadence to bill for this price on.
@@ -3759,6 +4499,9 @@ export interface NewFloatingTieredPrice {
3759
4499
  */
3760
4500
  item_id: string;
3761
4501
 
4502
+ /**
4503
+ * The pricing model type
4504
+ */
3762
4505
  model_type: 'tiered';
3763
4506
 
3764
4507
  /**
@@ -3766,6 +4509,9 @@ export interface NewFloatingTieredPrice {
3766
4509
  */
3767
4510
  name: string;
3768
4511
 
4512
+ /**
4513
+ * Configuration for tiered pricing
4514
+ */
3769
4515
  tiered_config: TieredConfig;
3770
4516
 
3771
4517
  /**
@@ -3847,6 +4593,9 @@ export interface NewFloatingTieredWithMinimumPrice {
3847
4593
  */
3848
4594
  item_id: string;
3849
4595
 
4596
+ /**
4597
+ * The pricing model type
4598
+ */
3850
4599
  model_type: 'tiered_with_minimum';
3851
4600
 
3852
4601
  /**
@@ -3854,7 +4603,10 @@ export interface NewFloatingTieredWithMinimumPrice {
3854
4603
  */
3855
4604
  name: string;
3856
4605
 
3857
- tiered_with_minimum_config: { [key: string]: unknown };
4606
+ /**
4607
+ * Configuration for tiered_with_minimum pricing
4608
+ */
4609
+ tiered_with_minimum_config: NewFloatingTieredWithMinimumPrice.TieredWithMinimumConfig;
3858
4610
 
3859
4611
  /**
3860
4612
  * The id of the billable metric for the price. Only needed if the price is
@@ -3919,6 +4671,51 @@ export interface NewFloatingTieredWithMinimumPrice {
3919
4671
  metadata?: { [key: string]: string | null } | null;
3920
4672
  }
3921
4673
 
4674
+ export namespace NewFloatingTieredWithMinimumPrice {
4675
+ /**
4676
+ * Configuration for tiered_with_minimum pricing
4677
+ */
4678
+ export interface TieredWithMinimumConfig {
4679
+ /**
4680
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
4681
+ * defined using exclusive lower bounds.
4682
+ */
4683
+ tiers: Array<TieredWithMinimumConfig.Tier>;
4684
+
4685
+ /**
4686
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
4687
+ */
4688
+ hide_zero_amount_tiers?: boolean;
4689
+
4690
+ /**
4691
+ * If true, the unit price will be prorated to the billing period
4692
+ */
4693
+ prorate?: boolean;
4694
+ }
4695
+
4696
+ export namespace TieredWithMinimumConfig {
4697
+ /**
4698
+ * Configuration for a single tier
4699
+ */
4700
+ export interface Tier {
4701
+ /**
4702
+ * Minimum amount
4703
+ */
4704
+ minimum_amount: string;
4705
+
4706
+ /**
4707
+ * Tier lower bound
4708
+ */
4709
+ tier_lower_bound: string;
4710
+
4711
+ /**
4712
+ * Per unit amount
4713
+ */
4714
+ unit_amount: string;
4715
+ }
4716
+ }
4717
+ }
4718
+
3922
4719
  export interface NewFloatingTieredWithProrationPrice {
3923
4720
  /**
3924
4721
  * The cadence to bill for this price on.
@@ -3935,6 +4732,9 @@ export interface NewFloatingTieredWithProrationPrice {
3935
4732
  */
3936
4733
  item_id: string;
3937
4734
 
4735
+ /**
4736
+ * The pricing model type
4737
+ */
3938
4738
  model_type: 'tiered_with_proration';
3939
4739
 
3940
4740
  /**
@@ -3942,7 +4742,10 @@ export interface NewFloatingTieredWithProrationPrice {
3942
4742
  */
3943
4743
  name: string;
3944
4744
 
3945
- tiered_with_proration_config: { [key: string]: unknown };
4745
+ /**
4746
+ * Configuration for tiered_with_proration pricing
4747
+ */
4748
+ tiered_with_proration_config: NewFloatingTieredWithProrationPrice.TieredWithProrationConfig;
3946
4749
 
3947
4750
  /**
3948
4751
  * The id of the billable metric for the price. Only needed if the price is
@@ -4007,13 +4810,43 @@ export interface NewFloatingTieredWithProrationPrice {
4007
4810
  metadata?: { [key: string]: string | null } | null;
4008
4811
  }
4009
4812
 
4010
- export interface NewFloatingUnitPrice {
4813
+ export namespace NewFloatingTieredWithProrationPrice {
4011
4814
  /**
4012
- * The cadence to bill for this price on.
4815
+ * Configuration for tiered_with_proration pricing
4013
4816
  */
4014
- cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4817
+ export interface TieredWithProrationConfig {
4818
+ /**
4819
+ * Tiers for rating based on total usage quantities into the specified tier with
4820
+ * proration
4821
+ */
4822
+ tiers: Array<TieredWithProrationConfig.Tier>;
4823
+ }
4015
4824
 
4016
- /**
4825
+ export namespace TieredWithProrationConfig {
4826
+ /**
4827
+ * Configuration for a single tiered with proration tier
4828
+ */
4829
+ export interface Tier {
4830
+ /**
4831
+ * Inclusive tier starting value
4832
+ */
4833
+ tier_lower_bound: string;
4834
+
4835
+ /**
4836
+ * Amount per unit
4837
+ */
4838
+ unit_amount: string;
4839
+ }
4840
+ }
4841
+ }
4842
+
4843
+ export interface NewFloatingUnitPrice {
4844
+ /**
4845
+ * The cadence to bill for this price on.
4846
+ */
4847
+ cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4848
+
4849
+ /**
4017
4850
  * An ISO 4217 currency string for which this price is billed in.
4018
4851
  */
4019
4852
  currency: string;
@@ -4023,6 +4856,9 @@ export interface NewFloatingUnitPrice {
4023
4856
  */
4024
4857
  item_id: string;
4025
4858
 
4859
+ /**
4860
+ * The pricing model type
4861
+ */
4026
4862
  model_type: 'unit';
4027
4863
 
4028
4864
  /**
@@ -4030,6 +4866,9 @@ export interface NewFloatingUnitPrice {
4030
4866
  */
4031
4867
  name: string;
4032
4868
 
4869
+ /**
4870
+ * Configuration for unit pricing
4871
+ */
4033
4872
  unit_config: UnitConfig;
4034
4873
 
4035
4874
  /**
@@ -4111,6 +4950,9 @@ export interface NewFloatingUnitWithPercentPrice {
4111
4950
  */
4112
4951
  item_id: string;
4113
4952
 
4953
+ /**
4954
+ * The pricing model type
4955
+ */
4114
4956
  model_type: 'unit_with_percent';
4115
4957
 
4116
4958
  /**
@@ -4118,7 +4960,10 @@ export interface NewFloatingUnitWithPercentPrice {
4118
4960
  */
4119
4961
  name: string;
4120
4962
 
4121
- unit_with_percent_config: { [key: string]: unknown };
4963
+ /**
4964
+ * Configuration for unit_with_percent pricing
4965
+ */
4966
+ unit_with_percent_config: NewFloatingUnitWithPercentPrice.UnitWithPercentConfig;
4122
4967
 
4123
4968
  /**
4124
4969
  * The id of the billable metric for the price. Only needed if the price is
@@ -4183,6 +5028,23 @@ export interface NewFloatingUnitWithPercentPrice {
4183
5028
  metadata?: { [key: string]: string | null } | null;
4184
5029
  }
4185
5030
 
5031
+ export namespace NewFloatingUnitWithPercentPrice {
5032
+ /**
5033
+ * Configuration for unit_with_percent pricing
5034
+ */
5035
+ export interface UnitWithPercentConfig {
5036
+ /**
5037
+ * What percent, out of 100, of the calculated total to charge
5038
+ */
5039
+ percent: string;
5040
+
5041
+ /**
5042
+ * Rate per unit of usage
5043
+ */
5044
+ unit_amount: string;
5045
+ }
5046
+ }
5047
+
4186
5048
  export interface NewFloatingUnitWithProrationPrice {
4187
5049
  /**
4188
5050
  * The cadence to bill for this price on.
@@ -4199,6 +5061,9 @@ export interface NewFloatingUnitWithProrationPrice {
4199
5061
  */
4200
5062
  item_id: string;
4201
5063
 
5064
+ /**
5065
+ * The pricing model type
5066
+ */
4202
5067
  model_type: 'unit_with_proration';
4203
5068
 
4204
5069
  /**
@@ -4206,7 +5071,10 @@ export interface NewFloatingUnitWithProrationPrice {
4206
5071
  */
4207
5072
  name: string;
4208
5073
 
4209
- unit_with_proration_config: { [key: string]: unknown };
5074
+ /**
5075
+ * Configuration for unit_with_proration pricing
5076
+ */
5077
+ unit_with_proration_config: NewFloatingUnitWithProrationPrice.UnitWithProrationConfig;
4210
5078
 
4211
5079
  /**
4212
5080
  * The id of the billable metric for the price. Only needed if the price is
@@ -4271,6 +5139,18 @@ export interface NewFloatingUnitWithProrationPrice {
4271
5139
  metadata?: { [key: string]: string | null } | null;
4272
5140
  }
4273
5141
 
5142
+ export namespace NewFloatingUnitWithProrationPrice {
5143
+ /**
5144
+ * Configuration for unit_with_proration pricing
5145
+ */
5146
+ export interface UnitWithProrationConfig {
5147
+ /**
5148
+ * Rate per unit of usage
5149
+ */
5150
+ unit_amount: string;
5151
+ }
5152
+ }
5153
+
4274
5154
  export interface NewMaximum {
4275
5155
  adjustment_type: 'maximum';
4276
5156
 
@@ -4403,6 +5283,9 @@ export interface NewPercentageDiscount {
4403
5283
  }
4404
5284
 
4405
5285
  export interface NewPlanBulkPrice {
5286
+ /**
5287
+ * Configuration for bulk pricing
5288
+ */
4406
5289
  bulk_config: BulkConfig;
4407
5290
 
4408
5291
  /**
@@ -4415,6 +5298,9 @@ export interface NewPlanBulkPrice {
4415
5298
  */
4416
5299
  item_id: string;
4417
5300
 
5301
+ /**
5302
+ * The pricing model type
5303
+ */
4418
5304
  model_type: 'bulk';
4419
5305
 
4420
5306
  /**
@@ -4498,7 +5384,10 @@ export interface NewPlanBulkPrice {
4498
5384
  }
4499
5385
 
4500
5386
  export interface NewPlanBulkWithProrationPrice {
4501
- bulk_with_proration_config: { [key: string]: unknown };
5387
+ /**
5388
+ * Configuration for bulk_with_proration pricing
5389
+ */
5390
+ bulk_with_proration_config: NewPlanBulkWithProrationPrice.BulkWithProrationConfig;
4502
5391
 
4503
5392
  /**
4504
5393
  * The cadence to bill for this price on.
@@ -4510,6 +5399,9 @@ export interface NewPlanBulkWithProrationPrice {
4510
5399
  */
4511
5400
  item_id: string;
4512
5401
 
5402
+ /**
5403
+ * The pricing model type
5404
+ */
4513
5405
  model_type: 'bulk_with_proration';
4514
5406
 
4515
5407
  /**
@@ -4592,19 +5484,54 @@ export interface NewPlanBulkWithProrationPrice {
4592
5484
  reference_id?: string | null;
4593
5485
  }
4594
5486
 
5487
+ export namespace NewPlanBulkWithProrationPrice {
5488
+ /**
5489
+ * Configuration for bulk_with_proration pricing
5490
+ */
5491
+ export interface BulkWithProrationConfig {
5492
+ /**
5493
+ * Bulk tiers for rating based on total usage volume
5494
+ */
5495
+ tiers: Array<BulkWithProrationConfig.Tier>;
5496
+ }
5497
+
5498
+ export namespace BulkWithProrationConfig {
5499
+ /**
5500
+ * Configuration for a single bulk pricing tier with proration
5501
+ */
5502
+ export interface Tier {
5503
+ /**
5504
+ * Cost per unit
5505
+ */
5506
+ unit_amount: string;
5507
+
5508
+ /**
5509
+ * The lower bound for this tier
5510
+ */
5511
+ tier_lower_bound?: string | null;
5512
+ }
5513
+ }
5514
+ }
5515
+
4595
5516
  export interface NewPlanCumulativeGroupedBulkPrice {
4596
5517
  /**
4597
5518
  * The cadence to bill for this price on.
4598
5519
  */
4599
5520
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4600
5521
 
4601
- cumulative_grouped_bulk_config: { [key: string]: unknown };
5522
+ /**
5523
+ * Configuration for cumulative_grouped_bulk pricing
5524
+ */
5525
+ cumulative_grouped_bulk_config: NewPlanCumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
4602
5526
 
4603
5527
  /**
4604
5528
  * The id of the item the price will be associated with.
4605
5529
  */
4606
5530
  item_id: string;
4607
5531
 
5532
+ /**
5533
+ * The pricing model type
5534
+ */
4608
5535
  model_type: 'cumulative_grouped_bulk';
4609
5536
 
4610
5537
  /**
@@ -4687,19 +5614,64 @@ export interface NewPlanCumulativeGroupedBulkPrice {
4687
5614
  reference_id?: string | null;
4688
5615
  }
4689
5616
 
5617
+ export namespace NewPlanCumulativeGroupedBulkPrice {
5618
+ /**
5619
+ * Configuration for cumulative_grouped_bulk pricing
5620
+ */
5621
+ export interface CumulativeGroupedBulkConfig {
5622
+ /**
5623
+ * Each tier lower bound must have the same group of values.
5624
+ */
5625
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
5626
+
5627
+ /**
5628
+ * Grouping key name
5629
+ */
5630
+ group: string;
5631
+ }
5632
+
5633
+ export namespace CumulativeGroupedBulkConfig {
5634
+ /**
5635
+ * Configuration for a dimension value entry
5636
+ */
5637
+ export interface DimensionValue {
5638
+ /**
5639
+ * Grouping key value
5640
+ */
5641
+ grouping_key: string;
5642
+
5643
+ /**
5644
+ * Tier lower bound
5645
+ */
5646
+ tier_lower_bound: string;
5647
+
5648
+ /**
5649
+ * Unit amount for this combination
5650
+ */
5651
+ unit_amount: string;
5652
+ }
5653
+ }
5654
+ }
5655
+
4690
5656
  export interface NewPlanGroupedAllocationPrice {
4691
5657
  /**
4692
5658
  * The cadence to bill for this price on.
4693
5659
  */
4694
5660
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4695
5661
 
4696
- grouped_allocation_config: { [key: string]: unknown };
5662
+ /**
5663
+ * Configuration for grouped_allocation pricing
5664
+ */
5665
+ grouped_allocation_config: NewPlanGroupedAllocationPrice.GroupedAllocationConfig;
4697
5666
 
4698
5667
  /**
4699
5668
  * The id of the item the price will be associated with.
4700
5669
  */
4701
5670
  item_id: string;
4702
5671
 
5672
+ /**
5673
+ * The pricing model type
5674
+ */
4703
5675
  model_type: 'grouped_allocation';
4704
5676
 
4705
5677
  /**
@@ -4782,19 +5754,47 @@ export interface NewPlanGroupedAllocationPrice {
4782
5754
  reference_id?: string | null;
4783
5755
  }
4784
5756
 
5757
+ export namespace NewPlanGroupedAllocationPrice {
5758
+ /**
5759
+ * Configuration for grouped_allocation pricing
5760
+ */
5761
+ export interface GroupedAllocationConfig {
5762
+ /**
5763
+ * Usage allocation per group
5764
+ */
5765
+ allocation: string;
5766
+
5767
+ /**
5768
+ * How to determine the groups that should each be allocated some quantity
5769
+ */
5770
+ grouping_key: string;
5771
+
5772
+ /**
5773
+ * Unit rate for post-allocation
5774
+ */
5775
+ overage_unit_rate: string;
5776
+ }
5777
+ }
5778
+
4785
5779
  export interface NewPlanGroupedTieredPackagePrice {
4786
5780
  /**
4787
5781
  * The cadence to bill for this price on.
4788
5782
  */
4789
5783
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4790
5784
 
4791
- grouped_tiered_package_config: { [key: string]: unknown };
5785
+ /**
5786
+ * Configuration for grouped_tiered_package pricing
5787
+ */
5788
+ grouped_tiered_package_config: NewPlanGroupedTieredPackagePrice.GroupedTieredPackageConfig;
4792
5789
 
4793
5790
  /**
4794
5791
  * The id of the item the price will be associated with.
4795
5792
  */
4796
5793
  item_id: string;
4797
5794
 
5795
+ /**
5796
+ * The pricing model type
5797
+ */
4798
5798
  model_type: 'grouped_tiered_package';
4799
5799
 
4800
5800
  /**
@@ -4877,19 +5877,65 @@ export interface NewPlanGroupedTieredPackagePrice {
4877
5877
  reference_id?: string | null;
4878
5878
  }
4879
5879
 
5880
+ export namespace NewPlanGroupedTieredPackagePrice {
5881
+ /**
5882
+ * Configuration for grouped_tiered_package pricing
5883
+ */
5884
+ export interface GroupedTieredPackageConfig {
5885
+ /**
5886
+ * The event property used to group before tiering
5887
+ */
5888
+ grouping_key: string;
5889
+
5890
+ /**
5891
+ * Package size
5892
+ */
5893
+ package_size: string;
5894
+
5895
+ /**
5896
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
5897
+ * are defined using exclusive lower bounds.
5898
+ */
5899
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
5900
+ }
5901
+
5902
+ export namespace GroupedTieredPackageConfig {
5903
+ /**
5904
+ * Configuration for a single tier
5905
+ */
5906
+ export interface Tier {
5907
+ /**
5908
+ * Price per package
5909
+ */
5910
+ per_unit: string;
5911
+
5912
+ /**
5913
+ * Tier lower bound
5914
+ */
5915
+ tier_lower_bound: string;
5916
+ }
5917
+ }
5918
+ }
5919
+
4880
5920
  export interface NewPlanGroupedTieredPrice {
4881
5921
  /**
4882
5922
  * The cadence to bill for this price on.
4883
5923
  */
4884
5924
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4885
5925
 
4886
- grouped_tiered_config: { [key: string]: unknown };
5926
+ /**
5927
+ * Configuration for grouped_tiered pricing
5928
+ */
5929
+ grouped_tiered_config: NewPlanGroupedTieredPrice.GroupedTieredConfig;
4887
5930
 
4888
5931
  /**
4889
5932
  * The id of the item the price will be associated with.
4890
5933
  */
4891
5934
  item_id: string;
4892
5935
 
5936
+ /**
5937
+ * The pricing model type
5938
+ */
4893
5939
  model_type: 'grouped_tiered';
4894
5940
 
4895
5941
  /**
@@ -4972,19 +6018,60 @@ export interface NewPlanGroupedTieredPrice {
4972
6018
  reference_id?: string | null;
4973
6019
  }
4974
6020
 
6021
+ export namespace NewPlanGroupedTieredPrice {
6022
+ /**
6023
+ * Configuration for grouped_tiered pricing
6024
+ */
6025
+ export interface GroupedTieredConfig {
6026
+ /**
6027
+ * The billable metric property used to group before tiering
6028
+ */
6029
+ grouping_key: string;
6030
+
6031
+ /**
6032
+ * Apply tiered pricing to each segment generated after grouping with the provided
6033
+ * key
6034
+ */
6035
+ tiers: Array<GroupedTieredConfig.Tier>;
6036
+ }
6037
+
6038
+ export namespace GroupedTieredConfig {
6039
+ /**
6040
+ * Configuration for a single tier
6041
+ */
6042
+ export interface Tier {
6043
+ /**
6044
+ * Tier lower bound
6045
+ */
6046
+ tier_lower_bound: string;
6047
+
6048
+ /**
6049
+ * Per unit amount
6050
+ */
6051
+ unit_amount: string;
6052
+ }
6053
+ }
6054
+ }
6055
+
4975
6056
  export interface NewPlanGroupedWithMeteredMinimumPrice {
4976
6057
  /**
4977
6058
  * The cadence to bill for this price on.
4978
6059
  */
4979
6060
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
4980
6061
 
4981
- grouped_with_metered_minimum_config: { [key: string]: unknown };
6062
+ /**
6063
+ * Configuration for grouped_with_metered_minimum pricing
6064
+ */
6065
+ grouped_with_metered_minimum_config: NewPlanGroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
4982
6066
 
4983
6067
  /**
4984
6068
  * The id of the item the price will be associated with.
4985
6069
  */
4986
6070
  item_id: string;
4987
6071
 
6072
+ /**
6073
+ * The pricing model type
6074
+ */
4988
6075
  model_type: 'grouped_with_metered_minimum';
4989
6076
 
4990
6077
  /**
@@ -5067,19 +6154,96 @@ export interface NewPlanGroupedWithMeteredMinimumPrice {
5067
6154
  reference_id?: string | null;
5068
6155
  }
5069
6156
 
6157
+ export namespace NewPlanGroupedWithMeteredMinimumPrice {
6158
+ /**
6159
+ * Configuration for grouped_with_metered_minimum pricing
6160
+ */
6161
+ export interface GroupedWithMeteredMinimumConfig {
6162
+ /**
6163
+ * Used to partition the usage into groups. The minimum amount is applied to each
6164
+ * group.
6165
+ */
6166
+ grouping_key: string;
6167
+
6168
+ /**
6169
+ * The minimum amount to charge per group per unit
6170
+ */
6171
+ minimum_unit_amount: string;
6172
+
6173
+ /**
6174
+ * Used to determine the unit rate
6175
+ */
6176
+ pricing_key: string;
6177
+
6178
+ /**
6179
+ * Scale the unit rates by the scaling factor.
6180
+ */
6181
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
6182
+
6183
+ /**
6184
+ * Used to determine the unit rate scaling factor
6185
+ */
6186
+ scaling_key: string;
6187
+
6188
+ /**
6189
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
6190
+ * unmatched usage.
6191
+ */
6192
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
6193
+ }
6194
+
6195
+ export namespace GroupedWithMeteredMinimumConfig {
6196
+ /**
6197
+ * Configuration for a scaling factor
6198
+ */
6199
+ export interface ScalingFactor {
6200
+ /**
6201
+ * Scaling factor
6202
+ */
6203
+ scaling_factor: string;
6204
+
6205
+ /**
6206
+ * Scaling value
6207
+ */
6208
+ scaling_value: string;
6209
+ }
6210
+
6211
+ /**
6212
+ * Configuration for a unit amount
6213
+ */
6214
+ export interface UnitAmount {
6215
+ /**
6216
+ * Pricing value
6217
+ */
6218
+ pricing_value: string;
6219
+
6220
+ /**
6221
+ * Per unit amount
6222
+ */
6223
+ unit_amount: string;
6224
+ }
6225
+ }
6226
+ }
6227
+
5070
6228
  export interface NewPlanGroupedWithProratedMinimumPrice {
5071
6229
  /**
5072
6230
  * The cadence to bill for this price on.
5073
6231
  */
5074
6232
  cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
5075
6233
 
5076
- grouped_with_prorated_minimum_config: { [key: string]: unknown };
6234
+ /**
6235
+ * Configuration for grouped_with_prorated_minimum pricing
6236
+ */
6237
+ grouped_with_prorated_minimum_config: NewPlanGroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
5077
6238
 
5078
6239
  /**
5079
6240
  * The id of the item the price will be associated with.
5080
6241
  */
5081
6242
  item_id: string;
5082
6243
 
6244
+ /**
6245
+ * The pricing model type
6246
+ */
5083
6247
  model_type: 'grouped_with_prorated_minimum';
5084
6248
 
5085
6249
  /**
@@ -5162,6 +6326,28 @@ export interface NewPlanGroupedWithProratedMinimumPrice {
5162
6326
  reference_id?: string | null;
5163
6327
  }
5164
6328
 
6329
+ export namespace NewPlanGroupedWithProratedMinimumPrice {
6330
+ /**
6331
+ * Configuration for grouped_with_prorated_minimum pricing
6332
+ */
6333
+ export interface GroupedWithProratedMinimumConfig {
6334
+ /**
6335
+ * How to determine the groups that should each have a minimum
6336
+ */
6337
+ grouping_key: string;
6338
+
6339
+ /**
6340
+ * The minimum amount to charge per group
6341
+ */
6342
+ minimum: string;
6343
+
6344
+ /**
6345
+ * The amount to charge per unit
6346
+ */
6347
+ unit_rate: string;
6348
+ }
6349
+ }
6350
+
5165
6351
  export interface NewPlanMatrixPrice {
5166
6352
  /**
5167
6353
  * The cadence to bill for this price on.
@@ -5173,8 +6359,14 @@ export interface NewPlanMatrixPrice {
5173
6359
  */
5174
6360
  item_id: string;
5175
6361
 
6362
+ /**
6363
+ * Configuration for matrix pricing
6364
+ */
5176
6365
  matrix_config: MatrixConfig;
5177
6366
 
6367
+ /**
6368
+ * The pricing model type
6369
+ */
5178
6370
  model_type: 'matrix';
5179
6371
 
5180
6372
  /**
@@ -5268,8 +6460,14 @@ export interface NewPlanMatrixWithAllocationPrice {
5268
6460
  */
5269
6461
  item_id: string;
5270
6462
 
6463
+ /**
6464
+ * Configuration for matrix_with_allocation pricing
6465
+ */
5271
6466
  matrix_with_allocation_config: MatrixWithAllocationConfig;
5272
6467
 
6468
+ /**
6469
+ * The pricing model type
6470
+ */
5273
6471
  model_type: 'matrix_with_allocation';
5274
6472
 
5275
6473
  /**
@@ -5363,8 +6561,14 @@ export interface NewPlanMatrixWithDisplayNamePrice {
5363
6561
  */
5364
6562
  item_id: string;
5365
6563
 
5366
- matrix_with_display_name_config: { [key: string]: unknown };
6564
+ /**
6565
+ * Configuration for matrix_with_display_name pricing
6566
+ */
6567
+ matrix_with_display_name_config: NewPlanMatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
5367
6568
 
6569
+ /**
6570
+ * The pricing model type
6571
+ */
5368
6572
  model_type: 'matrix_with_display_name';
5369
6573
 
5370
6574
  /**
@@ -5447,20 +6651,65 @@ export interface NewPlanMatrixWithDisplayNamePrice {
5447
6651
  reference_id?: string | null;
5448
6652
  }
5449
6653
 
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
-
6654
+ export namespace NewPlanMatrixWithDisplayNamePrice {
5456
6655
  /**
5457
- * The id of the item the price will be associated with.
6656
+ * Configuration for matrix_with_display_name pricing
5458
6657
  */
5459
- item_id: string;
5460
-
5461
- max_group_tiered_package_config: { [key: string]: unknown };
6658
+ export interface MatrixWithDisplayNameConfig {
6659
+ /**
6660
+ * Used to determine the unit rate
6661
+ */
6662
+ dimension: string;
5462
6663
 
5463
- model_type: 'max_group_tiered_package';
6664
+ /**
6665
+ * Apply per unit pricing to each dimension value
6666
+ */
6667
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
6668
+ }
6669
+
6670
+ export namespace MatrixWithDisplayNameConfig {
6671
+ /**
6672
+ * Configuration for a unit amount item
6673
+ */
6674
+ export interface UnitAmount {
6675
+ /**
6676
+ * The dimension value
6677
+ */
6678
+ dimension_value: string;
6679
+
6680
+ /**
6681
+ * Display name for this dimension value
6682
+ */
6683
+ display_name: string;
6684
+
6685
+ /**
6686
+ * Per unit amount
6687
+ */
6688
+ unit_amount: string;
6689
+ }
6690
+ }
6691
+ }
6692
+
6693
+ export interface NewPlanMaxGroupTieredPackagePrice {
6694
+ /**
6695
+ * The cadence to bill for this price on.
6696
+ */
6697
+ cadence: 'annual' | 'semi_annual' | 'monthly' | 'quarterly' | 'one_time' | 'custom';
6698
+
6699
+ /**
6700
+ * The id of the item the price will be associated with.
6701
+ */
6702
+ item_id: string;
6703
+
6704
+ /**
6705
+ * Configuration for max_group_tiered_package pricing
6706
+ */
6707
+ max_group_tiered_package_config: NewPlanMaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
6708
+
6709
+ /**
6710
+ * The pricing model type
6711
+ */
6712
+ model_type: 'max_group_tiered_package';
5464
6713
 
5465
6714
  /**
5466
6715
  * The name of the price.
@@ -5542,6 +6791,45 @@ export interface NewPlanMaxGroupTieredPackagePrice {
5542
6791
  reference_id?: string | null;
5543
6792
  }
5544
6793
 
6794
+ export namespace NewPlanMaxGroupTieredPackagePrice {
6795
+ /**
6796
+ * Configuration for max_group_tiered_package pricing
6797
+ */
6798
+ export interface MaxGroupTieredPackageConfig {
6799
+ /**
6800
+ * The event property used to group before tiering the group with the highest value
6801
+ */
6802
+ grouping_key: string;
6803
+
6804
+ /**
6805
+ * Package size
6806
+ */
6807
+ package_size: string;
6808
+
6809
+ /**
6810
+ * Apply tiered pricing to the largest group after grouping with the provided key.
6811
+ */
6812
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
6813
+ }
6814
+
6815
+ export namespace MaxGroupTieredPackageConfig {
6816
+ /**
6817
+ * Configuration for a single tier
6818
+ */
6819
+ export interface Tier {
6820
+ /**
6821
+ * Tier lower bound
6822
+ */
6823
+ tier_lower_bound: string;
6824
+
6825
+ /**
6826
+ * Per unit amount
6827
+ */
6828
+ unit_amount: string;
6829
+ }
6830
+ }
6831
+ }
6832
+
5545
6833
  export interface NewPlanMinimumCompositePrice {
5546
6834
  /**
5547
6835
  * The cadence to bill for this price on.
@@ -5553,8 +6841,14 @@ export interface NewPlanMinimumCompositePrice {
5553
6841
  */
5554
6842
  item_id: string;
5555
6843
 
6844
+ /**
6845
+ * Configuration for minimum pricing
6846
+ */
5556
6847
  minimum_config: NewPlanMinimumCompositePrice.MinimumConfig;
5557
6848
 
6849
+ /**
6850
+ * The pricing model type
6851
+ */
5558
6852
  model_type: 'minimum';
5559
6853
 
5560
6854
  /**
@@ -5638,6 +6932,9 @@ export interface NewPlanMinimumCompositePrice {
5638
6932
  }
5639
6933
 
5640
6934
  export namespace NewPlanMinimumCompositePrice {
6935
+ /**
6936
+ * Configuration for minimum pricing
6937
+ */
5641
6938
  export interface MinimumConfig {
5642
6939
  /**
5643
6940
  * The minimum amount to apply
@@ -5645,10 +6942,9 @@ export namespace NewPlanMinimumCompositePrice {
5645
6942
  minimum_amount: string;
5646
6943
 
5647
6944
  /**
5648
- * By default, subtotals from minimum composite prices are prorated based on the
5649
- * service period. Set to false to disable proration.
6945
+ * If true, subtotals from this price are prorated based on the service period
5650
6946
  */
5651
- prorated?: boolean | null;
6947
+ prorated?: boolean;
5652
6948
  }
5653
6949
  }
5654
6950
 
@@ -5663,6 +6959,9 @@ export interface NewPlanPackagePrice {
5663
6959
  */
5664
6960
  item_id: string;
5665
6961
 
6962
+ /**
6963
+ * The pricing model type
6964
+ */
5666
6965
  model_type: 'package';
5667
6966
 
5668
6967
  /**
@@ -5670,6 +6969,9 @@ export interface NewPlanPackagePrice {
5670
6969
  */
5671
6970
  name: string;
5672
6971
 
6972
+ /**
6973
+ * Configuration for package pricing
6974
+ */
5673
6975
  package_config: PackageConfig;
5674
6976
 
5675
6977
  /**
@@ -5758,6 +7060,9 @@ export interface NewPlanPackageWithAllocationPrice {
5758
7060
  */
5759
7061
  item_id: string;
5760
7062
 
7063
+ /**
7064
+ * The pricing model type
7065
+ */
5761
7066
  model_type: 'package_with_allocation';
5762
7067
 
5763
7068
  /**
@@ -5765,7 +7070,10 @@ export interface NewPlanPackageWithAllocationPrice {
5765
7070
  */
5766
7071
  name: string;
5767
7072
 
5768
- package_with_allocation_config: { [key: string]: unknown };
7073
+ /**
7074
+ * Configuration for package_with_allocation pricing
7075
+ */
7076
+ package_with_allocation_config: NewPlanPackageWithAllocationPrice.PackageWithAllocationConfig;
5769
7077
 
5770
7078
  /**
5771
7079
  * The id of the billable metric for the price. Only needed if the price is
@@ -5842,6 +7150,28 @@ export interface NewPlanPackageWithAllocationPrice {
5842
7150
  reference_id?: string | null;
5843
7151
  }
5844
7152
 
7153
+ export namespace NewPlanPackageWithAllocationPrice {
7154
+ /**
7155
+ * Configuration for package_with_allocation pricing
7156
+ */
7157
+ export interface PackageWithAllocationConfig {
7158
+ /**
7159
+ * Usage allocation
7160
+ */
7161
+ allocation: string;
7162
+
7163
+ /**
7164
+ * Price per package
7165
+ */
7166
+ package_amount: string;
7167
+
7168
+ /**
7169
+ * Package size
7170
+ */
7171
+ package_size: string;
7172
+ }
7173
+ }
7174
+
5845
7175
  export interface NewPlanScalableMatrixWithTieredPricingPrice {
5846
7176
  /**
5847
7177
  * The cadence to bill for this price on.
@@ -5853,6 +7183,9 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5853
7183
  */
5854
7184
  item_id: string;
5855
7185
 
7186
+ /**
7187
+ * The pricing model type
7188
+ */
5856
7189
  model_type: 'scalable_matrix_with_tiered_pricing';
5857
7190
 
5858
7191
  /**
@@ -5860,7 +7193,10 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5860
7193
  */
5861
7194
  name: string;
5862
7195
 
5863
- scalable_matrix_with_tiered_pricing_config: { [key: string]: unknown };
7196
+ /**
7197
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
7198
+ */
7199
+ scalable_matrix_with_tiered_pricing_config: NewPlanScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
5864
7200
 
5865
7201
  /**
5866
7202
  * The id of the billable metric for the price. Only needed if the price is
@@ -5937,6 +7273,70 @@ export interface NewPlanScalableMatrixWithTieredPricingPrice {
5937
7273
  reference_id?: string | null;
5938
7274
  }
5939
7275
 
7276
+ export namespace NewPlanScalableMatrixWithTieredPricingPrice {
7277
+ /**
7278
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
7279
+ */
7280
+ export interface ScalableMatrixWithTieredPricingConfig {
7281
+ /**
7282
+ * Used for the scalable matrix first dimension
7283
+ */
7284
+ first_dimension: string;
7285
+
7286
+ /**
7287
+ * Apply a scaling factor to each dimension
7288
+ */
7289
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
7290
+
7291
+ /**
7292
+ * Tier pricing structure
7293
+ */
7294
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
7295
+
7296
+ /**
7297
+ * Used for the scalable matrix second dimension (optional)
7298
+ */
7299
+ second_dimension?: string | null;
7300
+ }
7301
+
7302
+ export namespace ScalableMatrixWithTieredPricingConfig {
7303
+ /**
7304
+ * Configuration for a single matrix scaling factor
7305
+ */
7306
+ export interface MatrixScalingFactor {
7307
+ /**
7308
+ * First dimension value
7309
+ */
7310
+ first_dimension_value: string;
7311
+
7312
+ /**
7313
+ * Scaling factor
7314
+ */
7315
+ scaling_factor: string;
7316
+
7317
+ /**
7318
+ * Second dimension value (optional)
7319
+ */
7320
+ second_dimension_value?: string | null;
7321
+ }
7322
+
7323
+ /**
7324
+ * Configuration for a single tier entry with business logic
7325
+ */
7326
+ export interface Tier {
7327
+ /**
7328
+ * Tier lower bound
7329
+ */
7330
+ tier_lower_bound: string;
7331
+
7332
+ /**
7333
+ * Per unit amount
7334
+ */
7335
+ unit_amount: string;
7336
+ }
7337
+ }
7338
+ }
7339
+
5940
7340
  export interface NewPlanScalableMatrixWithUnitPricingPrice {
5941
7341
  /**
5942
7342
  * The cadence to bill for this price on.
@@ -5948,6 +7348,9 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
5948
7348
  */
5949
7349
  item_id: string;
5950
7350
 
7351
+ /**
7352
+ * The pricing model type
7353
+ */
5951
7354
  model_type: 'scalable_matrix_with_unit_pricing';
5952
7355
 
5953
7356
  /**
@@ -5955,7 +7358,10 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
5955
7358
  */
5956
7359
  name: string;
5957
7360
 
5958
- scalable_matrix_with_unit_pricing_config: { [key: string]: unknown };
7361
+ /**
7362
+ * Configuration for scalable_matrix_with_unit_pricing pricing
7363
+ */
7364
+ scalable_matrix_with_unit_pricing_config: NewPlanScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
5959
7365
 
5960
7366
  /**
5961
7367
  * The id of the billable metric for the price. Only needed if the price is
@@ -6032,6 +7438,60 @@ export interface NewPlanScalableMatrixWithUnitPricingPrice {
6032
7438
  reference_id?: string | null;
6033
7439
  }
6034
7440
 
7441
+ export namespace NewPlanScalableMatrixWithUnitPricingPrice {
7442
+ /**
7443
+ * Configuration for scalable_matrix_with_unit_pricing pricing
7444
+ */
7445
+ export interface ScalableMatrixWithUnitPricingConfig {
7446
+ /**
7447
+ * Used to determine the unit rate
7448
+ */
7449
+ first_dimension: string;
7450
+
7451
+ /**
7452
+ * Apply a scaling factor to each dimension
7453
+ */
7454
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
7455
+
7456
+ /**
7457
+ * The final unit price to rate against the output of the matrix
7458
+ */
7459
+ unit_price: string;
7460
+
7461
+ /**
7462
+ * If true, the unit price will be prorated to the billing period
7463
+ */
7464
+ prorate?: boolean | null;
7465
+
7466
+ /**
7467
+ * Used to determine the unit rate (optional)
7468
+ */
7469
+ second_dimension?: string | null;
7470
+ }
7471
+
7472
+ export namespace ScalableMatrixWithUnitPricingConfig {
7473
+ /**
7474
+ * Configuration for a single matrix scaling factor
7475
+ */
7476
+ export interface MatrixScalingFactor {
7477
+ /**
7478
+ * First dimension value
7479
+ */
7480
+ first_dimension_value: string;
7481
+
7482
+ /**
7483
+ * Scaling factor
7484
+ */
7485
+ scaling_factor: string;
7486
+
7487
+ /**
7488
+ * Second dimension value (optional)
7489
+ */
7490
+ second_dimension_value?: string | null;
7491
+ }
7492
+ }
7493
+ }
7494
+
6035
7495
  export interface NewPlanThresholdTotalAmountPrice {
6036
7496
  /**
6037
7497
  * The cadence to bill for this price on.
@@ -6043,6 +7503,9 @@ export interface NewPlanThresholdTotalAmountPrice {
6043
7503
  */
6044
7504
  item_id: string;
6045
7505
 
7506
+ /**
7507
+ * The pricing model type
7508
+ */
6046
7509
  model_type: 'threshold_total_amount';
6047
7510
 
6048
7511
  /**
@@ -6050,7 +7513,10 @@ export interface NewPlanThresholdTotalAmountPrice {
6050
7513
  */
6051
7514
  name: string;
6052
7515
 
6053
- threshold_total_amount_config: { [key: string]: unknown };
7516
+ /**
7517
+ * Configuration for threshold_total_amount pricing
7518
+ */
7519
+ threshold_total_amount_config: NewPlanThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
6054
7520
 
6055
7521
  /**
6056
7522
  * The id of the billable metric for the price. Only needed if the price is
@@ -6127,7 +7593,42 @@ export interface NewPlanThresholdTotalAmountPrice {
6127
7593
  reference_id?: string | null;
6128
7594
  }
6129
7595
 
6130
- export interface NewPlanTierWithProrationPrice {
7596
+ export namespace NewPlanThresholdTotalAmountPrice {
7597
+ /**
7598
+ * Configuration for threshold_total_amount pricing
7599
+ */
7600
+ export interface ThresholdTotalAmountConfig {
7601
+ /**
7602
+ * When the quantity consumed passes a provided threshold, the configured total
7603
+ * will be charged
7604
+ */
7605
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
7606
+
7607
+ /**
7608
+ * If true, the unit price will be prorated to the billing period
7609
+ */
7610
+ prorate?: boolean | null;
7611
+ }
7612
+
7613
+ export namespace ThresholdTotalAmountConfig {
7614
+ /**
7615
+ * Configuration for a single threshold
7616
+ */
7617
+ export interface ConsumptionTable {
7618
+ /**
7619
+ * Quantity threshold
7620
+ */
7621
+ threshold: string;
7622
+
7623
+ /**
7624
+ * Total amount for this threshold
7625
+ */
7626
+ total_amount: string;
7627
+ }
7628
+ }
7629
+ }
7630
+
7631
+ export interface NewPlanTieredPackagePrice {
6131
7632
  /**
6132
7633
  * The cadence to bill for this price on.
6133
7634
  */
@@ -6138,14 +7639,20 @@ export interface NewPlanTierWithProrationPrice {
6138
7639
  */
6139
7640
  item_id: string;
6140
7641
 
6141
- model_type: 'tiered_with_proration';
7642
+ /**
7643
+ * The pricing model type
7644
+ */
7645
+ model_type: 'tiered_package';
6142
7646
 
6143
7647
  /**
6144
7648
  * The name of the price.
6145
7649
  */
6146
7650
  name: string;
6147
7651
 
6148
- tiered_with_proration_config: { [key: string]: unknown };
7652
+ /**
7653
+ * Configuration for tiered_package pricing
7654
+ */
7655
+ tiered_package_config: NewPlanTieredPackagePrice.TieredPackageConfig;
6149
7656
 
6150
7657
  /**
6151
7658
  * The id of the billable metric for the price. Only needed if the price is
@@ -6222,7 +7729,42 @@ export interface NewPlanTierWithProrationPrice {
6222
7729
  reference_id?: string | null;
6223
7730
  }
6224
7731
 
6225
- export interface NewPlanTieredPackagePrice {
7732
+ export namespace NewPlanTieredPackagePrice {
7733
+ /**
7734
+ * Configuration for tiered_package pricing
7735
+ */
7736
+ export interface TieredPackageConfig {
7737
+ /**
7738
+ * Package size
7739
+ */
7740
+ package_size: string;
7741
+
7742
+ /**
7743
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7744
+ * are defined using exclusive lower bounds.
7745
+ */
7746
+ tiers: Array<TieredPackageConfig.Tier>;
7747
+ }
7748
+
7749
+ export namespace TieredPackageConfig {
7750
+ /**
7751
+ * Configuration for a single tier with business logic
7752
+ */
7753
+ export interface Tier {
7754
+ /**
7755
+ * Price per package
7756
+ */
7757
+ per_unit: string;
7758
+
7759
+ /**
7760
+ * Tier lower bound
7761
+ */
7762
+ tier_lower_bound: string;
7763
+ }
7764
+ }
7765
+ }
7766
+
7767
+ export interface NewPlanTieredPackageWithMinimumPrice {
6226
7768
  /**
6227
7769
  * The cadence to bill for this price on.
6228
7770
  */
@@ -6233,14 +7775,20 @@ export interface NewPlanTieredPackagePrice {
6233
7775
  */
6234
7776
  item_id: string;
6235
7777
 
6236
- model_type: 'tiered_package';
7778
+ /**
7779
+ * The pricing model type
7780
+ */
7781
+ model_type: 'tiered_package_with_minimum';
6237
7782
 
6238
7783
  /**
6239
7784
  * The name of the price.
6240
7785
  */
6241
7786
  name: string;
6242
7787
 
6243
- tiered_package_config: { [key: string]: unknown };
7788
+ /**
7789
+ * Configuration for tiered_package_with_minimum pricing
7790
+ */
7791
+ tiered_package_with_minimum_config: NewPlanTieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
6244
7792
 
6245
7793
  /**
6246
7794
  * The id of the billable metric for the price. Only needed if the price is
@@ -6317,7 +7865,47 @@ export interface NewPlanTieredPackagePrice {
6317
7865
  reference_id?: string | null;
6318
7866
  }
6319
7867
 
6320
- export interface NewPlanTieredPackageWithMinimumPrice {
7868
+ export namespace NewPlanTieredPackageWithMinimumPrice {
7869
+ /**
7870
+ * Configuration for tiered_package_with_minimum pricing
7871
+ */
7872
+ export interface TieredPackageWithMinimumConfig {
7873
+ /**
7874
+ * Package size
7875
+ */
7876
+ package_size: number;
7877
+
7878
+ /**
7879
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
7880
+ * are defined using exclusive lower bounds.
7881
+ */
7882
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
7883
+ }
7884
+
7885
+ export namespace TieredPackageWithMinimumConfig {
7886
+ /**
7887
+ * Configuration for a single tier
7888
+ */
7889
+ export interface Tier {
7890
+ /**
7891
+ * Minimum amount
7892
+ */
7893
+ minimum_amount: string;
7894
+
7895
+ /**
7896
+ * Price per package
7897
+ */
7898
+ per_unit: string;
7899
+
7900
+ /**
7901
+ * Tier lower bound
7902
+ */
7903
+ tier_lower_bound: string;
7904
+ }
7905
+ }
7906
+ }
7907
+
7908
+ export interface NewPlanTieredPrice {
6321
7909
  /**
6322
7910
  * The cadence to bill for this price on.
6323
7911
  */
@@ -6328,14 +7916,20 @@ export interface NewPlanTieredPackageWithMinimumPrice {
6328
7916
  */
6329
7917
  item_id: string;
6330
7918
 
6331
- model_type: 'tiered_package_with_minimum';
7919
+ /**
7920
+ * The pricing model type
7921
+ */
7922
+ model_type: 'tiered';
6332
7923
 
6333
7924
  /**
6334
7925
  * The name of the price.
6335
7926
  */
6336
7927
  name: string;
6337
7928
 
6338
- tiered_package_with_minimum_config: { [key: string]: unknown };
7929
+ /**
7930
+ * Configuration for tiered pricing
7931
+ */
7932
+ tiered_config: TieredConfig;
6339
7933
 
6340
7934
  /**
6341
7935
  * The id of the billable metric for the price. Only needed if the price is
@@ -6412,7 +8006,7 @@ export interface NewPlanTieredPackageWithMinimumPrice {
6412
8006
  reference_id?: string | null;
6413
8007
  }
6414
8008
 
6415
- export interface NewPlanTieredPrice {
8009
+ export interface NewPlanTieredWithMinimumPrice {
6416
8010
  /**
6417
8011
  * The cadence to bill for this price on.
6418
8012
  */
@@ -6423,14 +8017,20 @@ export interface NewPlanTieredPrice {
6423
8017
  */
6424
8018
  item_id: string;
6425
8019
 
6426
- model_type: 'tiered';
6427
-
8020
+ /**
8021
+ * The pricing model type
8022
+ */
8023
+ model_type: 'tiered_with_minimum';
8024
+
6428
8025
  /**
6429
8026
  * The name of the price.
6430
8027
  */
6431
8028
  name: string;
6432
8029
 
6433
- tiered_config: TieredConfig;
8030
+ /**
8031
+ * Configuration for tiered_with_minimum pricing
8032
+ */
8033
+ tiered_with_minimum_config: NewPlanTieredWithMinimumPrice.TieredWithMinimumConfig;
6434
8034
 
6435
8035
  /**
6436
8036
  * The id of the billable metric for the price. Only needed if the price is
@@ -6507,99 +8107,49 @@ export interface NewPlanTieredPrice {
6507
8107
  reference_id?: string | null;
6508
8108
  }
6509
8109
 
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
-
8110
+ export namespace NewPlanTieredWithMinimumPrice {
6569
8111
  /**
6570
- * An alias for the price.
8112
+ * Configuration for tiered_with_minimum pricing
6571
8113
  */
6572
- external_price_id?: string | null;
8114
+ export interface TieredWithMinimumConfig {
8115
+ /**
8116
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
8117
+ * defined using exclusive lower bounds.
8118
+ */
8119
+ tiers: Array<TieredWithMinimumConfig.Tier>;
6573
8120
 
6574
- /**
6575
- * If the Price represents a fixed cost, this represents the quantity of units
6576
- * applied.
6577
- */
6578
- fixed_price_quantity?: number | null;
8121
+ /**
8122
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
8123
+ */
8124
+ hide_zero_amount_tiers?: boolean;
6579
8125
 
6580
- /**
6581
- * The property used to group this price on an invoice
6582
- */
6583
- invoice_grouping_key?: string | null;
8126
+ /**
8127
+ * If true, the unit price will be prorated to the billing period
8128
+ */
8129
+ prorate?: boolean;
8130
+ }
6584
8131
 
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;
8132
+ export namespace TieredWithMinimumConfig {
8133
+ /**
8134
+ * Configuration for a single tier
8135
+ */
8136
+ export interface Tier {
8137
+ /**
8138
+ * Minimum amount
8139
+ */
8140
+ minimum_amount: string;
6590
8141
 
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;
8142
+ /**
8143
+ * Tier lower bound
8144
+ */
8145
+ tier_lower_bound: string;
6597
8146
 
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;
8147
+ /**
8148
+ * Per unit amount
8149
+ */
8150
+ unit_amount: string;
8151
+ }
8152
+ }
6603
8153
  }
6604
8154
 
6605
8155
  export interface NewPlanUnitPrice {
@@ -6613,6 +8163,9 @@ export interface NewPlanUnitPrice {
6613
8163
  */
6614
8164
  item_id: string;
6615
8165
 
8166
+ /**
8167
+ * The pricing model type
8168
+ */
6616
8169
  model_type: 'unit';
6617
8170
 
6618
8171
  /**
@@ -6620,6 +8173,9 @@ export interface NewPlanUnitPrice {
6620
8173
  */
6621
8174
  name: string;
6622
8175
 
8176
+ /**
8177
+ * Configuration for unit pricing
8178
+ */
6623
8179
  unit_config: UnitConfig;
6624
8180
 
6625
8181
  /**
@@ -6708,6 +8264,9 @@ export interface NewPlanUnitWithPercentPrice {
6708
8264
  */
6709
8265
  item_id: string;
6710
8266
 
8267
+ /**
8268
+ * The pricing model type
8269
+ */
6711
8270
  model_type: 'unit_with_percent';
6712
8271
 
6713
8272
  /**
@@ -6715,7 +8274,10 @@ export interface NewPlanUnitWithPercentPrice {
6715
8274
  */
6716
8275
  name: string;
6717
8276
 
6718
- unit_with_percent_config: { [key: string]: unknown };
8277
+ /**
8278
+ * Configuration for unit_with_percent pricing
8279
+ */
8280
+ unit_with_percent_config: NewPlanUnitWithPercentPrice.UnitWithPercentConfig;
6719
8281
 
6720
8282
  /**
6721
8283
  * The id of the billable metric for the price. Only needed if the price is
@@ -6792,6 +8354,23 @@ export interface NewPlanUnitWithPercentPrice {
6792
8354
  reference_id?: string | null;
6793
8355
  }
6794
8356
 
8357
+ export namespace NewPlanUnitWithPercentPrice {
8358
+ /**
8359
+ * Configuration for unit_with_percent pricing
8360
+ */
8361
+ export interface UnitWithPercentConfig {
8362
+ /**
8363
+ * What percent, out of 100, of the calculated total to charge
8364
+ */
8365
+ percent: string;
8366
+
8367
+ /**
8368
+ * Rate per unit of usage
8369
+ */
8370
+ unit_amount: string;
8371
+ }
8372
+ }
8373
+
6795
8374
  export interface NewPlanUnitWithProrationPrice {
6796
8375
  /**
6797
8376
  * The cadence to bill for this price on.
@@ -6803,6 +8382,9 @@ export interface NewPlanUnitWithProrationPrice {
6803
8382
  */
6804
8383
  item_id: string;
6805
8384
 
8385
+ /**
8386
+ * The pricing model type
8387
+ */
6806
8388
  model_type: 'unit_with_proration';
6807
8389
 
6808
8390
  /**
@@ -6810,7 +8392,10 @@ export interface NewPlanUnitWithProrationPrice {
6810
8392
  */
6811
8393
  name: string;
6812
8394
 
6813
- unit_with_proration_config: { [key: string]: unknown };
8395
+ /**
8396
+ * Configuration for unit_with_proration pricing
8397
+ */
8398
+ unit_with_proration_config: NewPlanUnitWithProrationPrice.UnitWithProrationConfig;
6814
8399
 
6815
8400
  /**
6816
8401
  * The id of the billable metric for the price. Only needed if the price is
@@ -6887,6 +8472,18 @@ export interface NewPlanUnitWithProrationPrice {
6887
8472
  reference_id?: string | null;
6888
8473
  }
6889
8474
 
8475
+ export namespace NewPlanUnitWithProrationPrice {
8476
+ /**
8477
+ * Configuration for unit_with_proration pricing
8478
+ */
8479
+ export interface UnitWithProrationConfig {
8480
+ /**
8481
+ * Rate per unit of usage
8482
+ */
8483
+ unit_amount: string;
8484
+ }
8485
+ }
8486
+
6890
8487
  export interface NewUsageDiscount {
6891
8488
  adjustment_type: 'usage_discount';
6892
8489
 
@@ -6944,6 +8541,9 @@ export interface OtherSubLineItem {
6944
8541
  type: "'null'";
6945
8542
  }
6946
8543
 
8544
+ /**
8545
+ * Configuration for package pricing
8546
+ */
6947
8547
  export interface PackageConfig {
6948
8548
  /**
6949
8549
  * A currency amount to rate usage by
@@ -7282,14 +8882,14 @@ export interface PlanPhaseUsageDiscountAdjustment {
7282
8882
  */
7283
8883
  export type Price =
7284
8884
  | Price.UnitPrice
7285
- | Price.PackagePrice
7286
- | Price.MatrixPrice
7287
8885
  | Price.TieredPrice
7288
8886
  | Price.BulkPrice
8887
+ | Price.PackagePrice
8888
+ | Price.MatrixPrice
7289
8889
  | Price.ThresholdTotalAmountPrice
7290
8890
  | Price.TieredPackagePrice
7291
- | Price.GroupedTieredPrice
7292
8891
  | Price.TieredWithMinimumPrice
8892
+ | Price.GroupedTieredPrice
7293
8893
  | Price.TieredPackageWithMinimumPrice
7294
8894
  | Price.PackageWithAllocationPrice
7295
8895
  | Price.UnitWithPercentPrice
@@ -7297,16 +8897,16 @@ export type Price =
7297
8897
  | Price.TieredWithProrationPrice
7298
8898
  | Price.UnitWithProrationPrice
7299
8899
  | Price.GroupedAllocationPrice
8900
+ | Price.BulkWithProrationPrice
7300
8901
  | Price.GroupedWithProratedMinimumPrice
7301
8902
  | Price.GroupedWithMeteredMinimumPrice
8903
+ | Price.GroupedWithMinMaxThresholdsPrice
7302
8904
  | Price.MatrixWithDisplayNamePrice
7303
- | Price.BulkWithProrationPrice
7304
8905
  | Price.GroupedTieredPackagePrice
7305
8906
  | Price.MaxGroupTieredPackagePrice
7306
8907
  | Price.ScalableMatrixWithUnitPricingPrice
7307
8908
  | Price.ScalableMatrixWithTieredPricingPrice
7308
8909
  | Price.CumulativeGroupedBulkPrice
7309
- | Price.GroupedWithMinMaxThresholdsPrice
7310
8910
  | Price.MinimumCompositePrice;
7311
8911
 
7312
8912
  export namespace Price {
@@ -7372,13 +8972,16 @@ export namespace Price {
7372
8972
  */
7373
8973
  minimum_amount: string | null;
7374
8974
 
8975
+ /**
8976
+ * The pricing model type
8977
+ */
7375
8978
  model_type: 'unit';
7376
8979
 
7377
8980
  name: string;
7378
8981
 
7379
8982
  plan_phase_order: number | null;
7380
8983
 
7381
- price_type: 'usage_price' | 'fixed_price';
8984
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7382
8985
 
7383
8986
  /**
7384
8987
  * The price id this price replaces. This price will take the place of the replaced
@@ -7386,12 +8989,15 @@ export namespace Price {
7386
8989
  */
7387
8990
  replaces_price_id: string | null;
7388
8991
 
8992
+ /**
8993
+ * Configuration for unit pricing
8994
+ */
7389
8995
  unit_config: Shared.UnitConfig;
7390
8996
 
7391
8997
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7392
8998
  }
7393
8999
 
7394
- export interface PackagePrice {
9000
+ export interface TieredPrice {
7395
9001
  id: string;
7396
9002
 
7397
9003
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7453,15 +9059,16 @@ export namespace Price {
7453
9059
  */
7454
9060
  minimum_amount: string | null;
7455
9061
 
7456
- model_type: 'package';
9062
+ /**
9063
+ * The pricing model type
9064
+ */
9065
+ model_type: 'tiered';
7457
9066
 
7458
9067
  name: string;
7459
9068
 
7460
- package_config: Shared.PackageConfig;
7461
-
7462
9069
  plan_phase_order: number | null;
7463
9070
 
7464
- price_type: 'usage_price' | 'fixed_price';
9071
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7465
9072
 
7466
9073
  /**
7467
9074
  * The price id this price replaces. This price will take the place of the replaced
@@ -7469,16 +9076,26 @@ export namespace Price {
7469
9076
  */
7470
9077
  replaces_price_id: string | null;
7471
9078
 
9079
+ /**
9080
+ * Configuration for tiered pricing
9081
+ */
9082
+ tiered_config: Shared.TieredConfig;
9083
+
7472
9084
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7473
9085
  }
7474
9086
 
7475
- export interface MatrixPrice {
9087
+ export interface BulkPrice {
7476
9088
  id: string;
7477
9089
 
7478
9090
  billable_metric: Shared.BillableMetricTiny | null;
7479
9091
 
7480
9092
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7481
9093
 
9094
+ /**
9095
+ * Configuration for bulk pricing
9096
+ */
9097
+ bulk_config: Shared.BulkConfig;
9098
+
7482
9099
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
7483
9100
 
7484
9101
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -7506,8 +9123,6 @@ export namespace Price {
7506
9123
 
7507
9124
  item: Shared.ItemSlim;
7508
9125
 
7509
- matrix_config: Shared.MatrixConfig;
7510
-
7511
9126
  /**
7512
9127
  * @deprecated
7513
9128
  */
@@ -7536,13 +9151,16 @@ export namespace Price {
7536
9151
  */
7537
9152
  minimum_amount: string | null;
7538
9153
 
7539
- model_type: 'matrix';
9154
+ /**
9155
+ * The pricing model type
9156
+ */
9157
+ model_type: 'bulk';
7540
9158
 
7541
9159
  name: string;
7542
9160
 
7543
9161
  plan_phase_order: number | null;
7544
9162
 
7545
- price_type: 'usage_price' | 'fixed_price';
9163
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7546
9164
 
7547
9165
  /**
7548
9166
  * The price id this price replaces. This price will take the place of the replaced
@@ -7553,7 +9171,7 @@ export namespace Price {
7553
9171
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7554
9172
  }
7555
9173
 
7556
- export interface TieredPrice {
9174
+ export interface PackagePrice {
7557
9175
  id: string;
7558
9176
 
7559
9177
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7615,13 +9233,21 @@ export namespace Price {
7615
9233
  */
7616
9234
  minimum_amount: string | null;
7617
9235
 
7618
- model_type: 'tiered';
9236
+ /**
9237
+ * The pricing model type
9238
+ */
9239
+ model_type: 'package';
7619
9240
 
7620
9241
  name: string;
7621
9242
 
9243
+ /**
9244
+ * Configuration for package pricing
9245
+ */
9246
+ package_config: Shared.PackageConfig;
9247
+
7622
9248
  plan_phase_order: number | null;
7623
9249
 
7624
- price_type: 'usage_price' | 'fixed_price';
9250
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7625
9251
 
7626
9252
  /**
7627
9253
  * The price id this price replaces. This price will take the place of the replaced
@@ -7629,20 +9255,16 @@ export namespace Price {
7629
9255
  */
7630
9256
  replaces_price_id: string | null;
7631
9257
 
7632
- tiered_config: Shared.TieredConfig;
7633
-
7634
9258
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7635
9259
  }
7636
9260
 
7637
- export interface BulkPrice {
9261
+ export interface MatrixPrice {
7638
9262
  id: string;
7639
9263
 
7640
9264
  billable_metric: Shared.BillableMetricTiny | null;
7641
9265
 
7642
9266
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7643
9267
 
7644
- bulk_config: Shared.BulkConfig;
7645
-
7646
9268
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
7647
9269
 
7648
9270
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -7670,6 +9292,11 @@ export namespace Price {
7670
9292
 
7671
9293
  item: Shared.ItemSlim;
7672
9294
 
9295
+ /**
9296
+ * Configuration for matrix pricing
9297
+ */
9298
+ matrix_config: Shared.MatrixConfig;
9299
+
7673
9300
  /**
7674
9301
  * @deprecated
7675
9302
  */
@@ -7698,13 +9325,16 @@ export namespace Price {
7698
9325
  */
7699
9326
  minimum_amount: string | null;
7700
9327
 
7701
- model_type: 'bulk';
9328
+ /**
9329
+ * The pricing model type
9330
+ */
9331
+ model_type: 'matrix';
7702
9332
 
7703
9333
  name: string;
7704
9334
 
7705
9335
  plan_phase_order: number | null;
7706
9336
 
7707
- price_type: 'usage_price' | 'fixed_price';
9337
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7708
9338
 
7709
9339
  /**
7710
9340
  * The price id this price replaces. This price will take the place of the replaced
@@ -7777,13 +9407,16 @@ export namespace Price {
7777
9407
  */
7778
9408
  minimum_amount: string | null;
7779
9409
 
9410
+ /**
9411
+ * The pricing model type
9412
+ */
7780
9413
  model_type: 'threshold_total_amount';
7781
9414
 
7782
9415
  name: string;
7783
9416
 
7784
9417
  plan_phase_order: number | null;
7785
9418
 
7786
- price_type: 'usage_price' | 'fixed_price';
9419
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7787
9420
 
7788
9421
  /**
7789
9422
  * The price id this price replaces. This price will take the place of the replaced
@@ -7791,11 +9424,49 @@ export namespace Price {
7791
9424
  */
7792
9425
  replaces_price_id: string | null;
7793
9426
 
7794
- threshold_total_amount_config: { [key: string]: unknown };
9427
+ /**
9428
+ * Configuration for threshold_total_amount pricing
9429
+ */
9430
+ threshold_total_amount_config: ThresholdTotalAmountPrice.ThresholdTotalAmountConfig;
7795
9431
 
7796
9432
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7797
9433
  }
7798
9434
 
9435
+ export namespace ThresholdTotalAmountPrice {
9436
+ /**
9437
+ * Configuration for threshold_total_amount pricing
9438
+ */
9439
+ export interface ThresholdTotalAmountConfig {
9440
+ /**
9441
+ * When the quantity consumed passes a provided threshold, the configured total
9442
+ * will be charged
9443
+ */
9444
+ consumption_table: Array<ThresholdTotalAmountConfig.ConsumptionTable>;
9445
+
9446
+ /**
9447
+ * If true, the unit price will be prorated to the billing period
9448
+ */
9449
+ prorate?: boolean | null;
9450
+ }
9451
+
9452
+ export namespace ThresholdTotalAmountConfig {
9453
+ /**
9454
+ * Configuration for a single threshold
9455
+ */
9456
+ export interface ConsumptionTable {
9457
+ /**
9458
+ * Quantity threshold
9459
+ */
9460
+ threshold: string;
9461
+
9462
+ /**
9463
+ * Total amount for this threshold
9464
+ */
9465
+ total_amount: string;
9466
+ }
9467
+ }
9468
+ }
9469
+
7799
9470
  export interface TieredPackagePrice {
7800
9471
  id: string;
7801
9472
 
@@ -7858,13 +9529,16 @@ export namespace Price {
7858
9529
  */
7859
9530
  minimum_amount: string | null;
7860
9531
 
9532
+ /**
9533
+ * The pricing model type
9534
+ */
7861
9535
  model_type: 'tiered_package';
7862
9536
 
7863
9537
  name: string;
7864
9538
 
7865
9539
  plan_phase_order: number | null;
7866
9540
 
7867
- price_type: 'usage_price' | 'fixed_price';
9541
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7868
9542
 
7869
9543
  /**
7870
9544
  * The price id this price replaces. This price will take the place of the replaced
@@ -7872,12 +9546,50 @@ export namespace Price {
7872
9546
  */
7873
9547
  replaces_price_id: string | null;
7874
9548
 
7875
- tiered_package_config: { [key: string]: unknown };
9549
+ /**
9550
+ * Configuration for tiered_package pricing
9551
+ */
9552
+ tiered_package_config: TieredPackagePrice.TieredPackageConfig;
7876
9553
 
7877
9554
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7878
9555
  }
7879
9556
 
7880
- export interface GroupedTieredPrice {
9557
+ export namespace TieredPackagePrice {
9558
+ /**
9559
+ * Configuration for tiered_package pricing
9560
+ */
9561
+ export interface TieredPackageConfig {
9562
+ /**
9563
+ * Package size
9564
+ */
9565
+ package_size: string;
9566
+
9567
+ /**
9568
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9569
+ * are defined using exclusive lower bounds.
9570
+ */
9571
+ tiers: Array<TieredPackageConfig.Tier>;
9572
+ }
9573
+
9574
+ export namespace TieredPackageConfig {
9575
+ /**
9576
+ * Configuration for a single tier with business logic
9577
+ */
9578
+ export interface Tier {
9579
+ /**
9580
+ * Price per package
9581
+ */
9582
+ per_unit: string;
9583
+
9584
+ /**
9585
+ * Tier lower bound
9586
+ */
9587
+ tier_lower_bound: string;
9588
+ }
9589
+ }
9590
+ }
9591
+
9592
+ export interface TieredWithMinimumPrice {
7881
9593
  id: string;
7882
9594
 
7883
9595
  billable_metric: Shared.BillableMetricTiny | null;
@@ -7907,8 +9619,6 @@ export namespace Price {
7907
9619
 
7908
9620
  fixed_price_quantity: number | null;
7909
9621
 
7910
- grouped_tiered_config: { [key: string]: unknown };
7911
-
7912
9622
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7913
9623
 
7914
9624
  item: Shared.ItemSlim;
@@ -7941,13 +9651,16 @@ export namespace Price {
7941
9651
  */
7942
9652
  minimum_amount: string | null;
7943
9653
 
7944
- model_type: 'grouped_tiered';
9654
+ /**
9655
+ * The pricing model type
9656
+ */
9657
+ model_type: 'tiered_with_minimum';
7945
9658
 
7946
9659
  name: string;
7947
9660
 
7948
9661
  plan_phase_order: number | null;
7949
9662
 
7950
- price_type: 'usage_price' | 'fixed_price';
9663
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
7951
9664
 
7952
9665
  /**
7953
9666
  * The price id this price replaces. This price will take the place of the replaced
@@ -7955,13 +9668,63 @@ export namespace Price {
7955
9668
  */
7956
9669
  replaces_price_id: string | null;
7957
9670
 
9671
+ /**
9672
+ * Configuration for tiered_with_minimum pricing
9673
+ */
9674
+ tiered_with_minimum_config: TieredWithMinimumPrice.TieredWithMinimumConfig;
9675
+
7958
9676
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
7959
9677
  }
7960
9678
 
7961
- export interface TieredWithMinimumPrice {
7962
- id: string;
9679
+ export namespace TieredWithMinimumPrice {
9680
+ /**
9681
+ * Configuration for tiered_with_minimum pricing
9682
+ */
9683
+ export interface TieredWithMinimumConfig {
9684
+ /**
9685
+ * Tiered pricing with a minimum amount dependent on the volume tier. Tiers are
9686
+ * defined using exclusive lower bounds.
9687
+ */
9688
+ tiers: Array<TieredWithMinimumConfig.Tier>;
7963
9689
 
7964
- billable_metric: Shared.BillableMetricTiny | null;
9690
+ /**
9691
+ * If true, tiers with an accrued amount of 0 will not be included in the rating.
9692
+ */
9693
+ hide_zero_amount_tiers?: boolean;
9694
+
9695
+ /**
9696
+ * If true, the unit price will be prorated to the billing period
9697
+ */
9698
+ prorate?: boolean;
9699
+ }
9700
+
9701
+ export namespace TieredWithMinimumConfig {
9702
+ /**
9703
+ * Configuration for a single tier
9704
+ */
9705
+ export interface Tier {
9706
+ /**
9707
+ * Minimum amount
9708
+ */
9709
+ minimum_amount: string;
9710
+
9711
+ /**
9712
+ * Tier lower bound
9713
+ */
9714
+ tier_lower_bound: string;
9715
+
9716
+ /**
9717
+ * Per unit amount
9718
+ */
9719
+ unit_amount: string;
9720
+ }
9721
+ }
9722
+ }
9723
+
9724
+ export interface GroupedTieredPrice {
9725
+ id: string;
9726
+
9727
+ billable_metric: Shared.BillableMetricTiny | null;
7965
9728
 
7966
9729
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
7967
9730
 
@@ -7988,6 +9751,11 @@ export namespace Price {
7988
9751
 
7989
9752
  fixed_price_quantity: number | null;
7990
9753
 
9754
+ /**
9755
+ * Configuration for grouped_tiered pricing
9756
+ */
9757
+ grouped_tiered_config: GroupedTieredPrice.GroupedTieredConfig;
9758
+
7991
9759
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
7992
9760
 
7993
9761
  item: Shared.ItemSlim;
@@ -8020,13 +9788,16 @@ export namespace Price {
8020
9788
  */
8021
9789
  minimum_amount: string | null;
8022
9790
 
8023
- model_type: 'tiered_with_minimum';
9791
+ /**
9792
+ * The pricing model type
9793
+ */
9794
+ model_type: 'grouped_tiered';
8024
9795
 
8025
9796
  name: string;
8026
9797
 
8027
9798
  plan_phase_order: number | null;
8028
9799
 
8029
- price_type: 'usage_price' | 'fixed_price';
9800
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8030
9801
 
8031
9802
  /**
8032
9803
  * The price id this price replaces. This price will take the place of the replaced
@@ -8034,11 +9805,44 @@ export namespace Price {
8034
9805
  */
8035
9806
  replaces_price_id: string | null;
8036
9807
 
8037
- tiered_with_minimum_config: { [key: string]: unknown };
8038
-
8039
9808
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8040
9809
  }
8041
9810
 
9811
+ export namespace GroupedTieredPrice {
9812
+ /**
9813
+ * Configuration for grouped_tiered pricing
9814
+ */
9815
+ export interface GroupedTieredConfig {
9816
+ /**
9817
+ * The billable metric property used to group before tiering
9818
+ */
9819
+ grouping_key: string;
9820
+
9821
+ /**
9822
+ * Apply tiered pricing to each segment generated after grouping with the provided
9823
+ * key
9824
+ */
9825
+ tiers: Array<GroupedTieredConfig.Tier>;
9826
+ }
9827
+
9828
+ export namespace GroupedTieredConfig {
9829
+ /**
9830
+ * Configuration for a single tier
9831
+ */
9832
+ export interface Tier {
9833
+ /**
9834
+ * Tier lower bound
9835
+ */
9836
+ tier_lower_bound: string;
9837
+
9838
+ /**
9839
+ * Per unit amount
9840
+ */
9841
+ unit_amount: string;
9842
+ }
9843
+ }
9844
+ }
9845
+
8042
9846
  export interface TieredPackageWithMinimumPrice {
8043
9847
  id: string;
8044
9848
 
@@ -8101,13 +9905,16 @@ export namespace Price {
8101
9905
  */
8102
9906
  minimum_amount: string | null;
8103
9907
 
9908
+ /**
9909
+ * The pricing model type
9910
+ */
8104
9911
  model_type: 'tiered_package_with_minimum';
8105
9912
 
8106
9913
  name: string;
8107
9914
 
8108
9915
  plan_phase_order: number | null;
8109
9916
 
8110
- price_type: 'usage_price' | 'fixed_price';
9917
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8111
9918
 
8112
9919
  /**
8113
9920
  * The price id this price replaces. This price will take the place of the replaced
@@ -8115,11 +9922,54 @@ export namespace Price {
8115
9922
  */
8116
9923
  replaces_price_id: string | null;
8117
9924
 
8118
- tiered_package_with_minimum_config: { [key: string]: unknown };
9925
+ /**
9926
+ * Configuration for tiered_package_with_minimum pricing
9927
+ */
9928
+ tiered_package_with_minimum_config: TieredPackageWithMinimumPrice.TieredPackageWithMinimumConfig;
8119
9929
 
8120
9930
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8121
9931
  }
8122
9932
 
9933
+ export namespace TieredPackageWithMinimumPrice {
9934
+ /**
9935
+ * Configuration for tiered_package_with_minimum pricing
9936
+ */
9937
+ export interface TieredPackageWithMinimumConfig {
9938
+ /**
9939
+ * Package size
9940
+ */
9941
+ package_size: number;
9942
+
9943
+ /**
9944
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
9945
+ * are defined using exclusive lower bounds.
9946
+ */
9947
+ tiers: Array<TieredPackageWithMinimumConfig.Tier>;
9948
+ }
9949
+
9950
+ export namespace TieredPackageWithMinimumConfig {
9951
+ /**
9952
+ * Configuration for a single tier
9953
+ */
9954
+ export interface Tier {
9955
+ /**
9956
+ * Minimum amount
9957
+ */
9958
+ minimum_amount: string;
9959
+
9960
+ /**
9961
+ * Price per package
9962
+ */
9963
+ per_unit: string;
9964
+
9965
+ /**
9966
+ * Tier lower bound
9967
+ */
9968
+ tier_lower_bound: string;
9969
+ }
9970
+ }
9971
+ }
9972
+
8123
9973
  export interface PackageWithAllocationPrice {
8124
9974
  id: string;
8125
9975
 
@@ -8182,15 +10032,21 @@ export namespace Price {
8182
10032
  */
8183
10033
  minimum_amount: string | null;
8184
10034
 
10035
+ /**
10036
+ * The pricing model type
10037
+ */
8185
10038
  model_type: 'package_with_allocation';
8186
10039
 
8187
10040
  name: string;
8188
10041
 
8189
- package_with_allocation_config: { [key: string]: unknown };
10042
+ /**
10043
+ * Configuration for package_with_allocation pricing
10044
+ */
10045
+ package_with_allocation_config: PackageWithAllocationPrice.PackageWithAllocationConfig;
8190
10046
 
8191
10047
  plan_phase_order: number | null;
8192
10048
 
8193
- price_type: 'usage_price' | 'fixed_price';
10049
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8194
10050
 
8195
10051
  /**
8196
10052
  * The price id this price replaces. This price will take the place of the replaced
@@ -8201,6 +10057,28 @@ export namespace Price {
8201
10057
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8202
10058
  }
8203
10059
 
10060
+ export namespace PackageWithAllocationPrice {
10061
+ /**
10062
+ * Configuration for package_with_allocation pricing
10063
+ */
10064
+ export interface PackageWithAllocationConfig {
10065
+ /**
10066
+ * Usage allocation
10067
+ */
10068
+ allocation: string;
10069
+
10070
+ /**
10071
+ * Price per package
10072
+ */
10073
+ package_amount: string;
10074
+
10075
+ /**
10076
+ * Package size
10077
+ */
10078
+ package_size: string;
10079
+ }
10080
+ }
10081
+
8204
10082
  export interface UnitWithPercentPrice {
8205
10083
  id: string;
8206
10084
 
@@ -8263,13 +10141,16 @@ export namespace Price {
8263
10141
  */
8264
10142
  minimum_amount: string | null;
8265
10143
 
10144
+ /**
10145
+ * The pricing model type
10146
+ */
8266
10147
  model_type: 'unit_with_percent';
8267
10148
 
8268
10149
  name: string;
8269
10150
 
8270
10151
  plan_phase_order: number | null;
8271
10152
 
8272
- price_type: 'usage_price' | 'fixed_price';
10153
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8273
10154
 
8274
10155
  /**
8275
10156
  * The price id this price replaces. This price will take the place of the replaced
@@ -8277,11 +10158,31 @@ export namespace Price {
8277
10158
  */
8278
10159
  replaces_price_id: string | null;
8279
10160
 
8280
- unit_with_percent_config: { [key: string]: unknown };
10161
+ /**
10162
+ * Configuration for unit_with_percent pricing
10163
+ */
10164
+ unit_with_percent_config: UnitWithPercentPrice.UnitWithPercentConfig;
8281
10165
 
8282
10166
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8283
10167
  }
8284
10168
 
10169
+ export namespace UnitWithPercentPrice {
10170
+ /**
10171
+ * Configuration for unit_with_percent pricing
10172
+ */
10173
+ export interface UnitWithPercentConfig {
10174
+ /**
10175
+ * What percent, out of 100, of the calculated total to charge
10176
+ */
10177
+ percent: string;
10178
+
10179
+ /**
10180
+ * Rate per unit of usage
10181
+ */
10182
+ unit_amount: string;
10183
+ }
10184
+ }
10185
+
8285
10186
  export interface MatrixWithAllocationPrice {
8286
10187
  id: string;
8287
10188
 
@@ -8316,6 +10217,9 @@ export namespace Price {
8316
10217
 
8317
10218
  item: Shared.ItemSlim;
8318
10219
 
10220
+ /**
10221
+ * Configuration for matrix_with_allocation pricing
10222
+ */
8319
10223
  matrix_with_allocation_config: Shared.MatrixWithAllocationConfig;
8320
10224
 
8321
10225
  /**
@@ -8346,13 +10250,16 @@ export namespace Price {
8346
10250
  */
8347
10251
  minimum_amount: string | null;
8348
10252
 
10253
+ /**
10254
+ * The pricing model type
10255
+ */
8349
10256
  model_type: 'matrix_with_allocation';
8350
10257
 
8351
10258
  name: string;
8352
10259
 
8353
10260
  plan_phase_order: number | null;
8354
10261
 
8355
- price_type: 'usage_price' | 'fixed_price';
10262
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8356
10263
 
8357
10264
  /**
8358
10265
  * The price id this price replaces. This price will take the place of the replaced
@@ -8425,13 +10332,16 @@ export namespace Price {
8425
10332
  */
8426
10333
  minimum_amount: string | null;
8427
10334
 
10335
+ /**
10336
+ * The pricing model type
10337
+ */
8428
10338
  model_type: 'tiered_with_proration';
8429
10339
 
8430
10340
  name: string;
8431
10341
 
8432
10342
  plan_phase_order: number | null;
8433
10343
 
8434
- price_type: 'usage_price' | 'fixed_price';
10344
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8435
10345
 
8436
10346
  /**
8437
10347
  * The price id this price replaces. This price will take the place of the replaced
@@ -8439,11 +10349,44 @@ export namespace Price {
8439
10349
  */
8440
10350
  replaces_price_id: string | null;
8441
10351
 
8442
- tiered_with_proration_config: { [key: string]: unknown };
10352
+ /**
10353
+ * Configuration for tiered_with_proration pricing
10354
+ */
10355
+ tiered_with_proration_config: TieredWithProrationPrice.TieredWithProrationConfig;
8443
10356
 
8444
10357
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8445
10358
  }
8446
10359
 
10360
+ export namespace TieredWithProrationPrice {
10361
+ /**
10362
+ * Configuration for tiered_with_proration pricing
10363
+ */
10364
+ export interface TieredWithProrationConfig {
10365
+ /**
10366
+ * Tiers for rating based on total usage quantities into the specified tier with
10367
+ * proration
10368
+ */
10369
+ tiers: Array<TieredWithProrationConfig.Tier>;
10370
+ }
10371
+
10372
+ export namespace TieredWithProrationConfig {
10373
+ /**
10374
+ * Configuration for a single tiered with proration tier
10375
+ */
10376
+ export interface Tier {
10377
+ /**
10378
+ * Inclusive tier starting value
10379
+ */
10380
+ tier_lower_bound: string;
10381
+
10382
+ /**
10383
+ * Amount per unit
10384
+ */
10385
+ unit_amount: string;
10386
+ }
10387
+ }
10388
+ }
10389
+
8447
10390
  export interface UnitWithProrationPrice {
8448
10391
  id: string;
8449
10392
 
@@ -8506,13 +10449,16 @@ export namespace Price {
8506
10449
  */
8507
10450
  minimum_amount: string | null;
8508
10451
 
10452
+ /**
10453
+ * The pricing model type
10454
+ */
8509
10455
  model_type: 'unit_with_proration';
8510
10456
 
8511
10457
  name: string;
8512
10458
 
8513
10459
  plan_phase_order: number | null;
8514
10460
 
8515
- price_type: 'usage_price' | 'fixed_price';
10461
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8516
10462
 
8517
10463
  /**
8518
10464
  * The price id this price replaces. This price will take the place of the replaced
@@ -8520,11 +10466,26 @@ export namespace Price {
8520
10466
  */
8521
10467
  replaces_price_id: string | null;
8522
10468
 
8523
- unit_with_proration_config: { [key: string]: unknown };
10469
+ /**
10470
+ * Configuration for unit_with_proration pricing
10471
+ */
10472
+ unit_with_proration_config: UnitWithProrationPrice.UnitWithProrationConfig;
8524
10473
 
8525
10474
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8526
10475
  }
8527
10476
 
10477
+ export namespace UnitWithProrationPrice {
10478
+ /**
10479
+ * Configuration for unit_with_proration pricing
10480
+ */
10481
+ export interface UnitWithProrationConfig {
10482
+ /**
10483
+ * Rate per unit of usage
10484
+ */
10485
+ unit_amount: string;
10486
+ }
10487
+ }
10488
+
8528
10489
  export interface GroupedAllocationPrice {
8529
10490
  id: string;
8530
10491
 
@@ -8555,7 +10516,10 @@ export namespace Price {
8555
10516
 
8556
10517
  fixed_price_quantity: number | null;
8557
10518
 
8558
- grouped_allocation_config: { [key: string]: unknown };
10519
+ /**
10520
+ * Configuration for grouped_allocation pricing
10521
+ */
10522
+ grouped_allocation_config: GroupedAllocationPrice.GroupedAllocationConfig;
8559
10523
 
8560
10524
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8561
10525
 
@@ -8589,13 +10553,16 @@ export namespace Price {
8589
10553
  */
8590
10554
  minimum_amount: string | null;
8591
10555
 
10556
+ /**
10557
+ * The pricing model type
10558
+ */
8592
10559
  model_type: 'grouped_allocation';
8593
10560
 
8594
10561
  name: string;
8595
10562
 
8596
10563
  plan_phase_order: number | null;
8597
10564
 
8598
- price_type: 'usage_price' | 'fixed_price';
10565
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8599
10566
 
8600
10567
  /**
8601
10568
  * The price id this price replaces. This price will take the place of the replaced
@@ -8606,13 +10573,40 @@ export namespace Price {
8606
10573
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8607
10574
  }
8608
10575
 
8609
- export interface GroupedWithProratedMinimumPrice {
10576
+ export namespace GroupedAllocationPrice {
10577
+ /**
10578
+ * Configuration for grouped_allocation pricing
10579
+ */
10580
+ export interface GroupedAllocationConfig {
10581
+ /**
10582
+ * Usage allocation per group
10583
+ */
10584
+ allocation: string;
10585
+
10586
+ /**
10587
+ * How to determine the groups that should each be allocated some quantity
10588
+ */
10589
+ grouping_key: string;
10590
+
10591
+ /**
10592
+ * Unit rate for post-allocation
10593
+ */
10594
+ overage_unit_rate: string;
10595
+ }
10596
+ }
10597
+
10598
+ export interface BulkWithProrationPrice {
8610
10599
  id: string;
8611
10600
 
8612
10601
  billable_metric: Shared.BillableMetricTiny | null;
8613
10602
 
8614
10603
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8615
10604
 
10605
+ /**
10606
+ * Configuration for bulk_with_proration pricing
10607
+ */
10608
+ bulk_with_proration_config: BulkWithProrationPrice.BulkWithProrationConfig;
10609
+
8616
10610
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
8617
10611
 
8618
10612
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -8636,8 +10630,6 @@ export namespace Price {
8636
10630
 
8637
10631
  fixed_price_quantity: number | null;
8638
10632
 
8639
- grouped_with_prorated_minimum_config: { [key: string]: unknown };
8640
-
8641
10633
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8642
10634
 
8643
10635
  item: Shared.ItemSlim;
@@ -8670,13 +10662,16 @@ export namespace Price {
8670
10662
  */
8671
10663
  minimum_amount: string | null;
8672
10664
 
8673
- model_type: 'grouped_with_prorated_minimum';
10665
+ /**
10666
+ * The pricing model type
10667
+ */
10668
+ model_type: 'bulk_with_proration';
8674
10669
 
8675
10670
  name: string;
8676
10671
 
8677
10672
  plan_phase_order: number | null;
8678
10673
 
8679
- price_type: 'usage_price' | 'fixed_price';
10674
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8680
10675
 
8681
10676
  /**
8682
10677
  * The price id this price replaces. This price will take the place of the replaced
@@ -8687,7 +10682,36 @@ export namespace Price {
8687
10682
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8688
10683
  }
8689
10684
 
8690
- export interface GroupedWithMeteredMinimumPrice {
10685
+ export namespace BulkWithProrationPrice {
10686
+ /**
10687
+ * Configuration for bulk_with_proration pricing
10688
+ */
10689
+ export interface BulkWithProrationConfig {
10690
+ /**
10691
+ * Bulk tiers for rating based on total usage volume
10692
+ */
10693
+ tiers: Array<BulkWithProrationConfig.Tier>;
10694
+ }
10695
+
10696
+ export namespace BulkWithProrationConfig {
10697
+ /**
10698
+ * Configuration for a single bulk pricing tier with proration
10699
+ */
10700
+ export interface Tier {
10701
+ /**
10702
+ * Cost per unit
10703
+ */
10704
+ unit_amount: string;
10705
+
10706
+ /**
10707
+ * The lower bound for this tier
10708
+ */
10709
+ tier_lower_bound?: string | null;
10710
+ }
10711
+ }
10712
+ }
10713
+
10714
+ export interface GroupedWithProratedMinimumPrice {
8691
10715
  id: string;
8692
10716
 
8693
10717
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8717,7 +10741,10 @@ export namespace Price {
8717
10741
 
8718
10742
  fixed_price_quantity: number | null;
8719
10743
 
8720
- grouped_with_metered_minimum_config: { [key: string]: unknown };
10744
+ /**
10745
+ * Configuration for grouped_with_prorated_minimum pricing
10746
+ */
10747
+ grouped_with_prorated_minimum_config: GroupedWithProratedMinimumPrice.GroupedWithProratedMinimumConfig;
8721
10748
 
8722
10749
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8723
10750
 
@@ -8751,13 +10778,16 @@ export namespace Price {
8751
10778
  */
8752
10779
  minimum_amount: string | null;
8753
10780
 
8754
- model_type: 'grouped_with_metered_minimum';
10781
+ /**
10782
+ * The pricing model type
10783
+ */
10784
+ model_type: 'grouped_with_prorated_minimum';
8755
10785
 
8756
10786
  name: string;
8757
10787
 
8758
10788
  plan_phase_order: number | null;
8759
10789
 
8760
- price_type: 'usage_price' | 'fixed_price';
10790
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8761
10791
 
8762
10792
  /**
8763
10793
  * The price id this price replaces. This price will take the place of the replaced
@@ -8768,7 +10798,29 @@ export namespace Price {
8768
10798
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8769
10799
  }
8770
10800
 
8771
- export interface MatrixWithDisplayNamePrice {
10801
+ export namespace GroupedWithProratedMinimumPrice {
10802
+ /**
10803
+ * Configuration for grouped_with_prorated_minimum pricing
10804
+ */
10805
+ export interface GroupedWithProratedMinimumConfig {
10806
+ /**
10807
+ * How to determine the groups that should each have a minimum
10808
+ */
10809
+ grouping_key: string;
10810
+
10811
+ /**
10812
+ * The minimum amount to charge per group
10813
+ */
10814
+ minimum: string;
10815
+
10816
+ /**
10817
+ * The amount to charge per unit
10818
+ */
10819
+ unit_rate: string;
10820
+ }
10821
+ }
10822
+
10823
+ export interface GroupedWithMeteredMinimumPrice {
8772
10824
  id: string;
8773
10825
 
8774
10826
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8798,12 +10850,15 @@ export namespace Price {
8798
10850
 
8799
10851
  fixed_price_quantity: number | null;
8800
10852
 
10853
+ /**
10854
+ * Configuration for grouped_with_metered_minimum pricing
10855
+ */
10856
+ grouped_with_metered_minimum_config: GroupedWithMeteredMinimumPrice.GroupedWithMeteredMinimumConfig;
10857
+
8801
10858
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8802
10859
 
8803
10860
  item: Shared.ItemSlim;
8804
10861
 
8805
- matrix_with_display_name_config: { [key: string]: unknown };
8806
-
8807
10862
  /**
8808
10863
  * @deprecated
8809
10864
  */
@@ -8832,13 +10887,16 @@ export namespace Price {
8832
10887
  */
8833
10888
  minimum_amount: string | null;
8834
10889
 
8835
- model_type: 'matrix_with_display_name';
10890
+ /**
10891
+ * The pricing model type
10892
+ */
10893
+ model_type: 'grouped_with_metered_minimum';
8836
10894
 
8837
10895
  name: string;
8838
10896
 
8839
10897
  plan_phase_order: number | null;
8840
10898
 
8841
- price_type: 'usage_price' | 'fixed_price';
10899
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8842
10900
 
8843
10901
  /**
8844
10902
  * The price id this price replaces. This price will take the place of the replaced
@@ -8849,15 +10907,84 @@ export namespace Price {
8849
10907
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8850
10908
  }
8851
10909
 
8852
- export interface BulkWithProrationPrice {
10910
+ export namespace GroupedWithMeteredMinimumPrice {
10911
+ /**
10912
+ * Configuration for grouped_with_metered_minimum pricing
10913
+ */
10914
+ export interface GroupedWithMeteredMinimumConfig {
10915
+ /**
10916
+ * Used to partition the usage into groups. The minimum amount is applied to each
10917
+ * group.
10918
+ */
10919
+ grouping_key: string;
10920
+
10921
+ /**
10922
+ * The minimum amount to charge per group per unit
10923
+ */
10924
+ minimum_unit_amount: string;
10925
+
10926
+ /**
10927
+ * Used to determine the unit rate
10928
+ */
10929
+ pricing_key: string;
10930
+
10931
+ /**
10932
+ * Scale the unit rates by the scaling factor.
10933
+ */
10934
+ scaling_factors: Array<GroupedWithMeteredMinimumConfig.ScalingFactor>;
10935
+
10936
+ /**
10937
+ * Used to determine the unit rate scaling factor
10938
+ */
10939
+ scaling_key: string;
10940
+
10941
+ /**
10942
+ * Apply per unit pricing to each pricing value. The minimum amount is applied any
10943
+ * unmatched usage.
10944
+ */
10945
+ unit_amounts: Array<GroupedWithMeteredMinimumConfig.UnitAmount>;
10946
+ }
10947
+
10948
+ export namespace GroupedWithMeteredMinimumConfig {
10949
+ /**
10950
+ * Configuration for a scaling factor
10951
+ */
10952
+ export interface ScalingFactor {
10953
+ /**
10954
+ * Scaling factor
10955
+ */
10956
+ scaling_factor: string;
10957
+
10958
+ /**
10959
+ * Scaling value
10960
+ */
10961
+ scaling_value: string;
10962
+ }
10963
+
10964
+ /**
10965
+ * Configuration for a unit amount
10966
+ */
10967
+ export interface UnitAmount {
10968
+ /**
10969
+ * Pricing value
10970
+ */
10971
+ pricing_value: string;
10972
+
10973
+ /**
10974
+ * Per unit amount
10975
+ */
10976
+ unit_amount: string;
10977
+ }
10978
+ }
10979
+ }
10980
+
10981
+ export interface GroupedWithMinMaxThresholdsPrice {
8853
10982
  id: string;
8854
10983
 
8855
10984
  billable_metric: Shared.BillableMetricTiny | null;
8856
10985
 
8857
10986
  billing_cycle_configuration: Shared.BillingCycleConfiguration;
8858
10987
 
8859
- bulk_with_proration_config: { [key: string]: unknown };
8860
-
8861
10988
  cadence: 'one_time' | 'monthly' | 'quarterly' | 'semi_annual' | 'annual' | 'custom';
8862
10989
 
8863
10990
  composite_price_filters: Array<Shared.TransformPriceFilter> | null;
@@ -8881,6 +11008,11 @@ export namespace Price {
8881
11008
 
8882
11009
  fixed_price_quantity: number | null;
8883
11010
 
11011
+ /**
11012
+ * Configuration for grouped_with_min_max_thresholds pricing
11013
+ */
11014
+ grouped_with_min_max_thresholds_config: GroupedWithMinMaxThresholdsPrice.GroupedWithMinMaxThresholdsConfig;
11015
+
8884
11016
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8885
11017
 
8886
11018
  item: Shared.ItemSlim;
@@ -8913,13 +11045,16 @@ export namespace Price {
8913
11045
  */
8914
11046
  minimum_amount: string | null;
8915
11047
 
8916
- model_type: 'bulk_with_proration';
11048
+ /**
11049
+ * The pricing model type
11050
+ */
11051
+ model_type: 'grouped_with_min_max_thresholds';
8917
11052
 
8918
11053
  name: string;
8919
11054
 
8920
11055
  plan_phase_order: number | null;
8921
11056
 
8922
- price_type: 'usage_price' | 'fixed_price';
11057
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
8923
11058
 
8924
11059
  /**
8925
11060
  * The price id this price replaces. This price will take the place of the replaced
@@ -8930,7 +11065,34 @@ export namespace Price {
8930
11065
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
8931
11066
  }
8932
11067
 
8933
- export interface GroupedTieredPackagePrice {
11068
+ export namespace GroupedWithMinMaxThresholdsPrice {
11069
+ /**
11070
+ * Configuration for grouped_with_min_max_thresholds pricing
11071
+ */
11072
+ export interface GroupedWithMinMaxThresholdsConfig {
11073
+ /**
11074
+ * The event property used to group before applying thresholds
11075
+ */
11076
+ grouping_key: string;
11077
+
11078
+ /**
11079
+ * The maximum amount to charge each group
11080
+ */
11081
+ maximum_charge: string;
11082
+
11083
+ /**
11084
+ * The minimum amount to charge each group, regardless of usage
11085
+ */
11086
+ minimum_charge: string;
11087
+
11088
+ /**
11089
+ * The base price charged per group
11090
+ */
11091
+ per_unit_rate: string;
11092
+ }
11093
+ }
11094
+
11095
+ export interface MatrixWithDisplayNamePrice {
8934
11096
  id: string;
8935
11097
 
8936
11098
  billable_metric: Shared.BillableMetricTiny | null;
@@ -8960,12 +11122,15 @@ export namespace Price {
8960
11122
 
8961
11123
  fixed_price_quantity: number | null;
8962
11124
 
8963
- grouped_tiered_package_config: { [key: string]: unknown };
8964
-
8965
11125
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
8966
11126
 
8967
11127
  item: Shared.ItemSlim;
8968
11128
 
11129
+ /**
11130
+ * Configuration for matrix_with_display_name pricing
11131
+ */
11132
+ matrix_with_display_name_config: MatrixWithDisplayNamePrice.MatrixWithDisplayNameConfig;
11133
+
8969
11134
  /**
8970
11135
  * @deprecated
8971
11136
  */
@@ -8994,13 +11159,16 @@ export namespace Price {
8994
11159
  */
8995
11160
  minimum_amount: string | null;
8996
11161
 
8997
- model_type: 'grouped_tiered_package';
11162
+ /**
11163
+ * The pricing model type
11164
+ */
11165
+ model_type: 'matrix_with_display_name';
8998
11166
 
8999
11167
  name: string;
9000
11168
 
9001
11169
  plan_phase_order: number | null;
9002
11170
 
9003
- price_type: 'usage_price' | 'fixed_price';
11171
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9004
11172
 
9005
11173
  /**
9006
11174
  * The price id this price replaces. This price will take the place of the replaced
@@ -9011,7 +11179,46 @@ export namespace Price {
9011
11179
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9012
11180
  }
9013
11181
 
9014
- export interface MaxGroupTieredPackagePrice {
11182
+ export namespace MatrixWithDisplayNamePrice {
11183
+ /**
11184
+ * Configuration for matrix_with_display_name pricing
11185
+ */
11186
+ export interface MatrixWithDisplayNameConfig {
11187
+ /**
11188
+ * Used to determine the unit rate
11189
+ */
11190
+ dimension: string;
11191
+
11192
+ /**
11193
+ * Apply per unit pricing to each dimension value
11194
+ */
11195
+ unit_amounts: Array<MatrixWithDisplayNameConfig.UnitAmount>;
11196
+ }
11197
+
11198
+ export namespace MatrixWithDisplayNameConfig {
11199
+ /**
11200
+ * Configuration for a unit amount item
11201
+ */
11202
+ export interface UnitAmount {
11203
+ /**
11204
+ * The dimension value
11205
+ */
11206
+ dimension_value: string;
11207
+
11208
+ /**
11209
+ * Display name for this dimension value
11210
+ */
11211
+ display_name: string;
11212
+
11213
+ /**
11214
+ * Per unit amount
11215
+ */
11216
+ unit_amount: string;
11217
+ }
11218
+ }
11219
+ }
11220
+
11221
+ export interface GroupedTieredPackagePrice {
9015
11222
  id: string;
9016
11223
 
9017
11224
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9041,12 +11248,15 @@ export namespace Price {
9041
11248
 
9042
11249
  fixed_price_quantity: number | null;
9043
11250
 
11251
+ /**
11252
+ * Configuration for grouped_tiered_package pricing
11253
+ */
11254
+ grouped_tiered_package_config: GroupedTieredPackagePrice.GroupedTieredPackageConfig;
11255
+
9044
11256
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
9045
11257
 
9046
11258
  item: Shared.ItemSlim;
9047
11259
 
9048
- max_group_tiered_package_config: { [key: string]: unknown };
9049
-
9050
11260
  /**
9051
11261
  * @deprecated
9052
11262
  */
@@ -9075,13 +11285,16 @@ export namespace Price {
9075
11285
  */
9076
11286
  minimum_amount: string | null;
9077
11287
 
9078
- model_type: 'max_group_tiered_package';
11288
+ /**
11289
+ * The pricing model type
11290
+ */
11291
+ model_type: 'grouped_tiered_package';
9079
11292
 
9080
11293
  name: string;
9081
11294
 
9082
11295
  plan_phase_order: number | null;
9083
11296
 
9084
- price_type: 'usage_price' | 'fixed_price';
11297
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9085
11298
 
9086
11299
  /**
9087
11300
  * The price id this price replaces. This price will take the place of the replaced
@@ -9092,7 +11305,47 @@ export namespace Price {
9092
11305
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9093
11306
  }
9094
11307
 
9095
- export interface ScalableMatrixWithUnitPricingPrice {
11308
+ export namespace GroupedTieredPackagePrice {
11309
+ /**
11310
+ * Configuration for grouped_tiered_package pricing
11311
+ */
11312
+ export interface GroupedTieredPackageConfig {
11313
+ /**
11314
+ * The event property used to group before tiering
11315
+ */
11316
+ grouping_key: string;
11317
+
11318
+ /**
11319
+ * Package size
11320
+ */
11321
+ package_size: string;
11322
+
11323
+ /**
11324
+ * Apply tiered pricing after rounding up the quantity to the package size. Tiers
11325
+ * are defined using exclusive lower bounds.
11326
+ */
11327
+ tiers: Array<GroupedTieredPackageConfig.Tier>;
11328
+ }
11329
+
11330
+ export namespace GroupedTieredPackageConfig {
11331
+ /**
11332
+ * Configuration for a single tier
11333
+ */
11334
+ export interface Tier {
11335
+ /**
11336
+ * Price per package
11337
+ */
11338
+ per_unit: string;
11339
+
11340
+ /**
11341
+ * Tier lower bound
11342
+ */
11343
+ tier_lower_bound: string;
11344
+ }
11345
+ }
11346
+ }
11347
+
11348
+ export interface MaxGroupTieredPackagePrice {
9096
11349
  id: string;
9097
11350
 
9098
11351
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9126,6 +11379,11 @@ export namespace Price {
9126
11379
 
9127
11380
  item: Shared.ItemSlim;
9128
11381
 
11382
+ /**
11383
+ * Configuration for max_group_tiered_package pricing
11384
+ */
11385
+ max_group_tiered_package_config: MaxGroupTieredPackagePrice.MaxGroupTieredPackageConfig;
11386
+
9129
11387
  /**
9130
11388
  * @deprecated
9131
11389
  */
@@ -9154,13 +11412,16 @@ export namespace Price {
9154
11412
  */
9155
11413
  minimum_amount: string | null;
9156
11414
 
9157
- model_type: 'scalable_matrix_with_unit_pricing';
11415
+ /**
11416
+ * The pricing model type
11417
+ */
11418
+ model_type: 'max_group_tiered_package';
9158
11419
 
9159
11420
  name: string;
9160
11421
 
9161
11422
  plan_phase_order: number | null;
9162
11423
 
9163
- price_type: 'usage_price' | 'fixed_price';
11424
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9164
11425
 
9165
11426
  /**
9166
11427
  * The price id this price replaces. This price will take the place of the replaced
@@ -9168,12 +11429,49 @@ export namespace Price {
9168
11429
  */
9169
11430
  replaces_price_id: string | null;
9170
11431
 
9171
- scalable_matrix_with_unit_pricing_config: { [key: string]: unknown };
9172
-
9173
11432
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9174
11433
  }
9175
11434
 
9176
- export interface ScalableMatrixWithTieredPricingPrice {
11435
+ export namespace MaxGroupTieredPackagePrice {
11436
+ /**
11437
+ * Configuration for max_group_tiered_package pricing
11438
+ */
11439
+ export interface MaxGroupTieredPackageConfig {
11440
+ /**
11441
+ * The event property used to group before tiering the group with the highest value
11442
+ */
11443
+ grouping_key: string;
11444
+
11445
+ /**
11446
+ * Package size
11447
+ */
11448
+ package_size: string;
11449
+
11450
+ /**
11451
+ * Apply tiered pricing to the largest group after grouping with the provided key.
11452
+ */
11453
+ tiers: Array<MaxGroupTieredPackageConfig.Tier>;
11454
+ }
11455
+
11456
+ export namespace MaxGroupTieredPackageConfig {
11457
+ /**
11458
+ * Configuration for a single tier
11459
+ */
11460
+ export interface Tier {
11461
+ /**
11462
+ * Tier lower bound
11463
+ */
11464
+ tier_lower_bound: string;
11465
+
11466
+ /**
11467
+ * Per unit amount
11468
+ */
11469
+ unit_amount: string;
11470
+ }
11471
+ }
11472
+ }
11473
+
11474
+ export interface ScalableMatrixWithUnitPricingPrice {
9177
11475
  id: string;
9178
11476
 
9179
11477
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9235,13 +11533,16 @@ export namespace Price {
9235
11533
  */
9236
11534
  minimum_amount: string | null;
9237
11535
 
9238
- model_type: 'scalable_matrix_with_tiered_pricing';
11536
+ /**
11537
+ * The pricing model type
11538
+ */
11539
+ model_type: 'scalable_matrix_with_unit_pricing';
9239
11540
 
9240
11541
  name: string;
9241
11542
 
9242
11543
  plan_phase_order: number | null;
9243
11544
 
9244
- price_type: 'usage_price' | 'fixed_price';
11545
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9245
11546
 
9246
11547
  /**
9247
11548
  * The price id this price replaces. This price will take the place of the replaced
@@ -9249,12 +11550,69 @@ export namespace Price {
9249
11550
  */
9250
11551
  replaces_price_id: string | null;
9251
11552
 
9252
- scalable_matrix_with_tiered_pricing_config: { [key: string]: unknown };
11553
+ /**
11554
+ * Configuration for scalable_matrix_with_unit_pricing pricing
11555
+ */
11556
+ scalable_matrix_with_unit_pricing_config: ScalableMatrixWithUnitPricingPrice.ScalableMatrixWithUnitPricingConfig;
9253
11557
 
9254
11558
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9255
11559
  }
9256
11560
 
9257
- export interface CumulativeGroupedBulkPrice {
11561
+ export namespace ScalableMatrixWithUnitPricingPrice {
11562
+ /**
11563
+ * Configuration for scalable_matrix_with_unit_pricing pricing
11564
+ */
11565
+ export interface ScalableMatrixWithUnitPricingConfig {
11566
+ /**
11567
+ * Used to determine the unit rate
11568
+ */
11569
+ first_dimension: string;
11570
+
11571
+ /**
11572
+ * Apply a scaling factor to each dimension
11573
+ */
11574
+ matrix_scaling_factors: Array<ScalableMatrixWithUnitPricingConfig.MatrixScalingFactor>;
11575
+
11576
+ /**
11577
+ * The final unit price to rate against the output of the matrix
11578
+ */
11579
+ unit_price: string;
11580
+
11581
+ /**
11582
+ * If true, the unit price will be prorated to the billing period
11583
+ */
11584
+ prorate?: boolean | null;
11585
+
11586
+ /**
11587
+ * Used to determine the unit rate (optional)
11588
+ */
11589
+ second_dimension?: string | null;
11590
+ }
11591
+
11592
+ export namespace ScalableMatrixWithUnitPricingConfig {
11593
+ /**
11594
+ * Configuration for a single matrix scaling factor
11595
+ */
11596
+ export interface MatrixScalingFactor {
11597
+ /**
11598
+ * First dimension value
11599
+ */
11600
+ first_dimension_value: string;
11601
+
11602
+ /**
11603
+ * Scaling factor
11604
+ */
11605
+ scaling_factor: string;
11606
+
11607
+ /**
11608
+ * Second dimension value (optional)
11609
+ */
11610
+ second_dimension_value?: string | null;
11611
+ }
11612
+ }
11613
+ }
11614
+
11615
+ export interface ScalableMatrixWithTieredPricingPrice {
9258
11616
  id: string;
9259
11617
 
9260
11618
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9273,8 +11631,6 @@ export namespace Price {
9273
11631
 
9274
11632
  credit_allocation: Shared.Allocation | null;
9275
11633
 
9276
- cumulative_grouped_bulk_config: { [key: string]: unknown };
9277
-
9278
11634
  currency: string;
9279
11635
 
9280
11636
  /**
@@ -9318,13 +11674,16 @@ export namespace Price {
9318
11674
  */
9319
11675
  minimum_amount: string | null;
9320
11676
 
9321
- model_type: 'cumulative_grouped_bulk';
11677
+ /**
11678
+ * The pricing model type
11679
+ */
11680
+ model_type: 'scalable_matrix_with_tiered_pricing';
9322
11681
 
9323
11682
  name: string;
9324
11683
 
9325
11684
  plan_phase_order: number | null;
9326
11685
 
9327
- price_type: 'usage_price' | 'fixed_price';
11686
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9328
11687
 
9329
11688
  /**
9330
11689
  * The price id this price replaces. This price will take the place of the replaced
@@ -9332,10 +11691,79 @@ export namespace Price {
9332
11691
  */
9333
11692
  replaces_price_id: string | null;
9334
11693
 
11694
+ /**
11695
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
11696
+ */
11697
+ scalable_matrix_with_tiered_pricing_config: ScalableMatrixWithTieredPricingPrice.ScalableMatrixWithTieredPricingConfig;
11698
+
9335
11699
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9336
11700
  }
9337
11701
 
9338
- export interface GroupedWithMinMaxThresholdsPrice {
11702
+ export namespace ScalableMatrixWithTieredPricingPrice {
11703
+ /**
11704
+ * Configuration for scalable_matrix_with_tiered_pricing pricing
11705
+ */
11706
+ export interface ScalableMatrixWithTieredPricingConfig {
11707
+ /**
11708
+ * Used for the scalable matrix first dimension
11709
+ */
11710
+ first_dimension: string;
11711
+
11712
+ /**
11713
+ * Apply a scaling factor to each dimension
11714
+ */
11715
+ matrix_scaling_factors: Array<ScalableMatrixWithTieredPricingConfig.MatrixScalingFactor>;
11716
+
11717
+ /**
11718
+ * Tier pricing structure
11719
+ */
11720
+ tiers: Array<ScalableMatrixWithTieredPricingConfig.Tier>;
11721
+
11722
+ /**
11723
+ * Used for the scalable matrix second dimension (optional)
11724
+ */
11725
+ second_dimension?: string | null;
11726
+ }
11727
+
11728
+ export namespace ScalableMatrixWithTieredPricingConfig {
11729
+ /**
11730
+ * Configuration for a single matrix scaling factor
11731
+ */
11732
+ export interface MatrixScalingFactor {
11733
+ /**
11734
+ * First dimension value
11735
+ */
11736
+ first_dimension_value: string;
11737
+
11738
+ /**
11739
+ * Scaling factor
11740
+ */
11741
+ scaling_factor: string;
11742
+
11743
+ /**
11744
+ * Second dimension value (optional)
11745
+ */
11746
+ second_dimension_value?: string | null;
11747
+ }
11748
+
11749
+ /**
11750
+ * Configuration for a single tier entry with business logic
11751
+ */
11752
+ export interface Tier {
11753
+ /**
11754
+ * Tier lower bound
11755
+ */
11756
+ tier_lower_bound: string;
11757
+
11758
+ /**
11759
+ * Per unit amount
11760
+ */
11761
+ unit_amount: string;
11762
+ }
11763
+ }
11764
+ }
11765
+
11766
+ export interface CumulativeGroupedBulkPrice {
9339
11767
  id: string;
9340
11768
 
9341
11769
  billable_metric: Shared.BillableMetricTiny | null;
@@ -9354,6 +11782,11 @@ export namespace Price {
9354
11782
 
9355
11783
  credit_allocation: Shared.Allocation | null;
9356
11784
 
11785
+ /**
11786
+ * Configuration for cumulative_grouped_bulk pricing
11787
+ */
11788
+ cumulative_grouped_bulk_config: CumulativeGroupedBulkPrice.CumulativeGroupedBulkConfig;
11789
+
9357
11790
  currency: string;
9358
11791
 
9359
11792
  /**
@@ -9365,8 +11798,6 @@ export namespace Price {
9365
11798
 
9366
11799
  fixed_price_quantity: number | null;
9367
11800
 
9368
- grouped_with_min_max_thresholds_config: { [key: string]: unknown };
9369
-
9370
11801
  invoicing_cycle_configuration: Shared.BillingCycleConfiguration | null;
9371
11802
 
9372
11803
  item: Shared.ItemSlim;
@@ -9399,13 +11830,16 @@ export namespace Price {
9399
11830
  */
9400
11831
  minimum_amount: string | null;
9401
11832
 
9402
- model_type: 'grouped_with_min_max_thresholds';
11833
+ /**
11834
+ * The pricing model type
11835
+ */
11836
+ model_type: 'cumulative_grouped_bulk';
9403
11837
 
9404
11838
  name: string;
9405
11839
 
9406
11840
  plan_phase_order: number | null;
9407
11841
 
9408
- price_type: 'usage_price' | 'fixed_price';
11842
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9409
11843
 
9410
11844
  /**
9411
11845
  * The price id this price replaces. This price will take the place of the replaced
@@ -9416,6 +11850,45 @@ export namespace Price {
9416
11850
  dimensional_price_configuration?: Shared.DimensionalPriceConfiguration | null;
9417
11851
  }
9418
11852
 
11853
+ export namespace CumulativeGroupedBulkPrice {
11854
+ /**
11855
+ * Configuration for cumulative_grouped_bulk pricing
11856
+ */
11857
+ export interface CumulativeGroupedBulkConfig {
11858
+ /**
11859
+ * Each tier lower bound must have the same group of values.
11860
+ */
11861
+ dimension_values: Array<CumulativeGroupedBulkConfig.DimensionValue>;
11862
+
11863
+ /**
11864
+ * Grouping key name
11865
+ */
11866
+ group: string;
11867
+ }
11868
+
11869
+ export namespace CumulativeGroupedBulkConfig {
11870
+ /**
11871
+ * Configuration for a dimension value entry
11872
+ */
11873
+ export interface DimensionValue {
11874
+ /**
11875
+ * Grouping key value
11876
+ */
11877
+ grouping_key: string;
11878
+
11879
+ /**
11880
+ * Tier lower bound
11881
+ */
11882
+ tier_lower_bound: string;
11883
+
11884
+ /**
11885
+ * Unit amount for this combination
11886
+ */
11887
+ unit_amount: string;
11888
+ }
11889
+ }
11890
+ }
11891
+
9419
11892
  export interface MinimumCompositePrice {
9420
11893
  id: string;
9421
11894
 
@@ -9478,15 +11951,21 @@ export namespace Price {
9478
11951
  */
9479
11952
  minimum_amount: string | null;
9480
11953
 
11954
+ /**
11955
+ * Configuration for minimum pricing
11956
+ */
9481
11957
  minimum_config: MinimumCompositePrice.MinimumConfig;
9482
11958
 
11959
+ /**
11960
+ * The pricing model type
11961
+ */
9483
11962
  model_type: 'minimum';
9484
11963
 
9485
11964
  name: string;
9486
11965
 
9487
11966
  plan_phase_order: number | null;
9488
11967
 
9489
- price_type: 'usage_price' | 'fixed_price';
11968
+ price_type: 'usage_price' | 'fixed_price' | 'composite_price';
9490
11969
 
9491
11970
  /**
9492
11971
  * The price id this price replaces. This price will take the place of the replaced
@@ -9498,6 +11977,9 @@ export namespace Price {
9498
11977
  }
9499
11978
 
9500
11979
  export namespace MinimumCompositePrice {
11980
+ /**
11981
+ * Configuration for minimum pricing
11982
+ */
9501
11983
  export interface MinimumConfig {
9502
11984
  /**
9503
11985
  * The minimum amount to apply
@@ -9505,10 +11987,9 @@ export namespace Price {
9505
11987
  minimum_amount: string;
9506
11988
 
9507
11989
  /**
9508
- * By default, subtotals from minimum composite prices are prorated based on the
9509
- * service period. Set to false to disable proration.
11990
+ * If true, subtotals from this price are prorated based on the service period
9510
11991
  */
9511
- prorated?: boolean | null;
11992
+ prorated?: boolean;
9512
11993
  }
9513
11994
  }
9514
11995
  }
@@ -9629,6 +12110,9 @@ export interface TaxAmount {
9629
12110
  tax_rate_percentage: string | null;
9630
12111
  }
9631
12112
 
12113
+ /**
12114
+ * Configuration for a single tier
12115
+ */
9632
12116
  export interface Tier {
9633
12117
  /**
9634
12118
  * Exclusive tier starting value
@@ -9641,19 +12125,12 @@ export interface Tier {
9641
12125
  unit_amount: string;
9642
12126
 
9643
12127
  /**
9644
- * Inclusive tier ending value. If null, this is treated as the last tier
12128
+ * Inclusive tier ending value. This value is null if and only if this is the last
12129
+ * tier.
9645
12130
  */
9646
12131
  last_unit?: number | null;
9647
12132
  }
9648
12133
 
9649
- export interface TierConfig {
9650
- first_unit: number;
9651
-
9652
- last_unit: number | null;
9653
-
9654
- unit_amount: string;
9655
- }
9656
-
9657
12134
  export interface TierSubLineItem {
9658
12135
  /**
9659
12136
  * The total amount for this sub line item.
@@ -9666,11 +12143,24 @@ export interface TierSubLineItem {
9666
12143
 
9667
12144
  quantity: number;
9668
12145
 
9669
- tier_config: TierConfig;
12146
+ tier_config: TierSubLineItem.TierConfig;
9670
12147
 
9671
12148
  type: 'tier';
9672
12149
  }
9673
12150
 
12151
+ export namespace TierSubLineItem {
12152
+ export interface TierConfig {
12153
+ first_unit: number;
12154
+
12155
+ last_unit: number | null;
12156
+
12157
+ unit_amount: string;
12158
+ }
12159
+ }
12160
+
12161
+ /**
12162
+ * Configuration for tiered pricing
12163
+ */
9674
12164
  export interface TieredConfig {
9675
12165
  /**
9676
12166
  * Tiers for rating based on total usage quantities into the specified tier
@@ -9728,11 +12218,19 @@ export interface TrialDiscount {
9728
12218
  trial_percentage_discount?: number | null;
9729
12219
  }
9730
12220
 
12221
+ /**
12222
+ * Configuration for unit pricing
12223
+ */
9731
12224
  export interface UnitConfig {
9732
12225
  /**
9733
12226
  * Rate per unit of usage
9734
12227
  */
9735
12228
  unit_amount: string;
12229
+
12230
+ /**
12231
+ * Multiplier to scale rated quantity by
12232
+ */
12233
+ scaling_factor?: number | null;
9736
12234
  }
9737
12235
 
9738
12236
  export interface UnitConversionRateConfig {