orb-billing 0.5.5 → 0.6.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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +1 -1
  4. data/lib/orb/internal/type/base_model.rb +2 -2
  5. data/lib/orb/internal/type/union.rb +6 -6
  6. data/lib/orb/models/alert.rb +33 -1
  7. data/lib/orb/models/amount_discount.rb +10 -10
  8. data/lib/orb/models/credit_note_create_params.rb +9 -9
  9. data/lib/orb/models/customer_create_params.rb +21 -3
  10. data/lib/orb/models/customer_update_by_external_id_params.rb +21 -3
  11. data/lib/orb/models/customer_update_params.rb +21 -3
  12. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +9 -1
  13. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +9 -1
  14. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +9 -1
  15. data/lib/orb/models/customers/credits/ledger_list_response.rb +9 -1
  16. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +1 -1
  17. data/lib/orb/models/customers/credits/top_up_create_params.rb +1 -1
  18. data/lib/orb/models/invoice.rb +626 -9
  19. data/lib/orb/models/invoice_fetch_upcoming_response.rb +624 -9
  20. data/lib/orb/models/invoice_line_item_create_response.rb +486 -7
  21. data/lib/orb/models/item.rb +18 -1
  22. data/lib/orb/models/item_archive_params.rb +14 -0
  23. data/lib/orb/models/item_create_params.rb +14 -1
  24. data/lib/orb/models/item_update_params.rb +16 -1
  25. data/lib/orb/models/percentage_discount.rb +10 -10
  26. data/lib/orb/models/plan.rb +618 -9
  27. data/lib/orb/models/plan_create_params.rb +2066 -30
  28. data/lib/orb/models/plan_set_default_version_params.rb +22 -0
  29. data/lib/orb/models/plans/external_plan_id/version_create_params.rb +17948 -0
  30. data/lib/orb/models/plans/external_plan_id/version_create_response.rb +819 -0
  31. data/lib/orb/models/plans/external_plan_id/version_retrieve_params.rb +24 -0
  32. data/lib/orb/models/plans/external_plan_id/version_retrieve_response.rb +819 -0
  33. data/lib/orb/models/plans/external_plan_id_set_default_version_params.rb +24 -0
  34. data/lib/orb/models/plans/version_create_params.rb +17794 -0
  35. data/lib/orb/models/plans/version_create_response.rb +814 -0
  36. data/lib/orb/models/plans/version_retrieve_params.rb +22 -0
  37. data/lib/orb/models/plans/version_retrieve_response.rb +814 -0
  38. data/lib/orb/models/price.rb +4124 -70
  39. data/lib/orb/models/price_create_params.rb +45 -1
  40. data/lib/orb/models/price_evaluate_params.rb +8529 -21
  41. data/lib/orb/models/price_evaluate_response.rb +38 -3
  42. data/lib/orb/models/subscription.rb +730 -54
  43. data/lib/orb/models/subscription_cancel_response.rb +706 -54
  44. data/lib/orb/models/subscription_change_apply_response.rb +728 -54
  45. data/lib/orb/models/subscription_change_cancel_response.rb +728 -54
  46. data/lib/orb/models/subscription_change_retrieve_response.rb +728 -54
  47. data/lib/orb/models/subscription_create_params.rb +5992 -1698
  48. data/lib/orb/models/subscription_create_response.rb +706 -54
  49. data/lib/orb/models/subscription_fetch_schedule_response.rb +3 -3
  50. data/lib/orb/models/subscription_price_intervals_params.rb +1392 -76
  51. data/lib/orb/models/subscription_price_intervals_response.rb +712 -54
  52. data/lib/orb/models/subscription_schedule_plan_change_params.rb +6005 -1723
  53. data/lib/orb/models/subscription_schedule_plan_change_response.rb +716 -54
  54. data/lib/orb/models/subscription_trigger_phase_response.rb +708 -54
  55. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +720 -54
  56. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +728 -54
  57. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +728 -54
  58. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +1 -1
  59. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +720 -54
  60. data/lib/orb/models/subscription_update_trial_response.rb +706 -54
  61. data/lib/orb/models/trial_discount.rb +10 -10
  62. data/lib/orb/models/usage_discount.rb +10 -10
  63. data/lib/orb/models.rb +4 -0
  64. data/lib/orb/resources/credit_notes.rb +3 -3
  65. data/lib/orb/resources/customers/balance_transactions.rb +0 -7
  66. data/lib/orb/resources/customers.rb +4 -7
  67. data/lib/orb/resources/dimensional_price_groups.rb +1 -1
  68. data/lib/orb/resources/items.rb +34 -2
  69. data/lib/orb/resources/plans/external_plan_id/versions.rb +88 -0
  70. data/lib/orb/resources/plans/external_plan_id.rb +32 -1
  71. data/lib/orb/resources/plans/versions.rb +86 -0
  72. data/lib/orb/resources/plans.rb +33 -2
  73. data/lib/orb/resources/prices.rb +23 -17
  74. data/lib/orb/resources/subscriptions.rb +5 -1
  75. data/lib/orb/version.rb +1 -1
  76. data/lib/orb.rb +13 -0
  77. data/rbi/orb/models/alert.rbi +50 -3
  78. data/rbi/orb/models/amount_discount.rbi +8 -8
  79. data/rbi/orb/models/credit_note_create_params.rbi +8 -8
  80. data/rbi/orb/models/customer_create_params.rbi +38 -4
  81. data/rbi/orb/models/customer_update_by_external_id_params.rbi +38 -4
  82. data/rbi/orb/models/customer_update_params.rbi +38 -4
  83. data/rbi/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +9 -1
  84. data/rbi/orb/models/customers/credits/ledger_create_entry_response.rbi +9 -1
  85. data/rbi/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +9 -1
  86. data/rbi/orb/models/customers/credits/ledger_list_response.rbi +9 -1
  87. data/rbi/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +2 -2
  88. data/rbi/orb/models/customers/credits/top_up_create_params.rbi +2 -2
  89. data/rbi/orb/models/invoice.rbi +1451 -35
  90. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +1524 -4
  91. data/rbi/orb/models/invoice_line_item_create_response.rbi +1184 -2
  92. data/rbi/orb/models/item.rbi +20 -1
  93. data/rbi/orb/models/item_archive_params.rbi +25 -0
  94. data/rbi/orb/models/item_create_params.rbi +18 -1
  95. data/rbi/orb/models/item_update_params.rbi +17 -1
  96. data/rbi/orb/models/percentage_discount.rbi +10 -10
  97. data/rbi/orb/models/plan.rbi +1339 -4
  98. data/rbi/orb/models/plan_create_params.rbi +3833 -29
  99. data/rbi/orb/models/plan_set_default_version_params.rbi +40 -0
  100. data/rbi/orb/models/plans/external_plan_id/version_create_params.rbi +32668 -0
  101. data/rbi/orb/models/plans/external_plan_id/version_create_response.rbi +1562 -0
  102. data/rbi/orb/models/plans/external_plan_id/version_retrieve_params.rbi +42 -0
  103. data/rbi/orb/models/plans/external_plan_id/version_retrieve_response.rbi +1562 -0
  104. data/rbi/orb/models/plans/external_plan_id_set_default_version_params.rbi +45 -0
  105. data/rbi/orb/models/plans/version_create_params.rbi +32607 -0
  106. data/rbi/orb/models/plans/version_create_response.rbi +1556 -0
  107. data/rbi/orb/models/plans/version_retrieve_params.rbi +37 -0
  108. data/rbi/orb/models/plans/version_retrieve_response.rbi +1558 -0
  109. data/rbi/orb/models/price.rbi +9447 -441
  110. data/rbi/orb/models/price_create_params.rbi +80 -0
  111. data/rbi/orb/models/price_evaluate_params.rbi +15684 -25
  112. data/rbi/orb/models/price_evaluate_response.rbi +68 -5
  113. data/rbi/orb/models/subscription.rbi +1654 -44
  114. data/rbi/orb/models/subscription_cancel_response.rbi +1692 -44
  115. data/rbi/orb/models/subscription_change_apply_response.rbi +1692 -44
  116. data/rbi/orb/models/subscription_change_cancel_response.rbi +1692 -44
  117. data/rbi/orb/models/subscription_change_retrieve_response.rbi +1692 -44
  118. data/rbi/orb/models/subscription_create_params.rbi +10400 -2710
  119. data/rbi/orb/models/subscription_create_response.rbi +1692 -44
  120. data/rbi/orb/models/subscription_fetch_schedule_response.rbi +13 -4
  121. data/rbi/orb/models/subscription_price_intervals_params.rbi +2401 -49
  122. data/rbi/orb/models/subscription_price_intervals_response.rbi +1692 -44
  123. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +10423 -2753
  124. data/rbi/orb/models/subscription_schedule_plan_change_response.rbi +1692 -44
  125. data/rbi/orb/models/subscription_trigger_phase_response.rbi +1692 -44
  126. data/rbi/orb/models/subscription_unschedule_cancellation_response.rbi +1692 -44
  127. data/rbi/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +1692 -44
  128. data/rbi/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +1692 -44
  129. data/rbi/orb/models/subscription_update_fixed_fee_quantity_params.rbi +2 -2
  130. data/rbi/orb/models/subscription_update_fixed_fee_quantity_response.rbi +1692 -44
  131. data/rbi/orb/models/subscription_update_trial_response.rbi +1692 -44
  132. data/rbi/orb/models/trial_discount.rbi +8 -8
  133. data/rbi/orb/models/usage_discount.rbi +10 -10
  134. data/rbi/orb/models.rbi +4 -0
  135. data/rbi/orb/resources/credit_notes.rbi +3 -3
  136. data/rbi/orb/resources/customers/balance_transactions.rbi +0 -7
  137. data/rbi/orb/resources/customers/credits/top_ups.rbi +2 -2
  138. data/rbi/orb/resources/customers.rbi +7 -7
  139. data/rbi/orb/resources/dimensional_price_groups.rbi +1 -1
  140. data/rbi/orb/resources/items.rbi +20 -0
  141. data/rbi/orb/resources/plans/external_plan_id/versions.rbi +103 -0
  142. data/rbi/orb/resources/plans/external_plan_id.rbi +23 -1
  143. data/rbi/orb/resources/plans/versions.rbi +91 -0
  144. data/rbi/orb/resources/plans.rbi +27 -2
  145. data/rbi/orb/resources/prices.rbi +27 -17
  146. data/rbi/orb/resources/subscriptions.rbi +9 -1
  147. data/sig/orb/models/alert.rbs +20 -3
  148. data/sig/orb/models/amount_discount.rbs +5 -5
  149. data/sig/orb/models/credit_note_create_params.rbs +6 -6
  150. data/sig/orb/models/customer_create_params.rbs +13 -0
  151. data/sig/orb/models/customer_update_by_external_id_params.rbs +13 -0
  152. data/sig/orb/models/customer_update_params.rbs +13 -0
  153. data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbs +7 -2
  154. data/sig/orb/models/customers/credits/ledger_create_entry_response.rbs +7 -2
  155. data/sig/orb/models/customers/credits/ledger_list_by_external_id_response.rbs +7 -2
  156. data/sig/orb/models/customers/credits/ledger_list_response.rbs +7 -2
  157. data/sig/orb/models/invoice.rbs +558 -4
  158. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +558 -4
  159. data/sig/orb/models/invoice_line_item_create_response.rbs +414 -2
  160. data/sig/orb/models/item.rbs +5 -0
  161. data/sig/orb/models/item_archive_params.rbs +14 -0
  162. data/sig/orb/models/item_create_params.rbs +10 -2
  163. data/sig/orb/models/item_update_params.rbs +5 -0
  164. data/sig/orb/models/percentage_discount.rbs +5 -5
  165. data/sig/orb/models/plan.rbs +538 -4
  166. data/sig/orb/models/plan_create_params.rbs +1460 -3
  167. data/sig/orb/models/plan_set_default_version_params.rbs +20 -0
  168. data/sig/orb/models/plans/external_plan_id/version_create_params.rbs +12923 -0
  169. data/sig/orb/models/plans/external_plan_id/version_create_response.rbs +664 -0
  170. data/sig/orb/models/plans/external_plan_id/version_retrieve_params.rbs +27 -0
  171. data/sig/orb/models/plans/external_plan_id/version_retrieve_response.rbs +664 -0
  172. data/sig/orb/models/plans/external_plan_id_set_default_version_params.rbs +25 -0
  173. data/sig/orb/models/plans/version_create_params.rbs +12898 -0
  174. data/sig/orb/models/plans/version_create_response.rbs +662 -0
  175. data/sig/orb/models/plans/version_retrieve_params.rbs +25 -0
  176. data/sig/orb/models/plans/version_retrieve_response.rbs +662 -0
  177. data/sig/orb/models/price.rbs +3512 -96
  178. data/sig/orb/models/price_create_params.rbs +32 -0
  179. data/sig/orb/models/price_evaluate_params.rbs +6187 -10
  180. data/sig/orb/models/price_evaluate_response.rbs +41 -4
  181. data/sig/orb/models/subscription.rbs +609 -29
  182. data/sig/orb/models/subscription_cancel_response.rbs +609 -29
  183. data/sig/orb/models/subscription_change_apply_response.rbs +621 -29
  184. data/sig/orb/models/subscription_change_cancel_response.rbs +621 -29
  185. data/sig/orb/models/subscription_change_retrieve_response.rbs +621 -29
  186. data/sig/orb/models/subscription_create_params.rbs +4450 -1466
  187. data/sig/orb/models/subscription_create_response.rbs +609 -29
  188. data/sig/orb/models/subscription_fetch_schedule_response.rbs +4 -4
  189. data/sig/orb/models/subscription_price_intervals_params.rbs +920 -24
  190. data/sig/orb/models/subscription_price_intervals_response.rbs +609 -29
  191. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +4440 -1466
  192. data/sig/orb/models/subscription_schedule_plan_change_response.rbs +609 -29
  193. data/sig/orb/models/subscription_trigger_phase_response.rbs +609 -29
  194. data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +609 -29
  195. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +609 -29
  196. data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +609 -29
  197. data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +609 -29
  198. data/sig/orb/models/subscription_update_trial_response.rbs +609 -29
  199. data/sig/orb/models/trial_discount.rbs +5 -5
  200. data/sig/orb/models/usage_discount.rbs +5 -5
  201. data/sig/orb/models.rbs +4 -0
  202. data/sig/orb/resources/credit_notes.rbs +1 -1
  203. data/sig/orb/resources/items.rbs +7 -0
  204. data/sig/orb/resources/plans/external_plan_id/versions.rbs +30 -0
  205. data/sig/orb/resources/plans/external_plan_id.rbs +8 -0
  206. data/sig/orb/resources/plans/versions.rbs +28 -0
  207. data/sig/orb/resources/plans.rbs +8 -0
  208. data/sig/orb/resources/prices.rbs +3 -3
  209. data/sig/orb/resources/subscriptions.rbs +2 -0
  210. metadata +40 -1
@@ -47,7 +47,10 @@ module Orb
47
47
  Orb::PlanCreateParams::Price::MaxGroupTieredPackage,
48
48
  Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing,
49
49
  Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing,
50
- Orb::PlanCreateParams::Price::CumulativeGroupedBulk
50
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk,
51
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum,
52
+ Orb::PlanCreateParams::Price::MatrixWithAllocation,
53
+ Orb::PlanCreateParams::Price::GroupedTiered
51
54
  )
52
55
  ]
53
56
  )
@@ -112,7 +115,10 @@ module Orb
112
115
  Orb::PlanCreateParams::Price::MaxGroupTieredPackage::OrHash,
113
116
  Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::OrHash,
114
117
  Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::OrHash,
115
- Orb::PlanCreateParams::Price::CumulativeGroupedBulk::OrHash
118
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::OrHash,
119
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::OrHash,
120
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::OrHash,
121
+ Orb::PlanCreateParams::Price::GroupedTiered::OrHash
116
122
  )
117
123
  ],
118
124
  default_invoice_memo: T.nilable(String),
@@ -181,7 +187,10 @@ module Orb
181
187
  Orb::PlanCreateParams::Price::MaxGroupTieredPackage,
182
188
  Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing,
183
189
  Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing,
184
- Orb::PlanCreateParams::Price::CumulativeGroupedBulk
190
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk,
191
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum,
192
+ Orb::PlanCreateParams::Price::MatrixWithAllocation,
193
+ Orb::PlanCreateParams::Price::GroupedTiered
185
194
  )
186
195
  ],
187
196
  default_invoice_memo: T.nilable(String),
@@ -226,7 +235,10 @@ module Orb
226
235
  Orb::PlanCreateParams::Price::MaxGroupTieredPackage,
227
236
  Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing,
228
237
  Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing,
229
- Orb::PlanCreateParams::Price::CumulativeGroupedBulk
238
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk,
239
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum,
240
+ Orb::PlanCreateParams::Price::MatrixWithAllocation,
241
+ Orb::PlanCreateParams::Price::GroupedTiered
230
242
  )
231
243
  end
232
244
 
@@ -302,6 +314,26 @@ module Orb
302
314
  sig { returns(T.nilable(String)) }
303
315
  attr_accessor :currency
304
316
 
317
+ # For dimensional price: specifies a price group and dimension values
318
+ sig do
319
+ returns(
320
+ T.nilable(
321
+ Orb::PlanCreateParams::Price::Unit::DimensionalPriceConfiguration
322
+ )
323
+ )
324
+ end
325
+ attr_reader :dimensional_price_configuration
326
+
327
+ sig do
328
+ params(
329
+ dimensional_price_configuration:
330
+ T.nilable(
331
+ Orb::PlanCreateParams::Price::Unit::DimensionalPriceConfiguration::OrHash
332
+ )
333
+ ).void
334
+ end
335
+ attr_writer :dimensional_price_configuration
336
+
305
337
  # An alias for the price.
306
338
  sig { returns(T.nilable(String)) }
307
339
  attr_accessor :external_price_id
@@ -357,6 +389,10 @@ module Orb
357
389
  ),
358
390
  conversion_rate: T.nilable(Float),
359
391
  currency: T.nilable(String),
392
+ dimensional_price_configuration:
393
+ T.nilable(
394
+ Orb::PlanCreateParams::Price::Unit::DimensionalPriceConfiguration::OrHash
395
+ ),
360
396
  external_price_id: T.nilable(String),
361
397
  fixed_price_quantity: T.nilable(Float),
362
398
  invoice_grouping_key: T.nilable(String),
@@ -390,6 +426,8 @@ module Orb
390
426
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
391
427
  # price is billed.
392
428
  currency: nil,
429
+ # For dimensional price: specifies a price group and dimension values
430
+ dimensional_price_configuration: nil,
393
431
  # An alias for the price.
394
432
  external_price_id: nil,
395
433
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -424,6 +462,10 @@ module Orb
424
462
  ),
425
463
  conversion_rate: T.nilable(Float),
426
464
  currency: T.nilable(String),
465
+ dimensional_price_configuration:
466
+ T.nilable(
467
+ Orb::PlanCreateParams::Price::Unit::DimensionalPriceConfiguration
468
+ ),
427
469
  external_price_id: T.nilable(String),
428
470
  fixed_price_quantity: T.nilable(Float),
429
471
  invoice_grouping_key: T.nilable(String),
@@ -601,6 +643,60 @@ module Orb
601
643
  end
602
644
  end
603
645
 
646
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
647
+ OrHash =
648
+ T.type_alias do
649
+ T.any(
650
+ Orb::PlanCreateParams::Price::Unit::DimensionalPriceConfiguration,
651
+ Orb::Internal::AnyHash
652
+ )
653
+ end
654
+
655
+ # The list of dimension values matching (in order) the dimensions of the price
656
+ # group
657
+ sig { returns(T::Array[String]) }
658
+ attr_accessor :dimension_values
659
+
660
+ # The id of the dimensional price group to include this price in
661
+ sig { returns(T.nilable(String)) }
662
+ attr_accessor :dimensional_price_group_id
663
+
664
+ # The external id of the dimensional price group to include this price in
665
+ sig { returns(T.nilable(String)) }
666
+ attr_accessor :external_dimensional_price_group_id
667
+
668
+ # For dimensional price: specifies a price group and dimension values
669
+ sig do
670
+ params(
671
+ dimension_values: T::Array[String],
672
+ dimensional_price_group_id: T.nilable(String),
673
+ external_dimensional_price_group_id: T.nilable(String)
674
+ ).returns(T.attached_class)
675
+ end
676
+ def self.new(
677
+ # The list of dimension values matching (in order) the dimensions of the price
678
+ # group
679
+ dimension_values:,
680
+ # The id of the dimensional price group to include this price in
681
+ dimensional_price_group_id: nil,
682
+ # The external id of the dimensional price group to include this price in
683
+ external_dimensional_price_group_id: nil
684
+ )
685
+ end
686
+
687
+ sig do
688
+ override.returns(
689
+ {
690
+ dimension_values: T::Array[String],
691
+ dimensional_price_group_id: T.nilable(String),
692
+ external_dimensional_price_group_id: T.nilable(String)
693
+ }
694
+ )
695
+ end
696
+ def to_hash
697
+ end
698
+ end
699
+
604
700
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
605
701
  OrHash =
606
702
  T.type_alias do
@@ -765,6 +861,26 @@ module Orb
765
861
  sig { returns(T.nilable(String)) }
766
862
  attr_accessor :currency
767
863
 
864
+ # For dimensional price: specifies a price group and dimension values
865
+ sig do
866
+ returns(
867
+ T.nilable(
868
+ Orb::PlanCreateParams::Price::Package::DimensionalPriceConfiguration
869
+ )
870
+ )
871
+ end
872
+ attr_reader :dimensional_price_configuration
873
+
874
+ sig do
875
+ params(
876
+ dimensional_price_configuration:
877
+ T.nilable(
878
+ Orb::PlanCreateParams::Price::Package::DimensionalPriceConfiguration::OrHash
879
+ )
880
+ ).void
881
+ end
882
+ attr_writer :dimensional_price_configuration
883
+
768
884
  # An alias for the price.
769
885
  sig { returns(T.nilable(String)) }
770
886
  attr_accessor :external_price_id
@@ -820,6 +936,10 @@ module Orb
820
936
  ),
821
937
  conversion_rate: T.nilable(Float),
822
938
  currency: T.nilable(String),
939
+ dimensional_price_configuration:
940
+ T.nilable(
941
+ Orb::PlanCreateParams::Price::Package::DimensionalPriceConfiguration::OrHash
942
+ ),
823
943
  external_price_id: T.nilable(String),
824
944
  fixed_price_quantity: T.nilable(Float),
825
945
  invoice_grouping_key: T.nilable(String),
@@ -853,6 +973,8 @@ module Orb
853
973
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
854
974
  # price is billed.
855
975
  currency: nil,
976
+ # For dimensional price: specifies a price group and dimension values
977
+ dimensional_price_configuration: nil,
856
978
  # An alias for the price.
857
979
  external_price_id: nil,
858
980
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -889,6 +1011,10 @@ module Orb
889
1011
  ),
890
1012
  conversion_rate: T.nilable(Float),
891
1013
  currency: T.nilable(String),
1014
+ dimensional_price_configuration:
1015
+ T.nilable(
1016
+ Orb::PlanCreateParams::Price::Package::DimensionalPriceConfiguration
1017
+ ),
892
1018
  external_price_id: T.nilable(String),
893
1019
  fixed_price_quantity: T.nilable(Float),
894
1020
  invoice_grouping_key: T.nilable(String),
@@ -1082,6 +1208,60 @@ module Orb
1082
1208
  end
1083
1209
  end
1084
1210
 
1211
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
1212
+ OrHash =
1213
+ T.type_alias do
1214
+ T.any(
1215
+ Orb::PlanCreateParams::Price::Package::DimensionalPriceConfiguration,
1216
+ Orb::Internal::AnyHash
1217
+ )
1218
+ end
1219
+
1220
+ # The list of dimension values matching (in order) the dimensions of the price
1221
+ # group
1222
+ sig { returns(T::Array[String]) }
1223
+ attr_accessor :dimension_values
1224
+
1225
+ # The id of the dimensional price group to include this price in
1226
+ sig { returns(T.nilable(String)) }
1227
+ attr_accessor :dimensional_price_group_id
1228
+
1229
+ # The external id of the dimensional price group to include this price in
1230
+ sig { returns(T.nilable(String)) }
1231
+ attr_accessor :external_dimensional_price_group_id
1232
+
1233
+ # For dimensional price: specifies a price group and dimension values
1234
+ sig do
1235
+ params(
1236
+ dimension_values: T::Array[String],
1237
+ dimensional_price_group_id: T.nilable(String),
1238
+ external_dimensional_price_group_id: T.nilable(String)
1239
+ ).returns(T.attached_class)
1240
+ end
1241
+ def self.new(
1242
+ # The list of dimension values matching (in order) the dimensions of the price
1243
+ # group
1244
+ dimension_values:,
1245
+ # The id of the dimensional price group to include this price in
1246
+ dimensional_price_group_id: nil,
1247
+ # The external id of the dimensional price group to include this price in
1248
+ external_dimensional_price_group_id: nil
1249
+ )
1250
+ end
1251
+
1252
+ sig do
1253
+ override.returns(
1254
+ {
1255
+ dimension_values: T::Array[String],
1256
+ dimensional_price_group_id: T.nilable(String),
1257
+ external_dimensional_price_group_id: T.nilable(String)
1258
+ }
1259
+ )
1260
+ end
1261
+ def to_hash
1262
+ end
1263
+ end
1264
+
1085
1265
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
1086
1266
  OrHash =
1087
1267
  T.type_alias do
@@ -1246,6 +1426,26 @@ module Orb
1246
1426
  sig { returns(T.nilable(String)) }
1247
1427
  attr_accessor :currency
1248
1428
 
1429
+ # For dimensional price: specifies a price group and dimension values
1430
+ sig do
1431
+ returns(
1432
+ T.nilable(
1433
+ Orb::PlanCreateParams::Price::Matrix::DimensionalPriceConfiguration
1434
+ )
1435
+ )
1436
+ end
1437
+ attr_reader :dimensional_price_configuration
1438
+
1439
+ sig do
1440
+ params(
1441
+ dimensional_price_configuration:
1442
+ T.nilable(
1443
+ Orb::PlanCreateParams::Price::Matrix::DimensionalPriceConfiguration::OrHash
1444
+ )
1445
+ ).void
1446
+ end
1447
+ attr_writer :dimensional_price_configuration
1448
+
1249
1449
  # An alias for the price.
1250
1450
  sig { returns(T.nilable(String)) }
1251
1451
  attr_accessor :external_price_id
@@ -1301,6 +1501,10 @@ module Orb
1301
1501
  ),
1302
1502
  conversion_rate: T.nilable(Float),
1303
1503
  currency: T.nilable(String),
1504
+ dimensional_price_configuration:
1505
+ T.nilable(
1506
+ Orb::PlanCreateParams::Price::Matrix::DimensionalPriceConfiguration::OrHash
1507
+ ),
1304
1508
  external_price_id: T.nilable(String),
1305
1509
  fixed_price_quantity: T.nilable(Float),
1306
1510
  invoice_grouping_key: T.nilable(String),
@@ -1334,6 +1538,8 @@ module Orb
1334
1538
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
1335
1539
  # price is billed.
1336
1540
  currency: nil,
1541
+ # For dimensional price: specifies a price group and dimension values
1542
+ dimensional_price_configuration: nil,
1337
1543
  # An alias for the price.
1338
1544
  external_price_id: nil,
1339
1545
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -1370,6 +1576,10 @@ module Orb
1370
1576
  ),
1371
1577
  conversion_rate: T.nilable(Float),
1372
1578
  currency: T.nilable(String),
1579
+ dimensional_price_configuration:
1580
+ T.nilable(
1581
+ Orb::PlanCreateParams::Price::Matrix::DimensionalPriceConfiguration
1582
+ ),
1373
1583
  external_price_id: T.nilable(String),
1374
1584
  fixed_price_quantity: T.nilable(Float),
1375
1585
  invoice_grouping_key: T.nilable(String),
@@ -1632,6 +1842,60 @@ module Orb
1632
1842
  end
1633
1843
  end
1634
1844
 
1845
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
1846
+ OrHash =
1847
+ T.type_alias do
1848
+ T.any(
1849
+ Orb::PlanCreateParams::Price::Matrix::DimensionalPriceConfiguration,
1850
+ Orb::Internal::AnyHash
1851
+ )
1852
+ end
1853
+
1854
+ # The list of dimension values matching (in order) the dimensions of the price
1855
+ # group
1856
+ sig { returns(T::Array[String]) }
1857
+ attr_accessor :dimension_values
1858
+
1859
+ # The id of the dimensional price group to include this price in
1860
+ sig { returns(T.nilable(String)) }
1861
+ attr_accessor :dimensional_price_group_id
1862
+
1863
+ # The external id of the dimensional price group to include this price in
1864
+ sig { returns(T.nilable(String)) }
1865
+ attr_accessor :external_dimensional_price_group_id
1866
+
1867
+ # For dimensional price: specifies a price group and dimension values
1868
+ sig do
1869
+ params(
1870
+ dimension_values: T::Array[String],
1871
+ dimensional_price_group_id: T.nilable(String),
1872
+ external_dimensional_price_group_id: T.nilable(String)
1873
+ ).returns(T.attached_class)
1874
+ end
1875
+ def self.new(
1876
+ # The list of dimension values matching (in order) the dimensions of the price
1877
+ # group
1878
+ dimension_values:,
1879
+ # The id of the dimensional price group to include this price in
1880
+ dimensional_price_group_id: nil,
1881
+ # The external id of the dimensional price group to include this price in
1882
+ external_dimensional_price_group_id: nil
1883
+ )
1884
+ end
1885
+
1886
+ sig do
1887
+ override.returns(
1888
+ {
1889
+ dimension_values: T::Array[String],
1890
+ dimensional_price_group_id: T.nilable(String),
1891
+ external_dimensional_price_group_id: T.nilable(String)
1892
+ }
1893
+ )
1894
+ end
1895
+ def to_hash
1896
+ end
1897
+ end
1898
+
1635
1899
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
1636
1900
  OrHash =
1637
1901
  T.type_alias do
@@ -1796,6 +2060,26 @@ module Orb
1796
2060
  sig { returns(T.nilable(String)) }
1797
2061
  attr_accessor :currency
1798
2062
 
2063
+ # For dimensional price: specifies a price group and dimension values
2064
+ sig do
2065
+ returns(
2066
+ T.nilable(
2067
+ Orb::PlanCreateParams::Price::Tiered::DimensionalPriceConfiguration
2068
+ )
2069
+ )
2070
+ end
2071
+ attr_reader :dimensional_price_configuration
2072
+
2073
+ sig do
2074
+ params(
2075
+ dimensional_price_configuration:
2076
+ T.nilable(
2077
+ Orb::PlanCreateParams::Price::Tiered::DimensionalPriceConfiguration::OrHash
2078
+ )
2079
+ ).void
2080
+ end
2081
+ attr_writer :dimensional_price_configuration
2082
+
1799
2083
  # An alias for the price.
1800
2084
  sig { returns(T.nilable(String)) }
1801
2085
  attr_accessor :external_price_id
@@ -1851,6 +2135,10 @@ module Orb
1851
2135
  ),
1852
2136
  conversion_rate: T.nilable(Float),
1853
2137
  currency: T.nilable(String),
2138
+ dimensional_price_configuration:
2139
+ T.nilable(
2140
+ Orb::PlanCreateParams::Price::Tiered::DimensionalPriceConfiguration::OrHash
2141
+ ),
1854
2142
  external_price_id: T.nilable(String),
1855
2143
  fixed_price_quantity: T.nilable(Float),
1856
2144
  invoice_grouping_key: T.nilable(String),
@@ -1884,6 +2172,8 @@ module Orb
1884
2172
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
1885
2173
  # price is billed.
1886
2174
  currency: nil,
2175
+ # For dimensional price: specifies a price group and dimension values
2176
+ dimensional_price_configuration: nil,
1887
2177
  # An alias for the price.
1888
2178
  external_price_id: nil,
1889
2179
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -1920,6 +2210,10 @@ module Orb
1920
2210
  ),
1921
2211
  conversion_rate: T.nilable(Float),
1922
2212
  currency: T.nilable(String),
2213
+ dimensional_price_configuration:
2214
+ T.nilable(
2215
+ Orb::PlanCreateParams::Price::Tiered::DimensionalPriceConfiguration
2216
+ ),
1923
2217
  external_price_id: T.nilable(String),
1924
2218
  fixed_price_quantity: T.nilable(Float),
1925
2219
  invoice_grouping_key: T.nilable(String),
@@ -2170,6 +2464,60 @@ module Orb
2170
2464
  end
2171
2465
  end
2172
2466
 
2467
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
2468
+ OrHash =
2469
+ T.type_alias do
2470
+ T.any(
2471
+ Orb::PlanCreateParams::Price::Tiered::DimensionalPriceConfiguration,
2472
+ Orb::Internal::AnyHash
2473
+ )
2474
+ end
2475
+
2476
+ # The list of dimension values matching (in order) the dimensions of the price
2477
+ # group
2478
+ sig { returns(T::Array[String]) }
2479
+ attr_accessor :dimension_values
2480
+
2481
+ # The id of the dimensional price group to include this price in
2482
+ sig { returns(T.nilable(String)) }
2483
+ attr_accessor :dimensional_price_group_id
2484
+
2485
+ # The external id of the dimensional price group to include this price in
2486
+ sig { returns(T.nilable(String)) }
2487
+ attr_accessor :external_dimensional_price_group_id
2488
+
2489
+ # For dimensional price: specifies a price group and dimension values
2490
+ sig do
2491
+ params(
2492
+ dimension_values: T::Array[String],
2493
+ dimensional_price_group_id: T.nilable(String),
2494
+ external_dimensional_price_group_id: T.nilable(String)
2495
+ ).returns(T.attached_class)
2496
+ end
2497
+ def self.new(
2498
+ # The list of dimension values matching (in order) the dimensions of the price
2499
+ # group
2500
+ dimension_values:,
2501
+ # The id of the dimensional price group to include this price in
2502
+ dimensional_price_group_id: nil,
2503
+ # The external id of the dimensional price group to include this price in
2504
+ external_dimensional_price_group_id: nil
2505
+ )
2506
+ end
2507
+
2508
+ sig do
2509
+ override.returns(
2510
+ {
2511
+ dimension_values: T::Array[String],
2512
+ dimensional_price_group_id: T.nilable(String),
2513
+ external_dimensional_price_group_id: T.nilable(String)
2514
+ }
2515
+ )
2516
+ end
2517
+ def to_hash
2518
+ end
2519
+ end
2520
+
2173
2521
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
2174
2522
  OrHash =
2175
2523
  T.type_alias do
@@ -2336,6 +2684,26 @@ module Orb
2336
2684
  sig { returns(T.nilable(String)) }
2337
2685
  attr_accessor :currency
2338
2686
 
2687
+ # For dimensional price: specifies a price group and dimension values
2688
+ sig do
2689
+ returns(
2690
+ T.nilable(
2691
+ Orb::PlanCreateParams::Price::TieredBps::DimensionalPriceConfiguration
2692
+ )
2693
+ )
2694
+ end
2695
+ attr_reader :dimensional_price_configuration
2696
+
2697
+ sig do
2698
+ params(
2699
+ dimensional_price_configuration:
2700
+ T.nilable(
2701
+ Orb::PlanCreateParams::Price::TieredBps::DimensionalPriceConfiguration::OrHash
2702
+ )
2703
+ ).void
2704
+ end
2705
+ attr_writer :dimensional_price_configuration
2706
+
2339
2707
  # An alias for the price.
2340
2708
  sig { returns(T.nilable(String)) }
2341
2709
  attr_accessor :external_price_id
@@ -2392,6 +2760,10 @@ module Orb
2392
2760
  ),
2393
2761
  conversion_rate: T.nilable(Float),
2394
2762
  currency: T.nilable(String),
2763
+ dimensional_price_configuration:
2764
+ T.nilable(
2765
+ Orb::PlanCreateParams::Price::TieredBps::DimensionalPriceConfiguration::OrHash
2766
+ ),
2395
2767
  external_price_id: T.nilable(String),
2396
2768
  fixed_price_quantity: T.nilable(Float),
2397
2769
  invoice_grouping_key: T.nilable(String),
@@ -2425,6 +2797,8 @@ module Orb
2425
2797
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
2426
2798
  # price is billed.
2427
2799
  currency: nil,
2800
+ # For dimensional price: specifies a price group and dimension values
2801
+ dimensional_price_configuration: nil,
2428
2802
  # An alias for the price.
2429
2803
  external_price_id: nil,
2430
2804
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -2461,6 +2835,10 @@ module Orb
2461
2835
  ),
2462
2836
  conversion_rate: T.nilable(Float),
2463
2837
  currency: T.nilable(String),
2838
+ dimensional_price_configuration:
2839
+ T.nilable(
2840
+ Orb::PlanCreateParams::Price::TieredBps::DimensionalPriceConfiguration
2841
+ ),
2464
2842
  external_price_id: T.nilable(String),
2465
2843
  fixed_price_quantity: T.nilable(Float),
2466
2844
  invoice_grouping_key: T.nilable(String),
@@ -2721,6 +3099,60 @@ module Orb
2721
3099
  end
2722
3100
  end
2723
3101
 
3102
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
3103
+ OrHash =
3104
+ T.type_alias do
3105
+ T.any(
3106
+ Orb::PlanCreateParams::Price::TieredBps::DimensionalPriceConfiguration,
3107
+ Orb::Internal::AnyHash
3108
+ )
3109
+ end
3110
+
3111
+ # The list of dimension values matching (in order) the dimensions of the price
3112
+ # group
3113
+ sig { returns(T::Array[String]) }
3114
+ attr_accessor :dimension_values
3115
+
3116
+ # The id of the dimensional price group to include this price in
3117
+ sig { returns(T.nilable(String)) }
3118
+ attr_accessor :dimensional_price_group_id
3119
+
3120
+ # The external id of the dimensional price group to include this price in
3121
+ sig { returns(T.nilable(String)) }
3122
+ attr_accessor :external_dimensional_price_group_id
3123
+
3124
+ # For dimensional price: specifies a price group and dimension values
3125
+ sig do
3126
+ params(
3127
+ dimension_values: T::Array[String],
3128
+ dimensional_price_group_id: T.nilable(String),
3129
+ external_dimensional_price_group_id: T.nilable(String)
3130
+ ).returns(T.attached_class)
3131
+ end
3132
+ def self.new(
3133
+ # The list of dimension values matching (in order) the dimensions of the price
3134
+ # group
3135
+ dimension_values:,
3136
+ # The id of the dimensional price group to include this price in
3137
+ dimensional_price_group_id: nil,
3138
+ # The external id of the dimensional price group to include this price in
3139
+ external_dimensional_price_group_id: nil
3140
+ )
3141
+ end
3142
+
3143
+ sig do
3144
+ override.returns(
3145
+ {
3146
+ dimension_values: T::Array[String],
3147
+ dimensional_price_group_id: T.nilable(String),
3148
+ external_dimensional_price_group_id: T.nilable(String)
3149
+ }
3150
+ )
3151
+ end
3152
+ def to_hash
3153
+ end
3154
+ end
3155
+
2724
3156
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
2725
3157
  OrHash =
2726
3158
  T.type_alias do
@@ -2879,6 +3311,26 @@ module Orb
2879
3311
  sig { returns(T.nilable(String)) }
2880
3312
  attr_accessor :currency
2881
3313
 
3314
+ # For dimensional price: specifies a price group and dimension values
3315
+ sig do
3316
+ returns(
3317
+ T.nilable(
3318
+ Orb::PlanCreateParams::Price::Bps::DimensionalPriceConfiguration
3319
+ )
3320
+ )
3321
+ end
3322
+ attr_reader :dimensional_price_configuration
3323
+
3324
+ sig do
3325
+ params(
3326
+ dimensional_price_configuration:
3327
+ T.nilable(
3328
+ Orb::PlanCreateParams::Price::Bps::DimensionalPriceConfiguration::OrHash
3329
+ )
3330
+ ).void
3331
+ end
3332
+ attr_writer :dimensional_price_configuration
3333
+
2882
3334
  # An alias for the price.
2883
3335
  sig { returns(T.nilable(String)) }
2884
3336
  attr_accessor :external_price_id
@@ -2933,6 +3385,10 @@ module Orb
2933
3385
  ),
2934
3386
  conversion_rate: T.nilable(Float),
2935
3387
  currency: T.nilable(String),
3388
+ dimensional_price_configuration:
3389
+ T.nilable(
3390
+ Orb::PlanCreateParams::Price::Bps::DimensionalPriceConfiguration::OrHash
3391
+ ),
2936
3392
  external_price_id: T.nilable(String),
2937
3393
  fixed_price_quantity: T.nilable(Float),
2938
3394
  invoice_grouping_key: T.nilable(String),
@@ -2966,6 +3422,8 @@ module Orb
2966
3422
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
2967
3423
  # price is billed.
2968
3424
  currency: nil,
3425
+ # For dimensional price: specifies a price group and dimension values
3426
+ dimensional_price_configuration: nil,
2969
3427
  # An alias for the price.
2970
3428
  external_price_id: nil,
2971
3429
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -3000,6 +3458,10 @@ module Orb
3000
3458
  ),
3001
3459
  conversion_rate: T.nilable(Float),
3002
3460
  currency: T.nilable(String),
3461
+ dimensional_price_configuration:
3462
+ T.nilable(
3463
+ Orb::PlanCreateParams::Price::Bps::DimensionalPriceConfiguration
3464
+ ),
3003
3465
  external_price_id: T.nilable(String),
3004
3466
  fixed_price_quantity: T.nilable(Float),
3005
3467
  invoice_grouping_key: T.nilable(String),
@@ -3191,6 +3653,60 @@ module Orb
3191
3653
  end
3192
3654
  end
3193
3655
 
3656
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
3657
+ OrHash =
3658
+ T.type_alias do
3659
+ T.any(
3660
+ Orb::PlanCreateParams::Price::Bps::DimensionalPriceConfiguration,
3661
+ Orb::Internal::AnyHash
3662
+ )
3663
+ end
3664
+
3665
+ # The list of dimension values matching (in order) the dimensions of the price
3666
+ # group
3667
+ sig { returns(T::Array[String]) }
3668
+ attr_accessor :dimension_values
3669
+
3670
+ # The id of the dimensional price group to include this price in
3671
+ sig { returns(T.nilable(String)) }
3672
+ attr_accessor :dimensional_price_group_id
3673
+
3674
+ # The external id of the dimensional price group to include this price in
3675
+ sig { returns(T.nilable(String)) }
3676
+ attr_accessor :external_dimensional_price_group_id
3677
+
3678
+ # For dimensional price: specifies a price group and dimension values
3679
+ sig do
3680
+ params(
3681
+ dimension_values: T::Array[String],
3682
+ dimensional_price_group_id: T.nilable(String),
3683
+ external_dimensional_price_group_id: T.nilable(String)
3684
+ ).returns(T.attached_class)
3685
+ end
3686
+ def self.new(
3687
+ # The list of dimension values matching (in order) the dimensions of the price
3688
+ # group
3689
+ dimension_values:,
3690
+ # The id of the dimensional price group to include this price in
3691
+ dimensional_price_group_id: nil,
3692
+ # The external id of the dimensional price group to include this price in
3693
+ external_dimensional_price_group_id: nil
3694
+ )
3695
+ end
3696
+
3697
+ sig do
3698
+ override.returns(
3699
+ {
3700
+ dimension_values: T::Array[String],
3701
+ dimensional_price_group_id: T.nilable(String),
3702
+ external_dimensional_price_group_id: T.nilable(String)
3703
+ }
3704
+ )
3705
+ end
3706
+ def to_hash
3707
+ end
3708
+ end
3709
+
3194
3710
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
3195
3711
  OrHash =
3196
3712
  T.type_alias do
@@ -3355,6 +3871,26 @@ module Orb
3355
3871
  sig { returns(T.nilable(String)) }
3356
3872
  attr_accessor :currency
3357
3873
 
3874
+ # For dimensional price: specifies a price group and dimension values
3875
+ sig do
3876
+ returns(
3877
+ T.nilable(
3878
+ Orb::PlanCreateParams::Price::BulkBps::DimensionalPriceConfiguration
3879
+ )
3880
+ )
3881
+ end
3882
+ attr_reader :dimensional_price_configuration
3883
+
3884
+ sig do
3885
+ params(
3886
+ dimensional_price_configuration:
3887
+ T.nilable(
3888
+ Orb::PlanCreateParams::Price::BulkBps::DimensionalPriceConfiguration::OrHash
3889
+ )
3890
+ ).void
3891
+ end
3892
+ attr_writer :dimensional_price_configuration
3893
+
3358
3894
  # An alias for the price.
3359
3895
  sig { returns(T.nilable(String)) }
3360
3896
  attr_accessor :external_price_id
@@ -3410,6 +3946,10 @@ module Orb
3410
3946
  ),
3411
3947
  conversion_rate: T.nilable(Float),
3412
3948
  currency: T.nilable(String),
3949
+ dimensional_price_configuration:
3950
+ T.nilable(
3951
+ Orb::PlanCreateParams::Price::BulkBps::DimensionalPriceConfiguration::OrHash
3952
+ ),
3413
3953
  external_price_id: T.nilable(String),
3414
3954
  fixed_price_quantity: T.nilable(Float),
3415
3955
  invoice_grouping_key: T.nilable(String),
@@ -3443,6 +3983,8 @@ module Orb
3443
3983
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
3444
3984
  # price is billed.
3445
3985
  currency: nil,
3986
+ # For dimensional price: specifies a price group and dimension values
3987
+ dimensional_price_configuration: nil,
3446
3988
  # An alias for the price.
3447
3989
  external_price_id: nil,
3448
3990
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -3479,6 +4021,10 @@ module Orb
3479
4021
  ),
3480
4022
  conversion_rate: T.nilable(Float),
3481
4023
  currency: T.nilable(String),
4024
+ dimensional_price_configuration:
4025
+ T.nilable(
4026
+ Orb::PlanCreateParams::Price::BulkBps::DimensionalPriceConfiguration
4027
+ ),
3482
4028
  external_price_id: T.nilable(String),
3483
4029
  fixed_price_quantity: T.nilable(Float),
3484
4030
  invoice_grouping_key: T.nilable(String),
@@ -3731,6 +4277,60 @@ module Orb
3731
4277
  end
3732
4278
  end
3733
4279
 
4280
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
4281
+ OrHash =
4282
+ T.type_alias do
4283
+ T.any(
4284
+ Orb::PlanCreateParams::Price::BulkBps::DimensionalPriceConfiguration,
4285
+ Orb::Internal::AnyHash
4286
+ )
4287
+ end
4288
+
4289
+ # The list of dimension values matching (in order) the dimensions of the price
4290
+ # group
4291
+ sig { returns(T::Array[String]) }
4292
+ attr_accessor :dimension_values
4293
+
4294
+ # The id of the dimensional price group to include this price in
4295
+ sig { returns(T.nilable(String)) }
4296
+ attr_accessor :dimensional_price_group_id
4297
+
4298
+ # The external id of the dimensional price group to include this price in
4299
+ sig { returns(T.nilable(String)) }
4300
+ attr_accessor :external_dimensional_price_group_id
4301
+
4302
+ # For dimensional price: specifies a price group and dimension values
4303
+ sig do
4304
+ params(
4305
+ dimension_values: T::Array[String],
4306
+ dimensional_price_group_id: T.nilable(String),
4307
+ external_dimensional_price_group_id: T.nilable(String)
4308
+ ).returns(T.attached_class)
4309
+ end
4310
+ def self.new(
4311
+ # The list of dimension values matching (in order) the dimensions of the price
4312
+ # group
4313
+ dimension_values:,
4314
+ # The id of the dimensional price group to include this price in
4315
+ dimensional_price_group_id: nil,
4316
+ # The external id of the dimensional price group to include this price in
4317
+ external_dimensional_price_group_id: nil
4318
+ )
4319
+ end
4320
+
4321
+ sig do
4322
+ override.returns(
4323
+ {
4324
+ dimension_values: T::Array[String],
4325
+ dimensional_price_group_id: T.nilable(String),
4326
+ external_dimensional_price_group_id: T.nilable(String)
4327
+ }
4328
+ )
4329
+ end
4330
+ def to_hash
4331
+ end
4332
+ end
4333
+
3734
4334
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
3735
4335
  OrHash =
3736
4336
  T.type_alias do
@@ -3890,6 +4490,26 @@ module Orb
3890
4490
  sig { returns(T.nilable(String)) }
3891
4491
  attr_accessor :currency
3892
4492
 
4493
+ # For dimensional price: specifies a price group and dimension values
4494
+ sig do
4495
+ returns(
4496
+ T.nilable(
4497
+ Orb::PlanCreateParams::Price::Bulk::DimensionalPriceConfiguration
4498
+ )
4499
+ )
4500
+ end
4501
+ attr_reader :dimensional_price_configuration
4502
+
4503
+ sig do
4504
+ params(
4505
+ dimensional_price_configuration:
4506
+ T.nilable(
4507
+ Orb::PlanCreateParams::Price::Bulk::DimensionalPriceConfiguration::OrHash
4508
+ )
4509
+ ).void
4510
+ end
4511
+ attr_writer :dimensional_price_configuration
4512
+
3893
4513
  # An alias for the price.
3894
4514
  sig { returns(T.nilable(String)) }
3895
4515
  attr_accessor :external_price_id
@@ -3945,6 +4565,10 @@ module Orb
3945
4565
  ),
3946
4566
  conversion_rate: T.nilable(Float),
3947
4567
  currency: T.nilable(String),
4568
+ dimensional_price_configuration:
4569
+ T.nilable(
4570
+ Orb::PlanCreateParams::Price::Bulk::DimensionalPriceConfiguration::OrHash
4571
+ ),
3948
4572
  external_price_id: T.nilable(String),
3949
4573
  fixed_price_quantity: T.nilable(Float),
3950
4574
  invoice_grouping_key: T.nilable(String),
@@ -3978,6 +4602,8 @@ module Orb
3978
4602
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
3979
4603
  # price is billed.
3980
4604
  currency: nil,
4605
+ # For dimensional price: specifies a price group and dimension values
4606
+ dimensional_price_configuration: nil,
3981
4607
  # An alias for the price.
3982
4608
  external_price_id: nil,
3983
4609
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -4012,6 +4638,10 @@ module Orb
4012
4638
  ),
4013
4639
  conversion_rate: T.nilable(Float),
4014
4640
  currency: T.nilable(String),
4641
+ dimensional_price_configuration:
4642
+ T.nilable(
4643
+ Orb::PlanCreateParams::Price::Bulk::DimensionalPriceConfiguration
4644
+ ),
4015
4645
  external_price_id: T.nilable(String),
4016
4646
  fixed_price_quantity: T.nilable(Float),
4017
4647
  invoice_grouping_key: T.nilable(String),
@@ -4249,6 +4879,60 @@ module Orb
4249
4879
  end
4250
4880
  end
4251
4881
 
4882
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
4883
+ OrHash =
4884
+ T.type_alias do
4885
+ T.any(
4886
+ Orb::PlanCreateParams::Price::Bulk::DimensionalPriceConfiguration,
4887
+ Orb::Internal::AnyHash
4888
+ )
4889
+ end
4890
+
4891
+ # The list of dimension values matching (in order) the dimensions of the price
4892
+ # group
4893
+ sig { returns(T::Array[String]) }
4894
+ attr_accessor :dimension_values
4895
+
4896
+ # The id of the dimensional price group to include this price in
4897
+ sig { returns(T.nilable(String)) }
4898
+ attr_accessor :dimensional_price_group_id
4899
+
4900
+ # The external id of the dimensional price group to include this price in
4901
+ sig { returns(T.nilable(String)) }
4902
+ attr_accessor :external_dimensional_price_group_id
4903
+
4904
+ # For dimensional price: specifies a price group and dimension values
4905
+ sig do
4906
+ params(
4907
+ dimension_values: T::Array[String],
4908
+ dimensional_price_group_id: T.nilable(String),
4909
+ external_dimensional_price_group_id: T.nilable(String)
4910
+ ).returns(T.attached_class)
4911
+ end
4912
+ def self.new(
4913
+ # The list of dimension values matching (in order) the dimensions of the price
4914
+ # group
4915
+ dimension_values:,
4916
+ # The id of the dimensional price group to include this price in
4917
+ dimensional_price_group_id: nil,
4918
+ # The external id of the dimensional price group to include this price in
4919
+ external_dimensional_price_group_id: nil
4920
+ )
4921
+ end
4922
+
4923
+ sig do
4924
+ override.returns(
4925
+ {
4926
+ dimension_values: T::Array[String],
4927
+ dimensional_price_group_id: T.nilable(String),
4928
+ external_dimensional_price_group_id: T.nilable(String)
4929
+ }
4930
+ )
4931
+ end
4932
+ def to_hash
4933
+ end
4934
+ end
4935
+
4252
4936
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
4253
4937
  OrHash =
4254
4938
  T.type_alias do
@@ -4407,6 +5091,26 @@ module Orb
4407
5091
  sig { returns(T.nilable(String)) }
4408
5092
  attr_accessor :currency
4409
5093
 
5094
+ # For dimensional price: specifies a price group and dimension values
5095
+ sig do
5096
+ returns(
5097
+ T.nilable(
5098
+ Orb::PlanCreateParams::Price::ThresholdTotalAmount::DimensionalPriceConfiguration
5099
+ )
5100
+ )
5101
+ end
5102
+ attr_reader :dimensional_price_configuration
5103
+
5104
+ sig do
5105
+ params(
5106
+ dimensional_price_configuration:
5107
+ T.nilable(
5108
+ Orb::PlanCreateParams::Price::ThresholdTotalAmount::DimensionalPriceConfiguration::OrHash
5109
+ )
5110
+ ).void
5111
+ end
5112
+ attr_writer :dimensional_price_configuration
5113
+
4410
5114
  # An alias for the price.
4411
5115
  sig { returns(T.nilable(String)) }
4412
5116
  attr_accessor :external_price_id
@@ -4462,6 +5166,10 @@ module Orb
4462
5166
  ),
4463
5167
  conversion_rate: T.nilable(Float),
4464
5168
  currency: T.nilable(String),
5169
+ dimensional_price_configuration:
5170
+ T.nilable(
5171
+ Orb::PlanCreateParams::Price::ThresholdTotalAmount::DimensionalPriceConfiguration::OrHash
5172
+ ),
4465
5173
  external_price_id: T.nilable(String),
4466
5174
  fixed_price_quantity: T.nilable(Float),
4467
5175
  invoice_grouping_key: T.nilable(String),
@@ -4495,6 +5203,8 @@ module Orb
4495
5203
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
4496
5204
  # price is billed.
4497
5205
  currency: nil,
5206
+ # For dimensional price: specifies a price group and dimension values
5207
+ dimensional_price_configuration: nil,
4498
5208
  # An alias for the price.
4499
5209
  external_price_id: nil,
4500
5210
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -4530,6 +5240,10 @@ module Orb
4530
5240
  ),
4531
5241
  conversion_rate: T.nilable(Float),
4532
5242
  currency: T.nilable(String),
5243
+ dimensional_price_configuration:
5244
+ T.nilable(
5245
+ Orb::PlanCreateParams::Price::ThresholdTotalAmount::DimensionalPriceConfiguration
5246
+ ),
4533
5247
  external_price_id: T.nilable(String),
4534
5248
  fixed_price_quantity: T.nilable(Float),
4535
5249
  invoice_grouping_key: T.nilable(String),
@@ -4685,6 +5399,60 @@ module Orb
4685
5399
  end
4686
5400
  end
4687
5401
 
5402
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
5403
+ OrHash =
5404
+ T.type_alias do
5405
+ T.any(
5406
+ Orb::PlanCreateParams::Price::ThresholdTotalAmount::DimensionalPriceConfiguration,
5407
+ Orb::Internal::AnyHash
5408
+ )
5409
+ end
5410
+
5411
+ # The list of dimension values matching (in order) the dimensions of the price
5412
+ # group
5413
+ sig { returns(T::Array[String]) }
5414
+ attr_accessor :dimension_values
5415
+
5416
+ # The id of the dimensional price group to include this price in
5417
+ sig { returns(T.nilable(String)) }
5418
+ attr_accessor :dimensional_price_group_id
5419
+
5420
+ # The external id of the dimensional price group to include this price in
5421
+ sig { returns(T.nilable(String)) }
5422
+ attr_accessor :external_dimensional_price_group_id
5423
+
5424
+ # For dimensional price: specifies a price group and dimension values
5425
+ sig do
5426
+ params(
5427
+ dimension_values: T::Array[String],
5428
+ dimensional_price_group_id: T.nilable(String),
5429
+ external_dimensional_price_group_id: T.nilable(String)
5430
+ ).returns(T.attached_class)
5431
+ end
5432
+ def self.new(
5433
+ # The list of dimension values matching (in order) the dimensions of the price
5434
+ # group
5435
+ dimension_values:,
5436
+ # The id of the dimensional price group to include this price in
5437
+ dimensional_price_group_id: nil,
5438
+ # The external id of the dimensional price group to include this price in
5439
+ external_dimensional_price_group_id: nil
5440
+ )
5441
+ end
5442
+
5443
+ sig do
5444
+ override.returns(
5445
+ {
5446
+ dimension_values: T::Array[String],
5447
+ dimensional_price_group_id: T.nilable(String),
5448
+ external_dimensional_price_group_id: T.nilable(String)
5449
+ }
5450
+ )
5451
+ end
5452
+ def to_hash
5453
+ end
5454
+ end
5455
+
4688
5456
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
4689
5457
  OrHash =
4690
5458
  T.type_alias do
@@ -4843,6 +5611,26 @@ module Orb
4843
5611
  sig { returns(T.nilable(String)) }
4844
5612
  attr_accessor :currency
4845
5613
 
5614
+ # For dimensional price: specifies a price group and dimension values
5615
+ sig do
5616
+ returns(
5617
+ T.nilable(
5618
+ Orb::PlanCreateParams::Price::TieredPackage::DimensionalPriceConfiguration
5619
+ )
5620
+ )
5621
+ end
5622
+ attr_reader :dimensional_price_configuration
5623
+
5624
+ sig do
5625
+ params(
5626
+ dimensional_price_configuration:
5627
+ T.nilable(
5628
+ Orb::PlanCreateParams::Price::TieredPackage::DimensionalPriceConfiguration::OrHash
5629
+ )
5630
+ ).void
5631
+ end
5632
+ attr_writer :dimensional_price_configuration
5633
+
4846
5634
  # An alias for the price.
4847
5635
  sig { returns(T.nilable(String)) }
4848
5636
  attr_accessor :external_price_id
@@ -4898,6 +5686,10 @@ module Orb
4898
5686
  ),
4899
5687
  conversion_rate: T.nilable(Float),
4900
5688
  currency: T.nilable(String),
5689
+ dimensional_price_configuration:
5690
+ T.nilable(
5691
+ Orb::PlanCreateParams::Price::TieredPackage::DimensionalPriceConfiguration::OrHash
5692
+ ),
4901
5693
  external_price_id: T.nilable(String),
4902
5694
  fixed_price_quantity: T.nilable(Float),
4903
5695
  invoice_grouping_key: T.nilable(String),
@@ -4931,6 +5723,8 @@ module Orb
4931
5723
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
4932
5724
  # price is billed.
4933
5725
  currency: nil,
5726
+ # For dimensional price: specifies a price group and dimension values
5727
+ dimensional_price_configuration: nil,
4934
5728
  # An alias for the price.
4935
5729
  external_price_id: nil,
4936
5730
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -4966,6 +5760,10 @@ module Orb
4966
5760
  ),
4967
5761
  conversion_rate: T.nilable(Float),
4968
5762
  currency: T.nilable(String),
5763
+ dimensional_price_configuration:
5764
+ T.nilable(
5765
+ Orb::PlanCreateParams::Price::TieredPackage::DimensionalPriceConfiguration
5766
+ ),
4969
5767
  external_price_id: T.nilable(String),
4970
5768
  fixed_price_quantity: T.nilable(Float),
4971
5769
  invoice_grouping_key: T.nilable(String),
@@ -5121,6 +5919,60 @@ module Orb
5121
5919
  end
5122
5920
  end
5123
5921
 
5922
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
5923
+ OrHash =
5924
+ T.type_alias do
5925
+ T.any(
5926
+ Orb::PlanCreateParams::Price::TieredPackage::DimensionalPriceConfiguration,
5927
+ Orb::Internal::AnyHash
5928
+ )
5929
+ end
5930
+
5931
+ # The list of dimension values matching (in order) the dimensions of the price
5932
+ # group
5933
+ sig { returns(T::Array[String]) }
5934
+ attr_accessor :dimension_values
5935
+
5936
+ # The id of the dimensional price group to include this price in
5937
+ sig { returns(T.nilable(String)) }
5938
+ attr_accessor :dimensional_price_group_id
5939
+
5940
+ # The external id of the dimensional price group to include this price in
5941
+ sig { returns(T.nilable(String)) }
5942
+ attr_accessor :external_dimensional_price_group_id
5943
+
5944
+ # For dimensional price: specifies a price group and dimension values
5945
+ sig do
5946
+ params(
5947
+ dimension_values: T::Array[String],
5948
+ dimensional_price_group_id: T.nilable(String),
5949
+ external_dimensional_price_group_id: T.nilable(String)
5950
+ ).returns(T.attached_class)
5951
+ end
5952
+ def self.new(
5953
+ # The list of dimension values matching (in order) the dimensions of the price
5954
+ # group
5955
+ dimension_values:,
5956
+ # The id of the dimensional price group to include this price in
5957
+ dimensional_price_group_id: nil,
5958
+ # The external id of the dimensional price group to include this price in
5959
+ external_dimensional_price_group_id: nil
5960
+ )
5961
+ end
5962
+
5963
+ sig do
5964
+ override.returns(
5965
+ {
5966
+ dimension_values: T::Array[String],
5967
+ dimensional_price_group_id: T.nilable(String),
5968
+ external_dimensional_price_group_id: T.nilable(String)
5969
+ }
5970
+ )
5971
+ end
5972
+ def to_hash
5973
+ end
5974
+ end
5975
+
5124
5976
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
5125
5977
  OrHash =
5126
5978
  T.type_alias do
@@ -5279,6 +6131,26 @@ module Orb
5279
6131
  sig { returns(T.nilable(String)) }
5280
6132
  attr_accessor :currency
5281
6133
 
6134
+ # For dimensional price: specifies a price group and dimension values
6135
+ sig do
6136
+ returns(
6137
+ T.nilable(
6138
+ Orb::PlanCreateParams::Price::TieredWithMinimum::DimensionalPriceConfiguration
6139
+ )
6140
+ )
6141
+ end
6142
+ attr_reader :dimensional_price_configuration
6143
+
6144
+ sig do
6145
+ params(
6146
+ dimensional_price_configuration:
6147
+ T.nilable(
6148
+ Orb::PlanCreateParams::Price::TieredWithMinimum::DimensionalPriceConfiguration::OrHash
6149
+ )
6150
+ ).void
6151
+ end
6152
+ attr_writer :dimensional_price_configuration
6153
+
5282
6154
  # An alias for the price.
5283
6155
  sig { returns(T.nilable(String)) }
5284
6156
  attr_accessor :external_price_id
@@ -5334,6 +6206,10 @@ module Orb
5334
6206
  ),
5335
6207
  conversion_rate: T.nilable(Float),
5336
6208
  currency: T.nilable(String),
6209
+ dimensional_price_configuration:
6210
+ T.nilable(
6211
+ Orb::PlanCreateParams::Price::TieredWithMinimum::DimensionalPriceConfiguration::OrHash
6212
+ ),
5337
6213
  external_price_id: T.nilable(String),
5338
6214
  fixed_price_quantity: T.nilable(Float),
5339
6215
  invoice_grouping_key: T.nilable(String),
@@ -5367,6 +6243,8 @@ module Orb
5367
6243
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
5368
6244
  # price is billed.
5369
6245
  currency: nil,
6246
+ # For dimensional price: specifies a price group and dimension values
6247
+ dimensional_price_configuration: nil,
5370
6248
  # An alias for the price.
5371
6249
  external_price_id: nil,
5372
6250
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -5402,6 +6280,10 @@ module Orb
5402
6280
  ),
5403
6281
  conversion_rate: T.nilable(Float),
5404
6282
  currency: T.nilable(String),
6283
+ dimensional_price_configuration:
6284
+ T.nilable(
6285
+ Orb::PlanCreateParams::Price::TieredWithMinimum::DimensionalPriceConfiguration
6286
+ ),
5405
6287
  external_price_id: T.nilable(String),
5406
6288
  fixed_price_quantity: T.nilable(Float),
5407
6289
  invoice_grouping_key: T.nilable(String),
@@ -5557,28 +6439,82 @@ module Orb
5557
6439
  end
5558
6440
  end
5559
6441
 
5560
- class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
6442
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
5561
6443
  OrHash =
5562
6444
  T.type_alias do
5563
6445
  T.any(
5564
- Orb::PlanCreateParams::Price::TieredWithMinimum::InvoicingCycleConfiguration,
6446
+ Orb::PlanCreateParams::Price::TieredWithMinimum::DimensionalPriceConfiguration,
5565
6447
  Orb::Internal::AnyHash
5566
6448
  )
5567
6449
  end
5568
6450
 
5569
- # The duration of the billing period.
5570
- sig { returns(Integer) }
5571
- attr_accessor :duration
6451
+ # The list of dimension values matching (in order) the dimensions of the price
6452
+ # group
6453
+ sig { returns(T::Array[String]) }
6454
+ attr_accessor :dimension_values
5572
6455
 
5573
- # The unit of billing period duration.
5574
- sig do
5575
- returns(
5576
- Orb::PlanCreateParams::Price::TieredWithMinimum::InvoicingCycleConfiguration::DurationUnit::OrSymbol
5577
- )
5578
- end
5579
- attr_accessor :duration_unit
6456
+ # The id of the dimensional price group to include this price in
6457
+ sig { returns(T.nilable(String)) }
6458
+ attr_accessor :dimensional_price_group_id
5580
6459
 
5581
- # Within each billing cycle, specifies the cadence at which invoices are produced.
6460
+ # The external id of the dimensional price group to include this price in
6461
+ sig { returns(T.nilable(String)) }
6462
+ attr_accessor :external_dimensional_price_group_id
6463
+
6464
+ # For dimensional price: specifies a price group and dimension values
6465
+ sig do
6466
+ params(
6467
+ dimension_values: T::Array[String],
6468
+ dimensional_price_group_id: T.nilable(String),
6469
+ external_dimensional_price_group_id: T.nilable(String)
6470
+ ).returns(T.attached_class)
6471
+ end
6472
+ def self.new(
6473
+ # The list of dimension values matching (in order) the dimensions of the price
6474
+ # group
6475
+ dimension_values:,
6476
+ # The id of the dimensional price group to include this price in
6477
+ dimensional_price_group_id: nil,
6478
+ # The external id of the dimensional price group to include this price in
6479
+ external_dimensional_price_group_id: nil
6480
+ )
6481
+ end
6482
+
6483
+ sig do
6484
+ override.returns(
6485
+ {
6486
+ dimension_values: T::Array[String],
6487
+ dimensional_price_group_id: T.nilable(String),
6488
+ external_dimensional_price_group_id: T.nilable(String)
6489
+ }
6490
+ )
6491
+ end
6492
+ def to_hash
6493
+ end
6494
+ end
6495
+
6496
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
6497
+ OrHash =
6498
+ T.type_alias do
6499
+ T.any(
6500
+ Orb::PlanCreateParams::Price::TieredWithMinimum::InvoicingCycleConfiguration,
6501
+ Orb::Internal::AnyHash
6502
+ )
6503
+ end
6504
+
6505
+ # The duration of the billing period.
6506
+ sig { returns(Integer) }
6507
+ attr_accessor :duration
6508
+
6509
+ # The unit of billing period duration.
6510
+ sig do
6511
+ returns(
6512
+ Orb::PlanCreateParams::Price::TieredWithMinimum::InvoicingCycleConfiguration::DurationUnit::OrSymbol
6513
+ )
6514
+ end
6515
+ attr_accessor :duration_unit
6516
+
6517
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
5582
6518
  # If unspecified, a single invoice is produced per billing cycle.
5583
6519
  sig do
5584
6520
  params(
@@ -5715,6 +6651,26 @@ module Orb
5715
6651
  sig { returns(T.nilable(String)) }
5716
6652
  attr_accessor :currency
5717
6653
 
6654
+ # For dimensional price: specifies a price group and dimension values
6655
+ sig do
6656
+ returns(
6657
+ T.nilable(
6658
+ Orb::PlanCreateParams::Price::UnitWithPercent::DimensionalPriceConfiguration
6659
+ )
6660
+ )
6661
+ end
6662
+ attr_reader :dimensional_price_configuration
6663
+
6664
+ sig do
6665
+ params(
6666
+ dimensional_price_configuration:
6667
+ T.nilable(
6668
+ Orb::PlanCreateParams::Price::UnitWithPercent::DimensionalPriceConfiguration::OrHash
6669
+ )
6670
+ ).void
6671
+ end
6672
+ attr_writer :dimensional_price_configuration
6673
+
5718
6674
  # An alias for the price.
5719
6675
  sig { returns(T.nilable(String)) }
5720
6676
  attr_accessor :external_price_id
@@ -5770,6 +6726,10 @@ module Orb
5770
6726
  ),
5771
6727
  conversion_rate: T.nilable(Float),
5772
6728
  currency: T.nilable(String),
6729
+ dimensional_price_configuration:
6730
+ T.nilable(
6731
+ Orb::PlanCreateParams::Price::UnitWithPercent::DimensionalPriceConfiguration::OrHash
6732
+ ),
5773
6733
  external_price_id: T.nilable(String),
5774
6734
  fixed_price_quantity: T.nilable(Float),
5775
6735
  invoice_grouping_key: T.nilable(String),
@@ -5803,6 +6763,8 @@ module Orb
5803
6763
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
5804
6764
  # price is billed.
5805
6765
  currency: nil,
6766
+ # For dimensional price: specifies a price group and dimension values
6767
+ dimensional_price_configuration: nil,
5806
6768
  # An alias for the price.
5807
6769
  external_price_id: nil,
5808
6770
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -5838,6 +6800,10 @@ module Orb
5838
6800
  ),
5839
6801
  conversion_rate: T.nilable(Float),
5840
6802
  currency: T.nilable(String),
6803
+ dimensional_price_configuration:
6804
+ T.nilable(
6805
+ Orb::PlanCreateParams::Price::UnitWithPercent::DimensionalPriceConfiguration
6806
+ ),
5841
6807
  external_price_id: T.nilable(String),
5842
6808
  fixed_price_quantity: T.nilable(Float),
5843
6809
  invoice_grouping_key: T.nilable(String),
@@ -5993,6 +6959,60 @@ module Orb
5993
6959
  end
5994
6960
  end
5995
6961
 
6962
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
6963
+ OrHash =
6964
+ T.type_alias do
6965
+ T.any(
6966
+ Orb::PlanCreateParams::Price::UnitWithPercent::DimensionalPriceConfiguration,
6967
+ Orb::Internal::AnyHash
6968
+ )
6969
+ end
6970
+
6971
+ # The list of dimension values matching (in order) the dimensions of the price
6972
+ # group
6973
+ sig { returns(T::Array[String]) }
6974
+ attr_accessor :dimension_values
6975
+
6976
+ # The id of the dimensional price group to include this price in
6977
+ sig { returns(T.nilable(String)) }
6978
+ attr_accessor :dimensional_price_group_id
6979
+
6980
+ # The external id of the dimensional price group to include this price in
6981
+ sig { returns(T.nilable(String)) }
6982
+ attr_accessor :external_dimensional_price_group_id
6983
+
6984
+ # For dimensional price: specifies a price group and dimension values
6985
+ sig do
6986
+ params(
6987
+ dimension_values: T::Array[String],
6988
+ dimensional_price_group_id: T.nilable(String),
6989
+ external_dimensional_price_group_id: T.nilable(String)
6990
+ ).returns(T.attached_class)
6991
+ end
6992
+ def self.new(
6993
+ # The list of dimension values matching (in order) the dimensions of the price
6994
+ # group
6995
+ dimension_values:,
6996
+ # The id of the dimensional price group to include this price in
6997
+ dimensional_price_group_id: nil,
6998
+ # The external id of the dimensional price group to include this price in
6999
+ external_dimensional_price_group_id: nil
7000
+ )
7001
+ end
7002
+
7003
+ sig do
7004
+ override.returns(
7005
+ {
7006
+ dimension_values: T::Array[String],
7007
+ dimensional_price_group_id: T.nilable(String),
7008
+ external_dimensional_price_group_id: T.nilable(String)
7009
+ }
7010
+ )
7011
+ end
7012
+ def to_hash
7013
+ end
7014
+ end
7015
+
5996
7016
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
5997
7017
  OrHash =
5998
7018
  T.type_alias do
@@ -6151,6 +7171,26 @@ module Orb
6151
7171
  sig { returns(T.nilable(String)) }
6152
7172
  attr_accessor :currency
6153
7173
 
7174
+ # For dimensional price: specifies a price group and dimension values
7175
+ sig do
7176
+ returns(
7177
+ T.nilable(
7178
+ Orb::PlanCreateParams::Price::PackageWithAllocation::DimensionalPriceConfiguration
7179
+ )
7180
+ )
7181
+ end
7182
+ attr_reader :dimensional_price_configuration
7183
+
7184
+ sig do
7185
+ params(
7186
+ dimensional_price_configuration:
7187
+ T.nilable(
7188
+ Orb::PlanCreateParams::Price::PackageWithAllocation::DimensionalPriceConfiguration::OrHash
7189
+ )
7190
+ ).void
7191
+ end
7192
+ attr_writer :dimensional_price_configuration
7193
+
6154
7194
  # An alias for the price.
6155
7195
  sig { returns(T.nilable(String)) }
6156
7196
  attr_accessor :external_price_id
@@ -6206,6 +7246,10 @@ module Orb
6206
7246
  ),
6207
7247
  conversion_rate: T.nilable(Float),
6208
7248
  currency: T.nilable(String),
7249
+ dimensional_price_configuration:
7250
+ T.nilable(
7251
+ Orb::PlanCreateParams::Price::PackageWithAllocation::DimensionalPriceConfiguration::OrHash
7252
+ ),
6209
7253
  external_price_id: T.nilable(String),
6210
7254
  fixed_price_quantity: T.nilable(Float),
6211
7255
  invoice_grouping_key: T.nilable(String),
@@ -6239,6 +7283,8 @@ module Orb
6239
7283
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
6240
7284
  # price is billed.
6241
7285
  currency: nil,
7286
+ # For dimensional price: specifies a price group and dimension values
7287
+ dimensional_price_configuration: nil,
6242
7288
  # An alias for the price.
6243
7289
  external_price_id: nil,
6244
7290
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -6274,6 +7320,10 @@ module Orb
6274
7320
  ),
6275
7321
  conversion_rate: T.nilable(Float),
6276
7322
  currency: T.nilable(String),
7323
+ dimensional_price_configuration:
7324
+ T.nilable(
7325
+ Orb::PlanCreateParams::Price::PackageWithAllocation::DimensionalPriceConfiguration
7326
+ ),
6277
7327
  external_price_id: T.nilable(String),
6278
7328
  fixed_price_quantity: T.nilable(Float),
6279
7329
  invoice_grouping_key: T.nilable(String),
@@ -6429,6 +7479,60 @@ module Orb
6429
7479
  end
6430
7480
  end
6431
7481
 
7482
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
7483
+ OrHash =
7484
+ T.type_alias do
7485
+ T.any(
7486
+ Orb::PlanCreateParams::Price::PackageWithAllocation::DimensionalPriceConfiguration,
7487
+ Orb::Internal::AnyHash
7488
+ )
7489
+ end
7490
+
7491
+ # The list of dimension values matching (in order) the dimensions of the price
7492
+ # group
7493
+ sig { returns(T::Array[String]) }
7494
+ attr_accessor :dimension_values
7495
+
7496
+ # The id of the dimensional price group to include this price in
7497
+ sig { returns(T.nilable(String)) }
7498
+ attr_accessor :dimensional_price_group_id
7499
+
7500
+ # The external id of the dimensional price group to include this price in
7501
+ sig { returns(T.nilable(String)) }
7502
+ attr_accessor :external_dimensional_price_group_id
7503
+
7504
+ # For dimensional price: specifies a price group and dimension values
7505
+ sig do
7506
+ params(
7507
+ dimension_values: T::Array[String],
7508
+ dimensional_price_group_id: T.nilable(String),
7509
+ external_dimensional_price_group_id: T.nilable(String)
7510
+ ).returns(T.attached_class)
7511
+ end
7512
+ def self.new(
7513
+ # The list of dimension values matching (in order) the dimensions of the price
7514
+ # group
7515
+ dimension_values:,
7516
+ # The id of the dimensional price group to include this price in
7517
+ dimensional_price_group_id: nil,
7518
+ # The external id of the dimensional price group to include this price in
7519
+ external_dimensional_price_group_id: nil
7520
+ )
7521
+ end
7522
+
7523
+ sig do
7524
+ override.returns(
7525
+ {
7526
+ dimension_values: T::Array[String],
7527
+ dimensional_price_group_id: T.nilable(String),
7528
+ external_dimensional_price_group_id: T.nilable(String)
7529
+ }
7530
+ )
7531
+ end
7532
+ def to_hash
7533
+ end
7534
+ end
7535
+
6432
7536
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
6433
7537
  OrHash =
6434
7538
  T.type_alias do
@@ -6587,6 +7691,26 @@ module Orb
6587
7691
  sig { returns(T.nilable(String)) }
6588
7692
  attr_accessor :currency
6589
7693
 
7694
+ # For dimensional price: specifies a price group and dimension values
7695
+ sig do
7696
+ returns(
7697
+ T.nilable(
7698
+ Orb::PlanCreateParams::Price::TieredWithProration::DimensionalPriceConfiguration
7699
+ )
7700
+ )
7701
+ end
7702
+ attr_reader :dimensional_price_configuration
7703
+
7704
+ sig do
7705
+ params(
7706
+ dimensional_price_configuration:
7707
+ T.nilable(
7708
+ Orb::PlanCreateParams::Price::TieredWithProration::DimensionalPriceConfiguration::OrHash
7709
+ )
7710
+ ).void
7711
+ end
7712
+ attr_writer :dimensional_price_configuration
7713
+
6590
7714
  # An alias for the price.
6591
7715
  sig { returns(T.nilable(String)) }
6592
7716
  attr_accessor :external_price_id
@@ -6642,6 +7766,10 @@ module Orb
6642
7766
  ),
6643
7767
  conversion_rate: T.nilable(Float),
6644
7768
  currency: T.nilable(String),
7769
+ dimensional_price_configuration:
7770
+ T.nilable(
7771
+ Orb::PlanCreateParams::Price::TieredWithProration::DimensionalPriceConfiguration::OrHash
7772
+ ),
6645
7773
  external_price_id: T.nilable(String),
6646
7774
  fixed_price_quantity: T.nilable(Float),
6647
7775
  invoice_grouping_key: T.nilable(String),
@@ -6675,6 +7803,8 @@ module Orb
6675
7803
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
6676
7804
  # price is billed.
6677
7805
  currency: nil,
7806
+ # For dimensional price: specifies a price group and dimension values
7807
+ dimensional_price_configuration: nil,
6678
7808
  # An alias for the price.
6679
7809
  external_price_id: nil,
6680
7810
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -6710,6 +7840,10 @@ module Orb
6710
7840
  ),
6711
7841
  conversion_rate: T.nilable(Float),
6712
7842
  currency: T.nilable(String),
7843
+ dimensional_price_configuration:
7844
+ T.nilable(
7845
+ Orb::PlanCreateParams::Price::TieredWithProration::DimensionalPriceConfiguration
7846
+ ),
6713
7847
  external_price_id: T.nilable(String),
6714
7848
  fixed_price_quantity: T.nilable(Float),
6715
7849
  invoice_grouping_key: T.nilable(String),
@@ -6865,6 +7999,60 @@ module Orb
6865
7999
  end
6866
8000
  end
6867
8001
 
8002
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
8003
+ OrHash =
8004
+ T.type_alias do
8005
+ T.any(
8006
+ Orb::PlanCreateParams::Price::TieredWithProration::DimensionalPriceConfiguration,
8007
+ Orb::Internal::AnyHash
8008
+ )
8009
+ end
8010
+
8011
+ # The list of dimension values matching (in order) the dimensions of the price
8012
+ # group
8013
+ sig { returns(T::Array[String]) }
8014
+ attr_accessor :dimension_values
8015
+
8016
+ # The id of the dimensional price group to include this price in
8017
+ sig { returns(T.nilable(String)) }
8018
+ attr_accessor :dimensional_price_group_id
8019
+
8020
+ # The external id of the dimensional price group to include this price in
8021
+ sig { returns(T.nilable(String)) }
8022
+ attr_accessor :external_dimensional_price_group_id
8023
+
8024
+ # For dimensional price: specifies a price group and dimension values
8025
+ sig do
8026
+ params(
8027
+ dimension_values: T::Array[String],
8028
+ dimensional_price_group_id: T.nilable(String),
8029
+ external_dimensional_price_group_id: T.nilable(String)
8030
+ ).returns(T.attached_class)
8031
+ end
8032
+ def self.new(
8033
+ # The list of dimension values matching (in order) the dimensions of the price
8034
+ # group
8035
+ dimension_values:,
8036
+ # The id of the dimensional price group to include this price in
8037
+ dimensional_price_group_id: nil,
8038
+ # The external id of the dimensional price group to include this price in
8039
+ external_dimensional_price_group_id: nil
8040
+ )
8041
+ end
8042
+
8043
+ sig do
8044
+ override.returns(
8045
+ {
8046
+ dimension_values: T::Array[String],
8047
+ dimensional_price_group_id: T.nilable(String),
8048
+ external_dimensional_price_group_id: T.nilable(String)
8049
+ }
8050
+ )
8051
+ end
8052
+ def to_hash
8053
+ end
8054
+ end
8055
+
6868
8056
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
6869
8057
  OrHash =
6870
8058
  T.type_alias do
@@ -7023,6 +8211,26 @@ module Orb
7023
8211
  sig { returns(T.nilable(String)) }
7024
8212
  attr_accessor :currency
7025
8213
 
8214
+ # For dimensional price: specifies a price group and dimension values
8215
+ sig do
8216
+ returns(
8217
+ T.nilable(
8218
+ Orb::PlanCreateParams::Price::UnitWithProration::DimensionalPriceConfiguration
8219
+ )
8220
+ )
8221
+ end
8222
+ attr_reader :dimensional_price_configuration
8223
+
8224
+ sig do
8225
+ params(
8226
+ dimensional_price_configuration:
8227
+ T.nilable(
8228
+ Orb::PlanCreateParams::Price::UnitWithProration::DimensionalPriceConfiguration::OrHash
8229
+ )
8230
+ ).void
8231
+ end
8232
+ attr_writer :dimensional_price_configuration
8233
+
7026
8234
  # An alias for the price.
7027
8235
  sig { returns(T.nilable(String)) }
7028
8236
  attr_accessor :external_price_id
@@ -7078,6 +8286,10 @@ module Orb
7078
8286
  ),
7079
8287
  conversion_rate: T.nilable(Float),
7080
8288
  currency: T.nilable(String),
8289
+ dimensional_price_configuration:
8290
+ T.nilable(
8291
+ Orb::PlanCreateParams::Price::UnitWithProration::DimensionalPriceConfiguration::OrHash
8292
+ ),
7081
8293
  external_price_id: T.nilable(String),
7082
8294
  fixed_price_quantity: T.nilable(Float),
7083
8295
  invoice_grouping_key: T.nilable(String),
@@ -7111,6 +8323,8 @@ module Orb
7111
8323
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
7112
8324
  # price is billed.
7113
8325
  currency: nil,
8326
+ # For dimensional price: specifies a price group and dimension values
8327
+ dimensional_price_configuration: nil,
7114
8328
  # An alias for the price.
7115
8329
  external_price_id: nil,
7116
8330
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -7146,6 +8360,10 @@ module Orb
7146
8360
  ),
7147
8361
  conversion_rate: T.nilable(Float),
7148
8362
  currency: T.nilable(String),
8363
+ dimensional_price_configuration:
8364
+ T.nilable(
8365
+ Orb::PlanCreateParams::Price::UnitWithProration::DimensionalPriceConfiguration
8366
+ ),
7149
8367
  external_price_id: T.nilable(String),
7150
8368
  fixed_price_quantity: T.nilable(Float),
7151
8369
  invoice_grouping_key: T.nilable(String),
@@ -7301,6 +8519,60 @@ module Orb
7301
8519
  end
7302
8520
  end
7303
8521
 
8522
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
8523
+ OrHash =
8524
+ T.type_alias do
8525
+ T.any(
8526
+ Orb::PlanCreateParams::Price::UnitWithProration::DimensionalPriceConfiguration,
8527
+ Orb::Internal::AnyHash
8528
+ )
8529
+ end
8530
+
8531
+ # The list of dimension values matching (in order) the dimensions of the price
8532
+ # group
8533
+ sig { returns(T::Array[String]) }
8534
+ attr_accessor :dimension_values
8535
+
8536
+ # The id of the dimensional price group to include this price in
8537
+ sig { returns(T.nilable(String)) }
8538
+ attr_accessor :dimensional_price_group_id
8539
+
8540
+ # The external id of the dimensional price group to include this price in
8541
+ sig { returns(T.nilable(String)) }
8542
+ attr_accessor :external_dimensional_price_group_id
8543
+
8544
+ # For dimensional price: specifies a price group and dimension values
8545
+ sig do
8546
+ params(
8547
+ dimension_values: T::Array[String],
8548
+ dimensional_price_group_id: T.nilable(String),
8549
+ external_dimensional_price_group_id: T.nilable(String)
8550
+ ).returns(T.attached_class)
8551
+ end
8552
+ def self.new(
8553
+ # The list of dimension values matching (in order) the dimensions of the price
8554
+ # group
8555
+ dimension_values:,
8556
+ # The id of the dimensional price group to include this price in
8557
+ dimensional_price_group_id: nil,
8558
+ # The external id of the dimensional price group to include this price in
8559
+ external_dimensional_price_group_id: nil
8560
+ )
8561
+ end
8562
+
8563
+ sig do
8564
+ override.returns(
8565
+ {
8566
+ dimension_values: T::Array[String],
8567
+ dimensional_price_group_id: T.nilable(String),
8568
+ external_dimensional_price_group_id: T.nilable(String)
8569
+ }
8570
+ )
8571
+ end
8572
+ def to_hash
8573
+ end
8574
+ end
8575
+
7304
8576
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
7305
8577
  OrHash =
7306
8578
  T.type_alias do
@@ -7459,6 +8731,26 @@ module Orb
7459
8731
  sig { returns(T.nilable(String)) }
7460
8732
  attr_accessor :currency
7461
8733
 
8734
+ # For dimensional price: specifies a price group and dimension values
8735
+ sig do
8736
+ returns(
8737
+ T.nilable(
8738
+ Orb::PlanCreateParams::Price::GroupedAllocation::DimensionalPriceConfiguration
8739
+ )
8740
+ )
8741
+ end
8742
+ attr_reader :dimensional_price_configuration
8743
+
8744
+ sig do
8745
+ params(
8746
+ dimensional_price_configuration:
8747
+ T.nilable(
8748
+ Orb::PlanCreateParams::Price::GroupedAllocation::DimensionalPriceConfiguration::OrHash
8749
+ )
8750
+ ).void
8751
+ end
8752
+ attr_writer :dimensional_price_configuration
8753
+
7462
8754
  # An alias for the price.
7463
8755
  sig { returns(T.nilable(String)) }
7464
8756
  attr_accessor :external_price_id
@@ -7514,6 +8806,10 @@ module Orb
7514
8806
  ),
7515
8807
  conversion_rate: T.nilable(Float),
7516
8808
  currency: T.nilable(String),
8809
+ dimensional_price_configuration:
8810
+ T.nilable(
8811
+ Orb::PlanCreateParams::Price::GroupedAllocation::DimensionalPriceConfiguration::OrHash
8812
+ ),
7517
8813
  external_price_id: T.nilable(String),
7518
8814
  fixed_price_quantity: T.nilable(Float),
7519
8815
  invoice_grouping_key: T.nilable(String),
@@ -7547,6 +8843,8 @@ module Orb
7547
8843
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
7548
8844
  # price is billed.
7549
8845
  currency: nil,
8846
+ # For dimensional price: specifies a price group and dimension values
8847
+ dimensional_price_configuration: nil,
7550
8848
  # An alias for the price.
7551
8849
  external_price_id: nil,
7552
8850
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -7582,6 +8880,10 @@ module Orb
7582
8880
  ),
7583
8881
  conversion_rate: T.nilable(Float),
7584
8882
  currency: T.nilable(String),
8883
+ dimensional_price_configuration:
8884
+ T.nilable(
8885
+ Orb::PlanCreateParams::Price::GroupedAllocation::DimensionalPriceConfiguration
8886
+ ),
7585
8887
  external_price_id: T.nilable(String),
7586
8888
  fixed_price_quantity: T.nilable(Float),
7587
8889
  invoice_grouping_key: T.nilable(String),
@@ -7737,17 +9039,71 @@ module Orb
7737
9039
  end
7738
9040
  end
7739
9041
 
7740
- class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
9042
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
7741
9043
  OrHash =
7742
9044
  T.type_alias do
7743
9045
  T.any(
7744
- Orb::PlanCreateParams::Price::GroupedAllocation::InvoicingCycleConfiguration,
9046
+ Orb::PlanCreateParams::Price::GroupedAllocation::DimensionalPriceConfiguration,
7745
9047
  Orb::Internal::AnyHash
7746
9048
  )
7747
9049
  end
7748
9050
 
7749
- # The duration of the billing period.
7750
- sig { returns(Integer) }
9051
+ # The list of dimension values matching (in order) the dimensions of the price
9052
+ # group
9053
+ sig { returns(T::Array[String]) }
9054
+ attr_accessor :dimension_values
9055
+
9056
+ # The id of the dimensional price group to include this price in
9057
+ sig { returns(T.nilable(String)) }
9058
+ attr_accessor :dimensional_price_group_id
9059
+
9060
+ # The external id of the dimensional price group to include this price in
9061
+ sig { returns(T.nilable(String)) }
9062
+ attr_accessor :external_dimensional_price_group_id
9063
+
9064
+ # For dimensional price: specifies a price group and dimension values
9065
+ sig do
9066
+ params(
9067
+ dimension_values: T::Array[String],
9068
+ dimensional_price_group_id: T.nilable(String),
9069
+ external_dimensional_price_group_id: T.nilable(String)
9070
+ ).returns(T.attached_class)
9071
+ end
9072
+ def self.new(
9073
+ # The list of dimension values matching (in order) the dimensions of the price
9074
+ # group
9075
+ dimension_values:,
9076
+ # The id of the dimensional price group to include this price in
9077
+ dimensional_price_group_id: nil,
9078
+ # The external id of the dimensional price group to include this price in
9079
+ external_dimensional_price_group_id: nil
9080
+ )
9081
+ end
9082
+
9083
+ sig do
9084
+ override.returns(
9085
+ {
9086
+ dimension_values: T::Array[String],
9087
+ dimensional_price_group_id: T.nilable(String),
9088
+ external_dimensional_price_group_id: T.nilable(String)
9089
+ }
9090
+ )
9091
+ end
9092
+ def to_hash
9093
+ end
9094
+ end
9095
+
9096
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
9097
+ OrHash =
9098
+ T.type_alias do
9099
+ T.any(
9100
+ Orb::PlanCreateParams::Price::GroupedAllocation::InvoicingCycleConfiguration,
9101
+ Orb::Internal::AnyHash
9102
+ )
9103
+ end
9104
+
9105
+ # The duration of the billing period.
9106
+ sig { returns(Integer) }
7751
9107
  attr_accessor :duration
7752
9108
 
7753
9109
  # The unit of billing period duration.
@@ -7895,6 +9251,26 @@ module Orb
7895
9251
  sig { returns(T.nilable(String)) }
7896
9252
  attr_accessor :currency
7897
9253
 
9254
+ # For dimensional price: specifies a price group and dimension values
9255
+ sig do
9256
+ returns(
9257
+ T.nilable(
9258
+ Orb::PlanCreateParams::Price::GroupedWithProratedMinimum::DimensionalPriceConfiguration
9259
+ )
9260
+ )
9261
+ end
9262
+ attr_reader :dimensional_price_configuration
9263
+
9264
+ sig do
9265
+ params(
9266
+ dimensional_price_configuration:
9267
+ T.nilable(
9268
+ Orb::PlanCreateParams::Price::GroupedWithProratedMinimum::DimensionalPriceConfiguration::OrHash
9269
+ )
9270
+ ).void
9271
+ end
9272
+ attr_writer :dimensional_price_configuration
9273
+
7898
9274
  # An alias for the price.
7899
9275
  sig { returns(T.nilable(String)) }
7900
9276
  attr_accessor :external_price_id
@@ -7950,6 +9326,10 @@ module Orb
7950
9326
  ),
7951
9327
  conversion_rate: T.nilable(Float),
7952
9328
  currency: T.nilable(String),
9329
+ dimensional_price_configuration:
9330
+ T.nilable(
9331
+ Orb::PlanCreateParams::Price::GroupedWithProratedMinimum::DimensionalPriceConfiguration::OrHash
9332
+ ),
7953
9333
  external_price_id: T.nilable(String),
7954
9334
  fixed_price_quantity: T.nilable(Float),
7955
9335
  invoice_grouping_key: T.nilable(String),
@@ -7983,6 +9363,8 @@ module Orb
7983
9363
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
7984
9364
  # price is billed.
7985
9365
  currency: nil,
9366
+ # For dimensional price: specifies a price group and dimension values
9367
+ dimensional_price_configuration: nil,
7986
9368
  # An alias for the price.
7987
9369
  external_price_id: nil,
7988
9370
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -8019,6 +9401,10 @@ module Orb
8019
9401
  ),
8020
9402
  conversion_rate: T.nilable(Float),
8021
9403
  currency: T.nilable(String),
9404
+ dimensional_price_configuration:
9405
+ T.nilable(
9406
+ Orb::PlanCreateParams::Price::GroupedWithProratedMinimum::DimensionalPriceConfiguration
9407
+ ),
8022
9408
  external_price_id: T.nilable(String),
8023
9409
  fixed_price_quantity: T.nilable(Float),
8024
9410
  invoice_grouping_key: T.nilable(String),
@@ -8174,6 +9560,60 @@ module Orb
8174
9560
  end
8175
9561
  end
8176
9562
 
9563
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
9564
+ OrHash =
9565
+ T.type_alias do
9566
+ T.any(
9567
+ Orb::PlanCreateParams::Price::GroupedWithProratedMinimum::DimensionalPriceConfiguration,
9568
+ Orb::Internal::AnyHash
9569
+ )
9570
+ end
9571
+
9572
+ # The list of dimension values matching (in order) the dimensions of the price
9573
+ # group
9574
+ sig { returns(T::Array[String]) }
9575
+ attr_accessor :dimension_values
9576
+
9577
+ # The id of the dimensional price group to include this price in
9578
+ sig { returns(T.nilable(String)) }
9579
+ attr_accessor :dimensional_price_group_id
9580
+
9581
+ # The external id of the dimensional price group to include this price in
9582
+ sig { returns(T.nilable(String)) }
9583
+ attr_accessor :external_dimensional_price_group_id
9584
+
9585
+ # For dimensional price: specifies a price group and dimension values
9586
+ sig do
9587
+ params(
9588
+ dimension_values: T::Array[String],
9589
+ dimensional_price_group_id: T.nilable(String),
9590
+ external_dimensional_price_group_id: T.nilable(String)
9591
+ ).returns(T.attached_class)
9592
+ end
9593
+ def self.new(
9594
+ # The list of dimension values matching (in order) the dimensions of the price
9595
+ # group
9596
+ dimension_values:,
9597
+ # The id of the dimensional price group to include this price in
9598
+ dimensional_price_group_id: nil,
9599
+ # The external id of the dimensional price group to include this price in
9600
+ external_dimensional_price_group_id: nil
9601
+ )
9602
+ end
9603
+
9604
+ sig do
9605
+ override.returns(
9606
+ {
9607
+ dimension_values: T::Array[String],
9608
+ dimensional_price_group_id: T.nilable(String),
9609
+ external_dimensional_price_group_id: T.nilable(String)
9610
+ }
9611
+ )
9612
+ end
9613
+ def to_hash
9614
+ end
9615
+ end
9616
+
8177
9617
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
8178
9618
  OrHash =
8179
9619
  T.type_alias do
@@ -8332,6 +9772,26 @@ module Orb
8332
9772
  sig { returns(T.nilable(String)) }
8333
9773
  attr_accessor :currency
8334
9774
 
9775
+ # For dimensional price: specifies a price group and dimension values
9776
+ sig do
9777
+ returns(
9778
+ T.nilable(
9779
+ Orb::PlanCreateParams::Price::GroupedWithMeteredMinimum::DimensionalPriceConfiguration
9780
+ )
9781
+ )
9782
+ end
9783
+ attr_reader :dimensional_price_configuration
9784
+
9785
+ sig do
9786
+ params(
9787
+ dimensional_price_configuration:
9788
+ T.nilable(
9789
+ Orb::PlanCreateParams::Price::GroupedWithMeteredMinimum::DimensionalPriceConfiguration::OrHash
9790
+ )
9791
+ ).void
9792
+ end
9793
+ attr_writer :dimensional_price_configuration
9794
+
8335
9795
  # An alias for the price.
8336
9796
  sig { returns(T.nilable(String)) }
8337
9797
  attr_accessor :external_price_id
@@ -8387,6 +9847,10 @@ module Orb
8387
9847
  ),
8388
9848
  conversion_rate: T.nilable(Float),
8389
9849
  currency: T.nilable(String),
9850
+ dimensional_price_configuration:
9851
+ T.nilable(
9852
+ Orb::PlanCreateParams::Price::GroupedWithMeteredMinimum::DimensionalPriceConfiguration::OrHash
9853
+ ),
8390
9854
  external_price_id: T.nilable(String),
8391
9855
  fixed_price_quantity: T.nilable(Float),
8392
9856
  invoice_grouping_key: T.nilable(String),
@@ -8420,6 +9884,8 @@ module Orb
8420
9884
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
8421
9885
  # price is billed.
8422
9886
  currency: nil,
9887
+ # For dimensional price: specifies a price group and dimension values
9888
+ dimensional_price_configuration: nil,
8423
9889
  # An alias for the price.
8424
9890
  external_price_id: nil,
8425
9891
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -8456,6 +9922,10 @@ module Orb
8456
9922
  ),
8457
9923
  conversion_rate: T.nilable(Float),
8458
9924
  currency: T.nilable(String),
9925
+ dimensional_price_configuration:
9926
+ T.nilable(
9927
+ Orb::PlanCreateParams::Price::GroupedWithMeteredMinimum::DimensionalPriceConfiguration
9928
+ ),
8459
9929
  external_price_id: T.nilable(String),
8460
9930
  fixed_price_quantity: T.nilable(Float),
8461
9931
  invoice_grouping_key: T.nilable(String),
@@ -8611,6 +10081,60 @@ module Orb
8611
10081
  end
8612
10082
  end
8613
10083
 
10084
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
10085
+ OrHash =
10086
+ T.type_alias do
10087
+ T.any(
10088
+ Orb::PlanCreateParams::Price::GroupedWithMeteredMinimum::DimensionalPriceConfiguration,
10089
+ Orb::Internal::AnyHash
10090
+ )
10091
+ end
10092
+
10093
+ # The list of dimension values matching (in order) the dimensions of the price
10094
+ # group
10095
+ sig { returns(T::Array[String]) }
10096
+ attr_accessor :dimension_values
10097
+
10098
+ # The id of the dimensional price group to include this price in
10099
+ sig { returns(T.nilable(String)) }
10100
+ attr_accessor :dimensional_price_group_id
10101
+
10102
+ # The external id of the dimensional price group to include this price in
10103
+ sig { returns(T.nilable(String)) }
10104
+ attr_accessor :external_dimensional_price_group_id
10105
+
10106
+ # For dimensional price: specifies a price group and dimension values
10107
+ sig do
10108
+ params(
10109
+ dimension_values: T::Array[String],
10110
+ dimensional_price_group_id: T.nilable(String),
10111
+ external_dimensional_price_group_id: T.nilable(String)
10112
+ ).returns(T.attached_class)
10113
+ end
10114
+ def self.new(
10115
+ # The list of dimension values matching (in order) the dimensions of the price
10116
+ # group
10117
+ dimension_values:,
10118
+ # The id of the dimensional price group to include this price in
10119
+ dimensional_price_group_id: nil,
10120
+ # The external id of the dimensional price group to include this price in
10121
+ external_dimensional_price_group_id: nil
10122
+ )
10123
+ end
10124
+
10125
+ sig do
10126
+ override.returns(
10127
+ {
10128
+ dimension_values: T::Array[String],
10129
+ dimensional_price_group_id: T.nilable(String),
10130
+ external_dimensional_price_group_id: T.nilable(String)
10131
+ }
10132
+ )
10133
+ end
10134
+ def to_hash
10135
+ end
10136
+ end
10137
+
8614
10138
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
8615
10139
  OrHash =
8616
10140
  T.type_alias do
@@ -8769,6 +10293,26 @@ module Orb
8769
10293
  sig { returns(T.nilable(String)) }
8770
10294
  attr_accessor :currency
8771
10295
 
10296
+ # For dimensional price: specifies a price group and dimension values
10297
+ sig do
10298
+ returns(
10299
+ T.nilable(
10300
+ Orb::PlanCreateParams::Price::MatrixWithDisplayName::DimensionalPriceConfiguration
10301
+ )
10302
+ )
10303
+ end
10304
+ attr_reader :dimensional_price_configuration
10305
+
10306
+ sig do
10307
+ params(
10308
+ dimensional_price_configuration:
10309
+ T.nilable(
10310
+ Orb::PlanCreateParams::Price::MatrixWithDisplayName::DimensionalPriceConfiguration::OrHash
10311
+ )
10312
+ ).void
10313
+ end
10314
+ attr_writer :dimensional_price_configuration
10315
+
8772
10316
  # An alias for the price.
8773
10317
  sig { returns(T.nilable(String)) }
8774
10318
  attr_accessor :external_price_id
@@ -8824,6 +10368,10 @@ module Orb
8824
10368
  ),
8825
10369
  conversion_rate: T.nilable(Float),
8826
10370
  currency: T.nilable(String),
10371
+ dimensional_price_configuration:
10372
+ T.nilable(
10373
+ Orb::PlanCreateParams::Price::MatrixWithDisplayName::DimensionalPriceConfiguration::OrHash
10374
+ ),
8827
10375
  external_price_id: T.nilable(String),
8828
10376
  fixed_price_quantity: T.nilable(Float),
8829
10377
  invoice_grouping_key: T.nilable(String),
@@ -8857,6 +10405,8 @@ module Orb
8857
10405
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
8858
10406
  # price is billed.
8859
10407
  currency: nil,
10408
+ # For dimensional price: specifies a price group and dimension values
10409
+ dimensional_price_configuration: nil,
8860
10410
  # An alias for the price.
8861
10411
  external_price_id: nil,
8862
10412
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -8892,6 +10442,10 @@ module Orb
8892
10442
  ),
8893
10443
  conversion_rate: T.nilable(Float),
8894
10444
  currency: T.nilable(String),
10445
+ dimensional_price_configuration:
10446
+ T.nilable(
10447
+ Orb::PlanCreateParams::Price::MatrixWithDisplayName::DimensionalPriceConfiguration
10448
+ ),
8895
10449
  external_price_id: T.nilable(String),
8896
10450
  fixed_price_quantity: T.nilable(Float),
8897
10451
  invoice_grouping_key: T.nilable(String),
@@ -9047,6 +10601,60 @@ module Orb
9047
10601
  end
9048
10602
  end
9049
10603
 
10604
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
10605
+ OrHash =
10606
+ T.type_alias do
10607
+ T.any(
10608
+ Orb::PlanCreateParams::Price::MatrixWithDisplayName::DimensionalPriceConfiguration,
10609
+ Orb::Internal::AnyHash
10610
+ )
10611
+ end
10612
+
10613
+ # The list of dimension values matching (in order) the dimensions of the price
10614
+ # group
10615
+ sig { returns(T::Array[String]) }
10616
+ attr_accessor :dimension_values
10617
+
10618
+ # The id of the dimensional price group to include this price in
10619
+ sig { returns(T.nilable(String)) }
10620
+ attr_accessor :dimensional_price_group_id
10621
+
10622
+ # The external id of the dimensional price group to include this price in
10623
+ sig { returns(T.nilable(String)) }
10624
+ attr_accessor :external_dimensional_price_group_id
10625
+
10626
+ # For dimensional price: specifies a price group and dimension values
10627
+ sig do
10628
+ params(
10629
+ dimension_values: T::Array[String],
10630
+ dimensional_price_group_id: T.nilable(String),
10631
+ external_dimensional_price_group_id: T.nilable(String)
10632
+ ).returns(T.attached_class)
10633
+ end
10634
+ def self.new(
10635
+ # The list of dimension values matching (in order) the dimensions of the price
10636
+ # group
10637
+ dimension_values:,
10638
+ # The id of the dimensional price group to include this price in
10639
+ dimensional_price_group_id: nil,
10640
+ # The external id of the dimensional price group to include this price in
10641
+ external_dimensional_price_group_id: nil
10642
+ )
10643
+ end
10644
+
10645
+ sig do
10646
+ override.returns(
10647
+ {
10648
+ dimension_values: T::Array[String],
10649
+ dimensional_price_group_id: T.nilable(String),
10650
+ external_dimensional_price_group_id: T.nilable(String)
10651
+ }
10652
+ )
10653
+ end
10654
+ def to_hash
10655
+ end
10656
+ end
10657
+
9050
10658
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
9051
10659
  OrHash =
9052
10660
  T.type_alias do
@@ -9205,6 +10813,26 @@ module Orb
9205
10813
  sig { returns(T.nilable(String)) }
9206
10814
  attr_accessor :currency
9207
10815
 
10816
+ # For dimensional price: specifies a price group and dimension values
10817
+ sig do
10818
+ returns(
10819
+ T.nilable(
10820
+ Orb::PlanCreateParams::Price::BulkWithProration::DimensionalPriceConfiguration
10821
+ )
10822
+ )
10823
+ end
10824
+ attr_reader :dimensional_price_configuration
10825
+
10826
+ sig do
10827
+ params(
10828
+ dimensional_price_configuration:
10829
+ T.nilable(
10830
+ Orb::PlanCreateParams::Price::BulkWithProration::DimensionalPriceConfiguration::OrHash
10831
+ )
10832
+ ).void
10833
+ end
10834
+ attr_writer :dimensional_price_configuration
10835
+
9208
10836
  # An alias for the price.
9209
10837
  sig { returns(T.nilable(String)) }
9210
10838
  attr_accessor :external_price_id
@@ -9260,6 +10888,10 @@ module Orb
9260
10888
  ),
9261
10889
  conversion_rate: T.nilable(Float),
9262
10890
  currency: T.nilable(String),
10891
+ dimensional_price_configuration:
10892
+ T.nilable(
10893
+ Orb::PlanCreateParams::Price::BulkWithProration::DimensionalPriceConfiguration::OrHash
10894
+ ),
9263
10895
  external_price_id: T.nilable(String),
9264
10896
  fixed_price_quantity: T.nilable(Float),
9265
10897
  invoice_grouping_key: T.nilable(String),
@@ -9293,6 +10925,8 @@ module Orb
9293
10925
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
9294
10926
  # price is billed.
9295
10927
  currency: nil,
10928
+ # For dimensional price: specifies a price group and dimension values
10929
+ dimensional_price_configuration: nil,
9296
10930
  # An alias for the price.
9297
10931
  external_price_id: nil,
9298
10932
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -9328,6 +10962,10 @@ module Orb
9328
10962
  ),
9329
10963
  conversion_rate: T.nilable(Float),
9330
10964
  currency: T.nilable(String),
10965
+ dimensional_price_configuration:
10966
+ T.nilable(
10967
+ Orb::PlanCreateParams::Price::BulkWithProration::DimensionalPriceConfiguration
10968
+ ),
9331
10969
  external_price_id: T.nilable(String),
9332
10970
  fixed_price_quantity: T.nilable(Float),
9333
10971
  invoice_grouping_key: T.nilable(String),
@@ -9483,6 +11121,60 @@ module Orb
9483
11121
  end
9484
11122
  end
9485
11123
 
11124
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
11125
+ OrHash =
11126
+ T.type_alias do
11127
+ T.any(
11128
+ Orb::PlanCreateParams::Price::BulkWithProration::DimensionalPriceConfiguration,
11129
+ Orb::Internal::AnyHash
11130
+ )
11131
+ end
11132
+
11133
+ # The list of dimension values matching (in order) the dimensions of the price
11134
+ # group
11135
+ sig { returns(T::Array[String]) }
11136
+ attr_accessor :dimension_values
11137
+
11138
+ # The id of the dimensional price group to include this price in
11139
+ sig { returns(T.nilable(String)) }
11140
+ attr_accessor :dimensional_price_group_id
11141
+
11142
+ # The external id of the dimensional price group to include this price in
11143
+ sig { returns(T.nilable(String)) }
11144
+ attr_accessor :external_dimensional_price_group_id
11145
+
11146
+ # For dimensional price: specifies a price group and dimension values
11147
+ sig do
11148
+ params(
11149
+ dimension_values: T::Array[String],
11150
+ dimensional_price_group_id: T.nilable(String),
11151
+ external_dimensional_price_group_id: T.nilable(String)
11152
+ ).returns(T.attached_class)
11153
+ end
11154
+ def self.new(
11155
+ # The list of dimension values matching (in order) the dimensions of the price
11156
+ # group
11157
+ dimension_values:,
11158
+ # The id of the dimensional price group to include this price in
11159
+ dimensional_price_group_id: nil,
11160
+ # The external id of the dimensional price group to include this price in
11161
+ external_dimensional_price_group_id: nil
11162
+ )
11163
+ end
11164
+
11165
+ sig do
11166
+ override.returns(
11167
+ {
11168
+ dimension_values: T::Array[String],
11169
+ dimensional_price_group_id: T.nilable(String),
11170
+ external_dimensional_price_group_id: T.nilable(String)
11171
+ }
11172
+ )
11173
+ end
11174
+ def to_hash
11175
+ end
11176
+ end
11177
+
9486
11178
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
9487
11179
  OrHash =
9488
11180
  T.type_alias do
@@ -9641,6 +11333,26 @@ module Orb
9641
11333
  sig { returns(T.nilable(String)) }
9642
11334
  attr_accessor :currency
9643
11335
 
11336
+ # For dimensional price: specifies a price group and dimension values
11337
+ sig do
11338
+ returns(
11339
+ T.nilable(
11340
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::DimensionalPriceConfiguration
11341
+ )
11342
+ )
11343
+ end
11344
+ attr_reader :dimensional_price_configuration
11345
+
11346
+ sig do
11347
+ params(
11348
+ dimensional_price_configuration:
11349
+ T.nilable(
11350
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::DimensionalPriceConfiguration::OrHash
11351
+ )
11352
+ ).void
11353
+ end
11354
+ attr_writer :dimensional_price_configuration
11355
+
9644
11356
  # An alias for the price.
9645
11357
  sig { returns(T.nilable(String)) }
9646
11358
  attr_accessor :external_price_id
@@ -9696,6 +11408,10 @@ module Orb
9696
11408
  ),
9697
11409
  conversion_rate: T.nilable(Float),
9698
11410
  currency: T.nilable(String),
11411
+ dimensional_price_configuration:
11412
+ T.nilable(
11413
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::DimensionalPriceConfiguration::OrHash
11414
+ ),
9699
11415
  external_price_id: T.nilable(String),
9700
11416
  fixed_price_quantity: T.nilable(Float),
9701
11417
  invoice_grouping_key: T.nilable(String),
@@ -9729,6 +11445,8 @@ module Orb
9729
11445
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
9730
11446
  # price is billed.
9731
11447
  currency: nil,
11448
+ # For dimensional price: specifies a price group and dimension values
11449
+ dimensional_price_configuration: nil,
9732
11450
  # An alias for the price.
9733
11451
  external_price_id: nil,
9734
11452
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -9764,6 +11482,10 @@ module Orb
9764
11482
  ),
9765
11483
  conversion_rate: T.nilable(Float),
9766
11484
  currency: T.nilable(String),
11485
+ dimensional_price_configuration:
11486
+ T.nilable(
11487
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::DimensionalPriceConfiguration
11488
+ ),
9767
11489
  external_price_id: T.nilable(String),
9768
11490
  fixed_price_quantity: T.nilable(Float),
9769
11491
  invoice_grouping_key: T.nilable(String),
@@ -9919,23 +11641,77 @@ module Orb
9919
11641
  end
9920
11642
  end
9921
11643
 
9922
- class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
11644
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
9923
11645
  OrHash =
9924
11646
  T.type_alias do
9925
11647
  T.any(
9926
- Orb::PlanCreateParams::Price::GroupedTieredPackage::InvoicingCycleConfiguration,
11648
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::DimensionalPriceConfiguration,
9927
11649
  Orb::Internal::AnyHash
9928
11650
  )
9929
11651
  end
9930
11652
 
9931
- # The duration of the billing period.
9932
- sig { returns(Integer) }
9933
- attr_accessor :duration
11653
+ # The list of dimension values matching (in order) the dimensions of the price
11654
+ # group
11655
+ sig { returns(T::Array[String]) }
11656
+ attr_accessor :dimension_values
9934
11657
 
9935
- # The unit of billing period duration.
11658
+ # The id of the dimensional price group to include this price in
11659
+ sig { returns(T.nilable(String)) }
11660
+ attr_accessor :dimensional_price_group_id
11661
+
11662
+ # The external id of the dimensional price group to include this price in
11663
+ sig { returns(T.nilable(String)) }
11664
+ attr_accessor :external_dimensional_price_group_id
11665
+
11666
+ # For dimensional price: specifies a price group and dimension values
9936
11667
  sig do
9937
- returns(
9938
- Orb::PlanCreateParams::Price::GroupedTieredPackage::InvoicingCycleConfiguration::DurationUnit::OrSymbol
11668
+ params(
11669
+ dimension_values: T::Array[String],
11670
+ dimensional_price_group_id: T.nilable(String),
11671
+ external_dimensional_price_group_id: T.nilable(String)
11672
+ ).returns(T.attached_class)
11673
+ end
11674
+ def self.new(
11675
+ # The list of dimension values matching (in order) the dimensions of the price
11676
+ # group
11677
+ dimension_values:,
11678
+ # The id of the dimensional price group to include this price in
11679
+ dimensional_price_group_id: nil,
11680
+ # The external id of the dimensional price group to include this price in
11681
+ external_dimensional_price_group_id: nil
11682
+ )
11683
+ end
11684
+
11685
+ sig do
11686
+ override.returns(
11687
+ {
11688
+ dimension_values: T::Array[String],
11689
+ dimensional_price_group_id: T.nilable(String),
11690
+ external_dimensional_price_group_id: T.nilable(String)
11691
+ }
11692
+ )
11693
+ end
11694
+ def to_hash
11695
+ end
11696
+ end
11697
+
11698
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
11699
+ OrHash =
11700
+ T.type_alias do
11701
+ T.any(
11702
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::InvoicingCycleConfiguration,
11703
+ Orb::Internal::AnyHash
11704
+ )
11705
+ end
11706
+
11707
+ # The duration of the billing period.
11708
+ sig { returns(Integer) }
11709
+ attr_accessor :duration
11710
+
11711
+ # The unit of billing period duration.
11712
+ sig do
11713
+ returns(
11714
+ Orb::PlanCreateParams::Price::GroupedTieredPackage::InvoicingCycleConfiguration::DurationUnit::OrSymbol
9939
11715
  )
9940
11716
  end
9941
11717
  attr_accessor :duration_unit
@@ -10077,6 +11853,26 @@ module Orb
10077
11853
  sig { returns(T.nilable(String)) }
10078
11854
  attr_accessor :currency
10079
11855
 
11856
+ # For dimensional price: specifies a price group and dimension values
11857
+ sig do
11858
+ returns(
11859
+ T.nilable(
11860
+ Orb::PlanCreateParams::Price::MaxGroupTieredPackage::DimensionalPriceConfiguration
11861
+ )
11862
+ )
11863
+ end
11864
+ attr_reader :dimensional_price_configuration
11865
+
11866
+ sig do
11867
+ params(
11868
+ dimensional_price_configuration:
11869
+ T.nilable(
11870
+ Orb::PlanCreateParams::Price::MaxGroupTieredPackage::DimensionalPriceConfiguration::OrHash
11871
+ )
11872
+ ).void
11873
+ end
11874
+ attr_writer :dimensional_price_configuration
11875
+
10080
11876
  # An alias for the price.
10081
11877
  sig { returns(T.nilable(String)) }
10082
11878
  attr_accessor :external_price_id
@@ -10132,6 +11928,10 @@ module Orb
10132
11928
  ),
10133
11929
  conversion_rate: T.nilable(Float),
10134
11930
  currency: T.nilable(String),
11931
+ dimensional_price_configuration:
11932
+ T.nilable(
11933
+ Orb::PlanCreateParams::Price::MaxGroupTieredPackage::DimensionalPriceConfiguration::OrHash
11934
+ ),
10135
11935
  external_price_id: T.nilable(String),
10136
11936
  fixed_price_quantity: T.nilable(Float),
10137
11937
  invoice_grouping_key: T.nilable(String),
@@ -10165,6 +11965,8 @@ module Orb
10165
11965
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
10166
11966
  # price is billed.
10167
11967
  currency: nil,
11968
+ # For dimensional price: specifies a price group and dimension values
11969
+ dimensional_price_configuration: nil,
10168
11970
  # An alias for the price.
10169
11971
  external_price_id: nil,
10170
11972
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -10200,6 +12002,10 @@ module Orb
10200
12002
  ),
10201
12003
  conversion_rate: T.nilable(Float),
10202
12004
  currency: T.nilable(String),
12005
+ dimensional_price_configuration:
12006
+ T.nilable(
12007
+ Orb::PlanCreateParams::Price::MaxGroupTieredPackage::DimensionalPriceConfiguration
12008
+ ),
10203
12009
  external_price_id: T.nilable(String),
10204
12010
  fixed_price_quantity: T.nilable(Float),
10205
12011
  invoice_grouping_key: T.nilable(String),
@@ -10355,6 +12161,60 @@ module Orb
10355
12161
  end
10356
12162
  end
10357
12163
 
12164
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
12165
+ OrHash =
12166
+ T.type_alias do
12167
+ T.any(
12168
+ Orb::PlanCreateParams::Price::MaxGroupTieredPackage::DimensionalPriceConfiguration,
12169
+ Orb::Internal::AnyHash
12170
+ )
12171
+ end
12172
+
12173
+ # The list of dimension values matching (in order) the dimensions of the price
12174
+ # group
12175
+ sig { returns(T::Array[String]) }
12176
+ attr_accessor :dimension_values
12177
+
12178
+ # The id of the dimensional price group to include this price in
12179
+ sig { returns(T.nilable(String)) }
12180
+ attr_accessor :dimensional_price_group_id
12181
+
12182
+ # The external id of the dimensional price group to include this price in
12183
+ sig { returns(T.nilable(String)) }
12184
+ attr_accessor :external_dimensional_price_group_id
12185
+
12186
+ # For dimensional price: specifies a price group and dimension values
12187
+ sig do
12188
+ params(
12189
+ dimension_values: T::Array[String],
12190
+ dimensional_price_group_id: T.nilable(String),
12191
+ external_dimensional_price_group_id: T.nilable(String)
12192
+ ).returns(T.attached_class)
12193
+ end
12194
+ def self.new(
12195
+ # The list of dimension values matching (in order) the dimensions of the price
12196
+ # group
12197
+ dimension_values:,
12198
+ # The id of the dimensional price group to include this price in
12199
+ dimensional_price_group_id: nil,
12200
+ # The external id of the dimensional price group to include this price in
12201
+ external_dimensional_price_group_id: nil
12202
+ )
12203
+ end
12204
+
12205
+ sig do
12206
+ override.returns(
12207
+ {
12208
+ dimension_values: T::Array[String],
12209
+ dimensional_price_group_id: T.nilable(String),
12210
+ external_dimensional_price_group_id: T.nilable(String)
12211
+ }
12212
+ )
12213
+ end
12214
+ def to_hash
12215
+ end
12216
+ end
12217
+
10358
12218
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
10359
12219
  OrHash =
10360
12220
  T.type_alias do
@@ -10513,6 +12373,26 @@ module Orb
10513
12373
  sig { returns(T.nilable(String)) }
10514
12374
  attr_accessor :currency
10515
12375
 
12376
+ # For dimensional price: specifies a price group and dimension values
12377
+ sig do
12378
+ returns(
12379
+ T.nilable(
12380
+ Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::DimensionalPriceConfiguration
12381
+ )
12382
+ )
12383
+ end
12384
+ attr_reader :dimensional_price_configuration
12385
+
12386
+ sig do
12387
+ params(
12388
+ dimensional_price_configuration:
12389
+ T.nilable(
12390
+ Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::DimensionalPriceConfiguration::OrHash
12391
+ )
12392
+ ).void
12393
+ end
12394
+ attr_writer :dimensional_price_configuration
12395
+
10516
12396
  # An alias for the price.
10517
12397
  sig { returns(T.nilable(String)) }
10518
12398
  attr_accessor :external_price_id
@@ -10569,6 +12449,10 @@ module Orb
10569
12449
  ),
10570
12450
  conversion_rate: T.nilable(Float),
10571
12451
  currency: T.nilable(String),
12452
+ dimensional_price_configuration:
12453
+ T.nilable(
12454
+ Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::DimensionalPriceConfiguration::OrHash
12455
+ ),
10572
12456
  external_price_id: T.nilable(String),
10573
12457
  fixed_price_quantity: T.nilable(Float),
10574
12458
  invoice_grouping_key: T.nilable(String),
@@ -10602,6 +12486,8 @@ module Orb
10602
12486
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
10603
12487
  # price is billed.
10604
12488
  currency: nil,
12489
+ # For dimensional price: specifies a price group and dimension values
12490
+ dimensional_price_configuration: nil,
10605
12491
  # An alias for the price.
10606
12492
  external_price_id: nil,
10607
12493
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -10638,6 +12524,10 @@ module Orb
10638
12524
  ),
10639
12525
  conversion_rate: T.nilable(Float),
10640
12526
  currency: T.nilable(String),
12527
+ dimensional_price_configuration:
12528
+ T.nilable(
12529
+ Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::DimensionalPriceConfiguration
12530
+ ),
10641
12531
  external_price_id: T.nilable(String),
10642
12532
  fixed_price_quantity: T.nilable(Float),
10643
12533
  invoice_grouping_key: T.nilable(String),
@@ -10793,6 +12683,60 @@ module Orb
10793
12683
  end
10794
12684
  end
10795
12685
 
12686
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
12687
+ OrHash =
12688
+ T.type_alias do
12689
+ T.any(
12690
+ Orb::PlanCreateParams::Price::ScalableMatrixWithUnitPricing::DimensionalPriceConfiguration,
12691
+ Orb::Internal::AnyHash
12692
+ )
12693
+ end
12694
+
12695
+ # The list of dimension values matching (in order) the dimensions of the price
12696
+ # group
12697
+ sig { returns(T::Array[String]) }
12698
+ attr_accessor :dimension_values
12699
+
12700
+ # The id of the dimensional price group to include this price in
12701
+ sig { returns(T.nilable(String)) }
12702
+ attr_accessor :dimensional_price_group_id
12703
+
12704
+ # The external id of the dimensional price group to include this price in
12705
+ sig { returns(T.nilable(String)) }
12706
+ attr_accessor :external_dimensional_price_group_id
12707
+
12708
+ # For dimensional price: specifies a price group and dimension values
12709
+ sig do
12710
+ params(
12711
+ dimension_values: T::Array[String],
12712
+ dimensional_price_group_id: T.nilable(String),
12713
+ external_dimensional_price_group_id: T.nilable(String)
12714
+ ).returns(T.attached_class)
12715
+ end
12716
+ def self.new(
12717
+ # The list of dimension values matching (in order) the dimensions of the price
12718
+ # group
12719
+ dimension_values:,
12720
+ # The id of the dimensional price group to include this price in
12721
+ dimensional_price_group_id: nil,
12722
+ # The external id of the dimensional price group to include this price in
12723
+ external_dimensional_price_group_id: nil
12724
+ )
12725
+ end
12726
+
12727
+ sig do
12728
+ override.returns(
12729
+ {
12730
+ dimension_values: T::Array[String],
12731
+ dimensional_price_group_id: T.nilable(String),
12732
+ external_dimensional_price_group_id: T.nilable(String)
12733
+ }
12734
+ )
12735
+ end
12736
+ def to_hash
12737
+ end
12738
+ end
12739
+
10796
12740
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
10797
12741
  OrHash =
10798
12742
  T.type_alias do
@@ -10951,6 +12895,26 @@ module Orb
10951
12895
  sig { returns(T.nilable(String)) }
10952
12896
  attr_accessor :currency
10953
12897
 
12898
+ # For dimensional price: specifies a price group and dimension values
12899
+ sig do
12900
+ returns(
12901
+ T.nilable(
12902
+ Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::DimensionalPriceConfiguration
12903
+ )
12904
+ )
12905
+ end
12906
+ attr_reader :dimensional_price_configuration
12907
+
12908
+ sig do
12909
+ params(
12910
+ dimensional_price_configuration:
12911
+ T.nilable(
12912
+ Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::DimensionalPriceConfiguration::OrHash
12913
+ )
12914
+ ).void
12915
+ end
12916
+ attr_writer :dimensional_price_configuration
12917
+
10954
12918
  # An alias for the price.
10955
12919
  sig { returns(T.nilable(String)) }
10956
12920
  attr_accessor :external_price_id
@@ -11007,6 +12971,10 @@ module Orb
11007
12971
  ),
11008
12972
  conversion_rate: T.nilable(Float),
11009
12973
  currency: T.nilable(String),
12974
+ dimensional_price_configuration:
12975
+ T.nilable(
12976
+ Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::DimensionalPriceConfiguration::OrHash
12977
+ ),
11010
12978
  external_price_id: T.nilable(String),
11011
12979
  fixed_price_quantity: T.nilable(Float),
11012
12980
  invoice_grouping_key: T.nilable(String),
@@ -11040,6 +13008,8 @@ module Orb
11040
13008
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
11041
13009
  # price is billed.
11042
13010
  currency: nil,
13011
+ # For dimensional price: specifies a price group and dimension values
13012
+ dimensional_price_configuration: nil,
11043
13013
  # An alias for the price.
11044
13014
  external_price_id: nil,
11045
13015
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -11076,6 +13046,10 @@ module Orb
11076
13046
  ),
11077
13047
  conversion_rate: T.nilable(Float),
11078
13048
  currency: T.nilable(String),
13049
+ dimensional_price_configuration:
13050
+ T.nilable(
13051
+ Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::DimensionalPriceConfiguration
13052
+ ),
11079
13053
  external_price_id: T.nilable(String),
11080
13054
  fixed_price_quantity: T.nilable(Float),
11081
13055
  invoice_grouping_key: T.nilable(String),
@@ -11231,6 +13205,60 @@ module Orb
11231
13205
  end
11232
13206
  end
11233
13207
 
13208
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
13209
+ OrHash =
13210
+ T.type_alias do
13211
+ T.any(
13212
+ Orb::PlanCreateParams::Price::ScalableMatrixWithTieredPricing::DimensionalPriceConfiguration,
13213
+ Orb::Internal::AnyHash
13214
+ )
13215
+ end
13216
+
13217
+ # The list of dimension values matching (in order) the dimensions of the price
13218
+ # group
13219
+ sig { returns(T::Array[String]) }
13220
+ attr_accessor :dimension_values
13221
+
13222
+ # The id of the dimensional price group to include this price in
13223
+ sig { returns(T.nilable(String)) }
13224
+ attr_accessor :dimensional_price_group_id
13225
+
13226
+ # The external id of the dimensional price group to include this price in
13227
+ sig { returns(T.nilable(String)) }
13228
+ attr_accessor :external_dimensional_price_group_id
13229
+
13230
+ # For dimensional price: specifies a price group and dimension values
13231
+ sig do
13232
+ params(
13233
+ dimension_values: T::Array[String],
13234
+ dimensional_price_group_id: T.nilable(String),
13235
+ external_dimensional_price_group_id: T.nilable(String)
13236
+ ).returns(T.attached_class)
13237
+ end
13238
+ def self.new(
13239
+ # The list of dimension values matching (in order) the dimensions of the price
13240
+ # group
13241
+ dimension_values:,
13242
+ # The id of the dimensional price group to include this price in
13243
+ dimensional_price_group_id: nil,
13244
+ # The external id of the dimensional price group to include this price in
13245
+ external_dimensional_price_group_id: nil
13246
+ )
13247
+ end
13248
+
13249
+ sig do
13250
+ override.returns(
13251
+ {
13252
+ dimension_values: T::Array[String],
13253
+ dimensional_price_group_id: T.nilable(String),
13254
+ external_dimensional_price_group_id: T.nilable(String)
13255
+ }
13256
+ )
13257
+ end
13258
+ def to_hash
13259
+ end
13260
+ end
13261
+
11234
13262
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
11235
13263
  OrHash =
11236
13264
  T.type_alias do
@@ -11389,6 +13417,26 @@ module Orb
11389
13417
  sig { returns(T.nilable(String)) }
11390
13418
  attr_accessor :currency
11391
13419
 
13420
+ # For dimensional price: specifies a price group and dimension values
13421
+ sig do
13422
+ returns(
13423
+ T.nilable(
13424
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::DimensionalPriceConfiguration
13425
+ )
13426
+ )
13427
+ end
13428
+ attr_reader :dimensional_price_configuration
13429
+
13430
+ sig do
13431
+ params(
13432
+ dimensional_price_configuration:
13433
+ T.nilable(
13434
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::DimensionalPriceConfiguration::OrHash
13435
+ )
13436
+ ).void
13437
+ end
13438
+ attr_writer :dimensional_price_configuration
13439
+
11392
13440
  # An alias for the price.
11393
13441
  sig { returns(T.nilable(String)) }
11394
13442
  attr_accessor :external_price_id
@@ -11444,6 +13492,10 @@ module Orb
11444
13492
  ),
11445
13493
  conversion_rate: T.nilable(Float),
11446
13494
  currency: T.nilable(String),
13495
+ dimensional_price_configuration:
13496
+ T.nilable(
13497
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::DimensionalPriceConfiguration::OrHash
13498
+ ),
11447
13499
  external_price_id: T.nilable(String),
11448
13500
  fixed_price_quantity: T.nilable(Float),
11449
13501
  invoice_grouping_key: T.nilable(String),
@@ -11477,6 +13529,8 @@ module Orb
11477
13529
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
11478
13530
  # price is billed.
11479
13531
  currency: nil,
13532
+ # For dimensional price: specifies a price group and dimension values
13533
+ dimensional_price_configuration: nil,
11480
13534
  # An alias for the price.
11481
13535
  external_price_id: nil,
11482
13536
  # If the Price represents a fixed cost, this represents the quantity of units
@@ -11512,6 +13566,10 @@ module Orb
11512
13566
  ),
11513
13567
  conversion_rate: T.nilable(Float),
11514
13568
  currency: T.nilable(String),
13569
+ dimensional_price_configuration:
13570
+ T.nilable(
13571
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::DimensionalPriceConfiguration
13572
+ ),
11515
13573
  external_price_id: T.nilable(String),
11516
13574
  fixed_price_quantity: T.nilable(Float),
11517
13575
  invoice_grouping_key: T.nilable(String),
@@ -11667,6 +13725,60 @@ module Orb
11667
13725
  end
11668
13726
  end
11669
13727
 
13728
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
13729
+ OrHash =
13730
+ T.type_alias do
13731
+ T.any(
13732
+ Orb::PlanCreateParams::Price::CumulativeGroupedBulk::DimensionalPriceConfiguration,
13733
+ Orb::Internal::AnyHash
13734
+ )
13735
+ end
13736
+
13737
+ # The list of dimension values matching (in order) the dimensions of the price
13738
+ # group
13739
+ sig { returns(T::Array[String]) }
13740
+ attr_accessor :dimension_values
13741
+
13742
+ # The id of the dimensional price group to include this price in
13743
+ sig { returns(T.nilable(String)) }
13744
+ attr_accessor :dimensional_price_group_id
13745
+
13746
+ # The external id of the dimensional price group to include this price in
13747
+ sig { returns(T.nilable(String)) }
13748
+ attr_accessor :external_dimensional_price_group_id
13749
+
13750
+ # For dimensional price: specifies a price group and dimension values
13751
+ sig do
13752
+ params(
13753
+ dimension_values: T::Array[String],
13754
+ dimensional_price_group_id: T.nilable(String),
13755
+ external_dimensional_price_group_id: T.nilable(String)
13756
+ ).returns(T.attached_class)
13757
+ end
13758
+ def self.new(
13759
+ # The list of dimension values matching (in order) the dimensions of the price
13760
+ # group
13761
+ dimension_values:,
13762
+ # The id of the dimensional price group to include this price in
13763
+ dimensional_price_group_id: nil,
13764
+ # The external id of the dimensional price group to include this price in
13765
+ external_dimensional_price_group_id: nil
13766
+ )
13767
+ end
13768
+
13769
+ sig do
13770
+ override.returns(
13771
+ {
13772
+ dimension_values: T::Array[String],
13773
+ dimensional_price_group_id: T.nilable(String),
13774
+ external_dimensional_price_group_id: T.nilable(String)
13775
+ }
13776
+ )
13777
+ end
13778
+ def to_hash
13779
+ end
13780
+ end
13781
+
11670
13782
  class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
11671
13783
  OrHash =
11672
13784
  T.type_alias do
@@ -11754,6 +13866,1698 @@ module Orb
11754
13866
  end
11755
13867
  end
11756
13868
 
13869
+ class TieredPackageWithMinimum < Orb::Internal::Type::BaseModel
13870
+ OrHash =
13871
+ T.type_alias do
13872
+ T.any(
13873
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum,
13874
+ Orb::Internal::AnyHash
13875
+ )
13876
+ end
13877
+
13878
+ # The cadence to bill for this price on.
13879
+ sig do
13880
+ returns(
13881
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::OrSymbol
13882
+ )
13883
+ end
13884
+ attr_accessor :cadence
13885
+
13886
+ # The id of the item the price will be associated with.
13887
+ sig { returns(String) }
13888
+ attr_accessor :item_id
13889
+
13890
+ sig { returns(Symbol) }
13891
+ attr_accessor :model_type
13892
+
13893
+ # The name of the price.
13894
+ sig { returns(String) }
13895
+ attr_accessor :name
13896
+
13897
+ sig { returns(T::Hash[Symbol, T.anything]) }
13898
+ attr_accessor :tiered_package_with_minimum_config
13899
+
13900
+ # The id of the billable metric for the price. Only needed if the price is
13901
+ # usage-based.
13902
+ sig { returns(T.nilable(String)) }
13903
+ attr_accessor :billable_metric_id
13904
+
13905
+ # If the Price represents a fixed cost, the price will be billed in-advance if
13906
+ # this is true, and in-arrears if this is false.
13907
+ sig { returns(T.nilable(T::Boolean)) }
13908
+ attr_accessor :billed_in_advance
13909
+
13910
+ # For custom cadence: specifies the duration of the billing period in days or
13911
+ # months.
13912
+ sig do
13913
+ returns(
13914
+ T.nilable(
13915
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration
13916
+ )
13917
+ )
13918
+ end
13919
+ attr_reader :billing_cycle_configuration
13920
+
13921
+ sig do
13922
+ params(
13923
+ billing_cycle_configuration:
13924
+ T.nilable(
13925
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::OrHash
13926
+ )
13927
+ ).void
13928
+ end
13929
+ attr_writer :billing_cycle_configuration
13930
+
13931
+ # The per unit conversion rate of the price currency to the invoicing currency.
13932
+ sig { returns(T.nilable(Float)) }
13933
+ attr_accessor :conversion_rate
13934
+
13935
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
13936
+ # price is billed.
13937
+ sig { returns(T.nilable(String)) }
13938
+ attr_accessor :currency
13939
+
13940
+ # For dimensional price: specifies a price group and dimension values
13941
+ sig do
13942
+ returns(
13943
+ T.nilable(
13944
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::DimensionalPriceConfiguration
13945
+ )
13946
+ )
13947
+ end
13948
+ attr_reader :dimensional_price_configuration
13949
+
13950
+ sig do
13951
+ params(
13952
+ dimensional_price_configuration:
13953
+ T.nilable(
13954
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::DimensionalPriceConfiguration::OrHash
13955
+ )
13956
+ ).void
13957
+ end
13958
+ attr_writer :dimensional_price_configuration
13959
+
13960
+ # An alias for the price.
13961
+ sig { returns(T.nilable(String)) }
13962
+ attr_accessor :external_price_id
13963
+
13964
+ # If the Price represents a fixed cost, this represents the quantity of units
13965
+ # applied.
13966
+ sig { returns(T.nilable(Float)) }
13967
+ attr_accessor :fixed_price_quantity
13968
+
13969
+ # The property used to group this price on an invoice
13970
+ sig { returns(T.nilable(String)) }
13971
+ attr_accessor :invoice_grouping_key
13972
+
13973
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
13974
+ # If unspecified, a single invoice is produced per billing cycle.
13975
+ sig do
13976
+ returns(
13977
+ T.nilable(
13978
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration
13979
+ )
13980
+ )
13981
+ end
13982
+ attr_reader :invoicing_cycle_configuration
13983
+
13984
+ sig do
13985
+ params(
13986
+ invoicing_cycle_configuration:
13987
+ T.nilable(
13988
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::OrHash
13989
+ )
13990
+ ).void
13991
+ end
13992
+ attr_writer :invoicing_cycle_configuration
13993
+
13994
+ # User-specified key/value pairs for the resource. Individual keys can be removed
13995
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
13996
+ # by setting `metadata` to `null`.
13997
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(String)])) }
13998
+ attr_accessor :metadata
13999
+
14000
+ sig do
14001
+ params(
14002
+ cadence:
14003
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::OrSymbol,
14004
+ item_id: String,
14005
+ name: String,
14006
+ tiered_package_with_minimum_config: T::Hash[Symbol, T.anything],
14007
+ billable_metric_id: T.nilable(String),
14008
+ billed_in_advance: T.nilable(T::Boolean),
14009
+ billing_cycle_configuration:
14010
+ T.nilable(
14011
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::OrHash
14012
+ ),
14013
+ conversion_rate: T.nilable(Float),
14014
+ currency: T.nilable(String),
14015
+ dimensional_price_configuration:
14016
+ T.nilable(
14017
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::DimensionalPriceConfiguration::OrHash
14018
+ ),
14019
+ external_price_id: T.nilable(String),
14020
+ fixed_price_quantity: T.nilable(Float),
14021
+ invoice_grouping_key: T.nilable(String),
14022
+ invoicing_cycle_configuration:
14023
+ T.nilable(
14024
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::OrHash
14025
+ ),
14026
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)]),
14027
+ model_type: Symbol
14028
+ ).returns(T.attached_class)
14029
+ end
14030
+ def self.new(
14031
+ # The cadence to bill for this price on.
14032
+ cadence:,
14033
+ # The id of the item the price will be associated with.
14034
+ item_id:,
14035
+ # The name of the price.
14036
+ name:,
14037
+ tiered_package_with_minimum_config:,
14038
+ # The id of the billable metric for the price. Only needed if the price is
14039
+ # usage-based.
14040
+ billable_metric_id: nil,
14041
+ # If the Price represents a fixed cost, the price will be billed in-advance if
14042
+ # this is true, and in-arrears if this is false.
14043
+ billed_in_advance: nil,
14044
+ # For custom cadence: specifies the duration of the billing period in days or
14045
+ # months.
14046
+ billing_cycle_configuration: nil,
14047
+ # The per unit conversion rate of the price currency to the invoicing currency.
14048
+ conversion_rate: nil,
14049
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
14050
+ # price is billed.
14051
+ currency: nil,
14052
+ # For dimensional price: specifies a price group and dimension values
14053
+ dimensional_price_configuration: nil,
14054
+ # An alias for the price.
14055
+ external_price_id: nil,
14056
+ # If the Price represents a fixed cost, this represents the quantity of units
14057
+ # applied.
14058
+ fixed_price_quantity: nil,
14059
+ # The property used to group this price on an invoice
14060
+ invoice_grouping_key: nil,
14061
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
14062
+ # If unspecified, a single invoice is produced per billing cycle.
14063
+ invoicing_cycle_configuration: nil,
14064
+ # User-specified key/value pairs for the resource. Individual keys can be removed
14065
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
14066
+ # by setting `metadata` to `null`.
14067
+ metadata: nil,
14068
+ model_type: :tiered_package_with_minimum
14069
+ )
14070
+ end
14071
+
14072
+ sig do
14073
+ override.returns(
14074
+ {
14075
+ cadence:
14076
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::OrSymbol,
14077
+ item_id: String,
14078
+ model_type: Symbol,
14079
+ name: String,
14080
+ tiered_package_with_minimum_config: T::Hash[Symbol, T.anything],
14081
+ billable_metric_id: T.nilable(String),
14082
+ billed_in_advance: T.nilable(T::Boolean),
14083
+ billing_cycle_configuration:
14084
+ T.nilable(
14085
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration
14086
+ ),
14087
+ conversion_rate: T.nilable(Float),
14088
+ currency: T.nilable(String),
14089
+ dimensional_price_configuration:
14090
+ T.nilable(
14091
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::DimensionalPriceConfiguration
14092
+ ),
14093
+ external_price_id: T.nilable(String),
14094
+ fixed_price_quantity: T.nilable(Float),
14095
+ invoice_grouping_key: T.nilable(String),
14096
+ invoicing_cycle_configuration:
14097
+ T.nilable(
14098
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration
14099
+ ),
14100
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)])
14101
+ }
14102
+ )
14103
+ end
14104
+ def to_hash
14105
+ end
14106
+
14107
+ # The cadence to bill for this price on.
14108
+ module Cadence
14109
+ extend Orb::Internal::Type::Enum
14110
+
14111
+ TaggedSymbol =
14112
+ T.type_alias do
14113
+ T.all(
14114
+ Symbol,
14115
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence
14116
+ )
14117
+ end
14118
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
14119
+
14120
+ ANNUAL =
14121
+ T.let(
14122
+ :annual,
14123
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14124
+ )
14125
+ SEMI_ANNUAL =
14126
+ T.let(
14127
+ :semi_annual,
14128
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14129
+ )
14130
+ MONTHLY =
14131
+ T.let(
14132
+ :monthly,
14133
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14134
+ )
14135
+ QUARTERLY =
14136
+ T.let(
14137
+ :quarterly,
14138
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14139
+ )
14140
+ ONE_TIME =
14141
+ T.let(
14142
+ :one_time,
14143
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14144
+ )
14145
+ CUSTOM =
14146
+ T.let(
14147
+ :custom,
14148
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14149
+ )
14150
+
14151
+ sig do
14152
+ override.returns(
14153
+ T::Array[
14154
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::Cadence::TaggedSymbol
14155
+ ]
14156
+ )
14157
+ end
14158
+ def self.values
14159
+ end
14160
+ end
14161
+
14162
+ class BillingCycleConfiguration < Orb::Internal::Type::BaseModel
14163
+ OrHash =
14164
+ T.type_alias do
14165
+ T.any(
14166
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration,
14167
+ Orb::Internal::AnyHash
14168
+ )
14169
+ end
14170
+
14171
+ # The duration of the billing period.
14172
+ sig { returns(Integer) }
14173
+ attr_accessor :duration
14174
+
14175
+ # The unit of billing period duration.
14176
+ sig do
14177
+ returns(
14178
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::OrSymbol
14179
+ )
14180
+ end
14181
+ attr_accessor :duration_unit
14182
+
14183
+ # For custom cadence: specifies the duration of the billing period in days or
14184
+ # months.
14185
+ sig do
14186
+ params(
14187
+ duration: Integer,
14188
+ duration_unit:
14189
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::OrSymbol
14190
+ ).returns(T.attached_class)
14191
+ end
14192
+ def self.new(
14193
+ # The duration of the billing period.
14194
+ duration:,
14195
+ # The unit of billing period duration.
14196
+ duration_unit:
14197
+ )
14198
+ end
14199
+
14200
+ sig do
14201
+ override.returns(
14202
+ {
14203
+ duration: Integer,
14204
+ duration_unit:
14205
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::OrSymbol
14206
+ }
14207
+ )
14208
+ end
14209
+ def to_hash
14210
+ end
14211
+
14212
+ # The unit of billing period duration.
14213
+ module DurationUnit
14214
+ extend Orb::Internal::Type::Enum
14215
+
14216
+ TaggedSymbol =
14217
+ T.type_alias do
14218
+ T.all(
14219
+ Symbol,
14220
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit
14221
+ )
14222
+ end
14223
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
14224
+
14225
+ DAY =
14226
+ T.let(
14227
+ :day,
14228
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14229
+ )
14230
+ MONTH =
14231
+ T.let(
14232
+ :month,
14233
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14234
+ )
14235
+
14236
+ sig do
14237
+ override.returns(
14238
+ T::Array[
14239
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14240
+ ]
14241
+ )
14242
+ end
14243
+ def self.values
14244
+ end
14245
+ end
14246
+ end
14247
+
14248
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
14249
+ OrHash =
14250
+ T.type_alias do
14251
+ T.any(
14252
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::DimensionalPriceConfiguration,
14253
+ Orb::Internal::AnyHash
14254
+ )
14255
+ end
14256
+
14257
+ # The list of dimension values matching (in order) the dimensions of the price
14258
+ # group
14259
+ sig { returns(T::Array[String]) }
14260
+ attr_accessor :dimension_values
14261
+
14262
+ # The id of the dimensional price group to include this price in
14263
+ sig { returns(T.nilable(String)) }
14264
+ attr_accessor :dimensional_price_group_id
14265
+
14266
+ # The external id of the dimensional price group to include this price in
14267
+ sig { returns(T.nilable(String)) }
14268
+ attr_accessor :external_dimensional_price_group_id
14269
+
14270
+ # For dimensional price: specifies a price group and dimension values
14271
+ sig do
14272
+ params(
14273
+ dimension_values: T::Array[String],
14274
+ dimensional_price_group_id: T.nilable(String),
14275
+ external_dimensional_price_group_id: T.nilable(String)
14276
+ ).returns(T.attached_class)
14277
+ end
14278
+ def self.new(
14279
+ # The list of dimension values matching (in order) the dimensions of the price
14280
+ # group
14281
+ dimension_values:,
14282
+ # The id of the dimensional price group to include this price in
14283
+ dimensional_price_group_id: nil,
14284
+ # The external id of the dimensional price group to include this price in
14285
+ external_dimensional_price_group_id: nil
14286
+ )
14287
+ end
14288
+
14289
+ sig do
14290
+ override.returns(
14291
+ {
14292
+ dimension_values: T::Array[String],
14293
+ dimensional_price_group_id: T.nilable(String),
14294
+ external_dimensional_price_group_id: T.nilable(String)
14295
+ }
14296
+ )
14297
+ end
14298
+ def to_hash
14299
+ end
14300
+ end
14301
+
14302
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
14303
+ OrHash =
14304
+ T.type_alias do
14305
+ T.any(
14306
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration,
14307
+ Orb::Internal::AnyHash
14308
+ )
14309
+ end
14310
+
14311
+ # The duration of the billing period.
14312
+ sig { returns(Integer) }
14313
+ attr_accessor :duration
14314
+
14315
+ # The unit of billing period duration.
14316
+ sig do
14317
+ returns(
14318
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14319
+ )
14320
+ end
14321
+ attr_accessor :duration_unit
14322
+
14323
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
14324
+ # If unspecified, a single invoice is produced per billing cycle.
14325
+ sig do
14326
+ params(
14327
+ duration: Integer,
14328
+ duration_unit:
14329
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14330
+ ).returns(T.attached_class)
14331
+ end
14332
+ def self.new(
14333
+ # The duration of the billing period.
14334
+ duration:,
14335
+ # The unit of billing period duration.
14336
+ duration_unit:
14337
+ )
14338
+ end
14339
+
14340
+ sig do
14341
+ override.returns(
14342
+ {
14343
+ duration: Integer,
14344
+ duration_unit:
14345
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14346
+ }
14347
+ )
14348
+ end
14349
+ def to_hash
14350
+ end
14351
+
14352
+ # The unit of billing period duration.
14353
+ module DurationUnit
14354
+ extend Orb::Internal::Type::Enum
14355
+
14356
+ TaggedSymbol =
14357
+ T.type_alias do
14358
+ T.all(
14359
+ Symbol,
14360
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit
14361
+ )
14362
+ end
14363
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
14364
+
14365
+ DAY =
14366
+ T.let(
14367
+ :day,
14368
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
14369
+ )
14370
+ MONTH =
14371
+ T.let(
14372
+ :month,
14373
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
14374
+ )
14375
+
14376
+ sig do
14377
+ override.returns(
14378
+ T::Array[
14379
+ Orb::PlanCreateParams::Price::TieredPackageWithMinimum::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
14380
+ ]
14381
+ )
14382
+ end
14383
+ def self.values
14384
+ end
14385
+ end
14386
+ end
14387
+ end
14388
+
14389
+ class MatrixWithAllocation < Orb::Internal::Type::BaseModel
14390
+ OrHash =
14391
+ T.type_alias do
14392
+ T.any(
14393
+ Orb::PlanCreateParams::Price::MatrixWithAllocation,
14394
+ Orb::Internal::AnyHash
14395
+ )
14396
+ end
14397
+
14398
+ # The cadence to bill for this price on.
14399
+ sig do
14400
+ returns(
14401
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::OrSymbol
14402
+ )
14403
+ end
14404
+ attr_accessor :cadence
14405
+
14406
+ # The id of the item the price will be associated with.
14407
+ sig { returns(String) }
14408
+ attr_accessor :item_id
14409
+
14410
+ sig do
14411
+ returns(
14412
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig
14413
+ )
14414
+ end
14415
+ attr_reader :matrix_with_allocation_config
14416
+
14417
+ sig do
14418
+ params(
14419
+ matrix_with_allocation_config:
14420
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::OrHash
14421
+ ).void
14422
+ end
14423
+ attr_writer :matrix_with_allocation_config
14424
+
14425
+ sig { returns(Symbol) }
14426
+ attr_accessor :model_type
14427
+
14428
+ # The name of the price.
14429
+ sig { returns(String) }
14430
+ attr_accessor :name
14431
+
14432
+ # The id of the billable metric for the price. Only needed if the price is
14433
+ # usage-based.
14434
+ sig { returns(T.nilable(String)) }
14435
+ attr_accessor :billable_metric_id
14436
+
14437
+ # If the Price represents a fixed cost, the price will be billed in-advance if
14438
+ # this is true, and in-arrears if this is false.
14439
+ sig { returns(T.nilable(T::Boolean)) }
14440
+ attr_accessor :billed_in_advance
14441
+
14442
+ # For custom cadence: specifies the duration of the billing period in days or
14443
+ # months.
14444
+ sig do
14445
+ returns(
14446
+ T.nilable(
14447
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration
14448
+ )
14449
+ )
14450
+ end
14451
+ attr_reader :billing_cycle_configuration
14452
+
14453
+ sig do
14454
+ params(
14455
+ billing_cycle_configuration:
14456
+ T.nilable(
14457
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::OrHash
14458
+ )
14459
+ ).void
14460
+ end
14461
+ attr_writer :billing_cycle_configuration
14462
+
14463
+ # The per unit conversion rate of the price currency to the invoicing currency.
14464
+ sig { returns(T.nilable(Float)) }
14465
+ attr_accessor :conversion_rate
14466
+
14467
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
14468
+ # price is billed.
14469
+ sig { returns(T.nilable(String)) }
14470
+ attr_accessor :currency
14471
+
14472
+ # For dimensional price: specifies a price group and dimension values
14473
+ sig do
14474
+ returns(
14475
+ T.nilable(
14476
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::DimensionalPriceConfiguration
14477
+ )
14478
+ )
14479
+ end
14480
+ attr_reader :dimensional_price_configuration
14481
+
14482
+ sig do
14483
+ params(
14484
+ dimensional_price_configuration:
14485
+ T.nilable(
14486
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::DimensionalPriceConfiguration::OrHash
14487
+ )
14488
+ ).void
14489
+ end
14490
+ attr_writer :dimensional_price_configuration
14491
+
14492
+ # An alias for the price.
14493
+ sig { returns(T.nilable(String)) }
14494
+ attr_accessor :external_price_id
14495
+
14496
+ # If the Price represents a fixed cost, this represents the quantity of units
14497
+ # applied.
14498
+ sig { returns(T.nilable(Float)) }
14499
+ attr_accessor :fixed_price_quantity
14500
+
14501
+ # The property used to group this price on an invoice
14502
+ sig { returns(T.nilable(String)) }
14503
+ attr_accessor :invoice_grouping_key
14504
+
14505
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
14506
+ # If unspecified, a single invoice is produced per billing cycle.
14507
+ sig do
14508
+ returns(
14509
+ T.nilable(
14510
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration
14511
+ )
14512
+ )
14513
+ end
14514
+ attr_reader :invoicing_cycle_configuration
14515
+
14516
+ sig do
14517
+ params(
14518
+ invoicing_cycle_configuration:
14519
+ T.nilable(
14520
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::OrHash
14521
+ )
14522
+ ).void
14523
+ end
14524
+ attr_writer :invoicing_cycle_configuration
14525
+
14526
+ # User-specified key/value pairs for the resource. Individual keys can be removed
14527
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
14528
+ # by setting `metadata` to `null`.
14529
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(String)])) }
14530
+ attr_accessor :metadata
14531
+
14532
+ sig do
14533
+ params(
14534
+ cadence:
14535
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::OrSymbol,
14536
+ item_id: String,
14537
+ matrix_with_allocation_config:
14538
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::OrHash,
14539
+ name: String,
14540
+ billable_metric_id: T.nilable(String),
14541
+ billed_in_advance: T.nilable(T::Boolean),
14542
+ billing_cycle_configuration:
14543
+ T.nilable(
14544
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::OrHash
14545
+ ),
14546
+ conversion_rate: T.nilable(Float),
14547
+ currency: T.nilable(String),
14548
+ dimensional_price_configuration:
14549
+ T.nilable(
14550
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::DimensionalPriceConfiguration::OrHash
14551
+ ),
14552
+ external_price_id: T.nilable(String),
14553
+ fixed_price_quantity: T.nilable(Float),
14554
+ invoice_grouping_key: T.nilable(String),
14555
+ invoicing_cycle_configuration:
14556
+ T.nilable(
14557
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::OrHash
14558
+ ),
14559
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)]),
14560
+ model_type: Symbol
14561
+ ).returns(T.attached_class)
14562
+ end
14563
+ def self.new(
14564
+ # The cadence to bill for this price on.
14565
+ cadence:,
14566
+ # The id of the item the price will be associated with.
14567
+ item_id:,
14568
+ matrix_with_allocation_config:,
14569
+ # The name of the price.
14570
+ name:,
14571
+ # The id of the billable metric for the price. Only needed if the price is
14572
+ # usage-based.
14573
+ billable_metric_id: nil,
14574
+ # If the Price represents a fixed cost, the price will be billed in-advance if
14575
+ # this is true, and in-arrears if this is false.
14576
+ billed_in_advance: nil,
14577
+ # For custom cadence: specifies the duration of the billing period in days or
14578
+ # months.
14579
+ billing_cycle_configuration: nil,
14580
+ # The per unit conversion rate of the price currency to the invoicing currency.
14581
+ conversion_rate: nil,
14582
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
14583
+ # price is billed.
14584
+ currency: nil,
14585
+ # For dimensional price: specifies a price group and dimension values
14586
+ dimensional_price_configuration: nil,
14587
+ # An alias for the price.
14588
+ external_price_id: nil,
14589
+ # If the Price represents a fixed cost, this represents the quantity of units
14590
+ # applied.
14591
+ fixed_price_quantity: nil,
14592
+ # The property used to group this price on an invoice
14593
+ invoice_grouping_key: nil,
14594
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
14595
+ # If unspecified, a single invoice is produced per billing cycle.
14596
+ invoicing_cycle_configuration: nil,
14597
+ # User-specified key/value pairs for the resource. Individual keys can be removed
14598
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
14599
+ # by setting `metadata` to `null`.
14600
+ metadata: nil,
14601
+ model_type: :matrix_with_allocation
14602
+ )
14603
+ end
14604
+
14605
+ sig do
14606
+ override.returns(
14607
+ {
14608
+ cadence:
14609
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::OrSymbol,
14610
+ item_id: String,
14611
+ matrix_with_allocation_config:
14612
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig,
14613
+ model_type: Symbol,
14614
+ name: String,
14615
+ billable_metric_id: T.nilable(String),
14616
+ billed_in_advance: T.nilable(T::Boolean),
14617
+ billing_cycle_configuration:
14618
+ T.nilable(
14619
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration
14620
+ ),
14621
+ conversion_rate: T.nilable(Float),
14622
+ currency: T.nilable(String),
14623
+ dimensional_price_configuration:
14624
+ T.nilable(
14625
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::DimensionalPriceConfiguration
14626
+ ),
14627
+ external_price_id: T.nilable(String),
14628
+ fixed_price_quantity: T.nilable(Float),
14629
+ invoice_grouping_key: T.nilable(String),
14630
+ invoicing_cycle_configuration:
14631
+ T.nilable(
14632
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration
14633
+ ),
14634
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)])
14635
+ }
14636
+ )
14637
+ end
14638
+ def to_hash
14639
+ end
14640
+
14641
+ # The cadence to bill for this price on.
14642
+ module Cadence
14643
+ extend Orb::Internal::Type::Enum
14644
+
14645
+ TaggedSymbol =
14646
+ T.type_alias do
14647
+ T.all(
14648
+ Symbol,
14649
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence
14650
+ )
14651
+ end
14652
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
14653
+
14654
+ ANNUAL =
14655
+ T.let(
14656
+ :annual,
14657
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14658
+ )
14659
+ SEMI_ANNUAL =
14660
+ T.let(
14661
+ :semi_annual,
14662
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14663
+ )
14664
+ MONTHLY =
14665
+ T.let(
14666
+ :monthly,
14667
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14668
+ )
14669
+ QUARTERLY =
14670
+ T.let(
14671
+ :quarterly,
14672
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14673
+ )
14674
+ ONE_TIME =
14675
+ T.let(
14676
+ :one_time,
14677
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14678
+ )
14679
+ CUSTOM =
14680
+ T.let(
14681
+ :custom,
14682
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14683
+ )
14684
+
14685
+ sig do
14686
+ override.returns(
14687
+ T::Array[
14688
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::Cadence::TaggedSymbol
14689
+ ]
14690
+ )
14691
+ end
14692
+ def self.values
14693
+ end
14694
+ end
14695
+
14696
+ class MatrixWithAllocationConfig < Orb::Internal::Type::BaseModel
14697
+ OrHash =
14698
+ T.type_alias do
14699
+ T.any(
14700
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig,
14701
+ Orb::Internal::AnyHash
14702
+ )
14703
+ end
14704
+
14705
+ # Allocation to be used to calculate the price
14706
+ sig { returns(Float) }
14707
+ attr_accessor :allocation
14708
+
14709
+ # Default per unit rate for any usage not bucketed into a specified matrix_value
14710
+ sig { returns(String) }
14711
+ attr_accessor :default_unit_amount
14712
+
14713
+ # One or two event property values to evaluate matrix groups by
14714
+ sig { returns(T::Array[T.nilable(String)]) }
14715
+ attr_accessor :dimensions
14716
+
14717
+ # Matrix values for specified matrix grouping keys
14718
+ sig do
14719
+ returns(
14720
+ T::Array[
14721
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::MatrixValue
14722
+ ]
14723
+ )
14724
+ end
14725
+ attr_accessor :matrix_values
14726
+
14727
+ sig do
14728
+ params(
14729
+ allocation: Float,
14730
+ default_unit_amount: String,
14731
+ dimensions: T::Array[T.nilable(String)],
14732
+ matrix_values:
14733
+ T::Array[
14734
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::MatrixValue::OrHash
14735
+ ]
14736
+ ).returns(T.attached_class)
14737
+ end
14738
+ def self.new(
14739
+ # Allocation to be used to calculate the price
14740
+ allocation:,
14741
+ # Default per unit rate for any usage not bucketed into a specified matrix_value
14742
+ default_unit_amount:,
14743
+ # One or two event property values to evaluate matrix groups by
14744
+ dimensions:,
14745
+ # Matrix values for specified matrix grouping keys
14746
+ matrix_values:
14747
+ )
14748
+ end
14749
+
14750
+ sig do
14751
+ override.returns(
14752
+ {
14753
+ allocation: Float,
14754
+ default_unit_amount: String,
14755
+ dimensions: T::Array[T.nilable(String)],
14756
+ matrix_values:
14757
+ T::Array[
14758
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::MatrixValue
14759
+ ]
14760
+ }
14761
+ )
14762
+ end
14763
+ def to_hash
14764
+ end
14765
+
14766
+ class MatrixValue < Orb::Internal::Type::BaseModel
14767
+ OrHash =
14768
+ T.type_alias do
14769
+ T.any(
14770
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::MatrixWithAllocationConfig::MatrixValue,
14771
+ Orb::Internal::AnyHash
14772
+ )
14773
+ end
14774
+
14775
+ # One or two matrix keys to filter usage to this Matrix value by. For example,
14776
+ # ["region", "tier"] could be used to filter cloud usage by a cloud region and an
14777
+ # instance tier.
14778
+ sig { returns(T::Array[T.nilable(String)]) }
14779
+ attr_accessor :dimension_values
14780
+
14781
+ # Unit price for the specified dimension_values
14782
+ sig { returns(String) }
14783
+ attr_accessor :unit_amount
14784
+
14785
+ sig do
14786
+ params(
14787
+ dimension_values: T::Array[T.nilable(String)],
14788
+ unit_amount: String
14789
+ ).returns(T.attached_class)
14790
+ end
14791
+ def self.new(
14792
+ # One or two matrix keys to filter usage to this Matrix value by. For example,
14793
+ # ["region", "tier"] could be used to filter cloud usage by a cloud region and an
14794
+ # instance tier.
14795
+ dimension_values:,
14796
+ # Unit price for the specified dimension_values
14797
+ unit_amount:
14798
+ )
14799
+ end
14800
+
14801
+ sig do
14802
+ override.returns(
14803
+ {
14804
+ dimension_values: T::Array[T.nilable(String)],
14805
+ unit_amount: String
14806
+ }
14807
+ )
14808
+ end
14809
+ def to_hash
14810
+ end
14811
+ end
14812
+ end
14813
+
14814
+ class BillingCycleConfiguration < Orb::Internal::Type::BaseModel
14815
+ OrHash =
14816
+ T.type_alias do
14817
+ T.any(
14818
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration,
14819
+ Orb::Internal::AnyHash
14820
+ )
14821
+ end
14822
+
14823
+ # The duration of the billing period.
14824
+ sig { returns(Integer) }
14825
+ attr_accessor :duration
14826
+
14827
+ # The unit of billing period duration.
14828
+ sig do
14829
+ returns(
14830
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::OrSymbol
14831
+ )
14832
+ end
14833
+ attr_accessor :duration_unit
14834
+
14835
+ # For custom cadence: specifies the duration of the billing period in days or
14836
+ # months.
14837
+ sig do
14838
+ params(
14839
+ duration: Integer,
14840
+ duration_unit:
14841
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::OrSymbol
14842
+ ).returns(T.attached_class)
14843
+ end
14844
+ def self.new(
14845
+ # The duration of the billing period.
14846
+ duration:,
14847
+ # The unit of billing period duration.
14848
+ duration_unit:
14849
+ )
14850
+ end
14851
+
14852
+ sig do
14853
+ override.returns(
14854
+ {
14855
+ duration: Integer,
14856
+ duration_unit:
14857
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::OrSymbol
14858
+ }
14859
+ )
14860
+ end
14861
+ def to_hash
14862
+ end
14863
+
14864
+ # The unit of billing period duration.
14865
+ module DurationUnit
14866
+ extend Orb::Internal::Type::Enum
14867
+
14868
+ TaggedSymbol =
14869
+ T.type_alias do
14870
+ T.all(
14871
+ Symbol,
14872
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit
14873
+ )
14874
+ end
14875
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
14876
+
14877
+ DAY =
14878
+ T.let(
14879
+ :day,
14880
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14881
+ )
14882
+ MONTH =
14883
+ T.let(
14884
+ :month,
14885
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14886
+ )
14887
+
14888
+ sig do
14889
+ override.returns(
14890
+ T::Array[
14891
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::BillingCycleConfiguration::DurationUnit::TaggedSymbol
14892
+ ]
14893
+ )
14894
+ end
14895
+ def self.values
14896
+ end
14897
+ end
14898
+ end
14899
+
14900
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
14901
+ OrHash =
14902
+ T.type_alias do
14903
+ T.any(
14904
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::DimensionalPriceConfiguration,
14905
+ Orb::Internal::AnyHash
14906
+ )
14907
+ end
14908
+
14909
+ # The list of dimension values matching (in order) the dimensions of the price
14910
+ # group
14911
+ sig { returns(T::Array[String]) }
14912
+ attr_accessor :dimension_values
14913
+
14914
+ # The id of the dimensional price group to include this price in
14915
+ sig { returns(T.nilable(String)) }
14916
+ attr_accessor :dimensional_price_group_id
14917
+
14918
+ # The external id of the dimensional price group to include this price in
14919
+ sig { returns(T.nilable(String)) }
14920
+ attr_accessor :external_dimensional_price_group_id
14921
+
14922
+ # For dimensional price: specifies a price group and dimension values
14923
+ sig do
14924
+ params(
14925
+ dimension_values: T::Array[String],
14926
+ dimensional_price_group_id: T.nilable(String),
14927
+ external_dimensional_price_group_id: T.nilable(String)
14928
+ ).returns(T.attached_class)
14929
+ end
14930
+ def self.new(
14931
+ # The list of dimension values matching (in order) the dimensions of the price
14932
+ # group
14933
+ dimension_values:,
14934
+ # The id of the dimensional price group to include this price in
14935
+ dimensional_price_group_id: nil,
14936
+ # The external id of the dimensional price group to include this price in
14937
+ external_dimensional_price_group_id: nil
14938
+ )
14939
+ end
14940
+
14941
+ sig do
14942
+ override.returns(
14943
+ {
14944
+ dimension_values: T::Array[String],
14945
+ dimensional_price_group_id: T.nilable(String),
14946
+ external_dimensional_price_group_id: T.nilable(String)
14947
+ }
14948
+ )
14949
+ end
14950
+ def to_hash
14951
+ end
14952
+ end
14953
+
14954
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
14955
+ OrHash =
14956
+ T.type_alias do
14957
+ T.any(
14958
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration,
14959
+ Orb::Internal::AnyHash
14960
+ )
14961
+ end
14962
+
14963
+ # The duration of the billing period.
14964
+ sig { returns(Integer) }
14965
+ attr_accessor :duration
14966
+
14967
+ # The unit of billing period duration.
14968
+ sig do
14969
+ returns(
14970
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14971
+ )
14972
+ end
14973
+ attr_accessor :duration_unit
14974
+
14975
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
14976
+ # If unspecified, a single invoice is produced per billing cycle.
14977
+ sig do
14978
+ params(
14979
+ duration: Integer,
14980
+ duration_unit:
14981
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14982
+ ).returns(T.attached_class)
14983
+ end
14984
+ def self.new(
14985
+ # The duration of the billing period.
14986
+ duration:,
14987
+ # The unit of billing period duration.
14988
+ duration_unit:
14989
+ )
14990
+ end
14991
+
14992
+ sig do
14993
+ override.returns(
14994
+ {
14995
+ duration: Integer,
14996
+ duration_unit:
14997
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::OrSymbol
14998
+ }
14999
+ )
15000
+ end
15001
+ def to_hash
15002
+ end
15003
+
15004
+ # The unit of billing period duration.
15005
+ module DurationUnit
15006
+ extend Orb::Internal::Type::Enum
15007
+
15008
+ TaggedSymbol =
15009
+ T.type_alias do
15010
+ T.all(
15011
+ Symbol,
15012
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit
15013
+ )
15014
+ end
15015
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
15016
+
15017
+ DAY =
15018
+ T.let(
15019
+ :day,
15020
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15021
+ )
15022
+ MONTH =
15023
+ T.let(
15024
+ :month,
15025
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15026
+ )
15027
+
15028
+ sig do
15029
+ override.returns(
15030
+ T::Array[
15031
+ Orb::PlanCreateParams::Price::MatrixWithAllocation::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15032
+ ]
15033
+ )
15034
+ end
15035
+ def self.values
15036
+ end
15037
+ end
15038
+ end
15039
+ end
15040
+
15041
+ class GroupedTiered < Orb::Internal::Type::BaseModel
15042
+ OrHash =
15043
+ T.type_alias do
15044
+ T.any(
15045
+ Orb::PlanCreateParams::Price::GroupedTiered,
15046
+ Orb::Internal::AnyHash
15047
+ )
15048
+ end
15049
+
15050
+ # The cadence to bill for this price on.
15051
+ sig do
15052
+ returns(
15053
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::OrSymbol
15054
+ )
15055
+ end
15056
+ attr_accessor :cadence
15057
+
15058
+ sig { returns(T::Hash[Symbol, T.anything]) }
15059
+ attr_accessor :grouped_tiered_config
15060
+
15061
+ # The id of the item the price will be associated with.
15062
+ sig { returns(String) }
15063
+ attr_accessor :item_id
15064
+
15065
+ sig { returns(Symbol) }
15066
+ attr_accessor :model_type
15067
+
15068
+ # The name of the price.
15069
+ sig { returns(String) }
15070
+ attr_accessor :name
15071
+
15072
+ # The id of the billable metric for the price. Only needed if the price is
15073
+ # usage-based.
15074
+ sig { returns(T.nilable(String)) }
15075
+ attr_accessor :billable_metric_id
15076
+
15077
+ # If the Price represents a fixed cost, the price will be billed in-advance if
15078
+ # this is true, and in-arrears if this is false.
15079
+ sig { returns(T.nilable(T::Boolean)) }
15080
+ attr_accessor :billed_in_advance
15081
+
15082
+ # For custom cadence: specifies the duration of the billing period in days or
15083
+ # months.
15084
+ sig do
15085
+ returns(
15086
+ T.nilable(
15087
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration
15088
+ )
15089
+ )
15090
+ end
15091
+ attr_reader :billing_cycle_configuration
15092
+
15093
+ sig do
15094
+ params(
15095
+ billing_cycle_configuration:
15096
+ T.nilable(
15097
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::OrHash
15098
+ )
15099
+ ).void
15100
+ end
15101
+ attr_writer :billing_cycle_configuration
15102
+
15103
+ # The per unit conversion rate of the price currency to the invoicing currency.
15104
+ sig { returns(T.nilable(Float)) }
15105
+ attr_accessor :conversion_rate
15106
+
15107
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
15108
+ # price is billed.
15109
+ sig { returns(T.nilable(String)) }
15110
+ attr_accessor :currency
15111
+
15112
+ # For dimensional price: specifies a price group and dimension values
15113
+ sig do
15114
+ returns(
15115
+ T.nilable(
15116
+ Orb::PlanCreateParams::Price::GroupedTiered::DimensionalPriceConfiguration
15117
+ )
15118
+ )
15119
+ end
15120
+ attr_reader :dimensional_price_configuration
15121
+
15122
+ sig do
15123
+ params(
15124
+ dimensional_price_configuration:
15125
+ T.nilable(
15126
+ Orb::PlanCreateParams::Price::GroupedTiered::DimensionalPriceConfiguration::OrHash
15127
+ )
15128
+ ).void
15129
+ end
15130
+ attr_writer :dimensional_price_configuration
15131
+
15132
+ # An alias for the price.
15133
+ sig { returns(T.nilable(String)) }
15134
+ attr_accessor :external_price_id
15135
+
15136
+ # If the Price represents a fixed cost, this represents the quantity of units
15137
+ # applied.
15138
+ sig { returns(T.nilable(Float)) }
15139
+ attr_accessor :fixed_price_quantity
15140
+
15141
+ # The property used to group this price on an invoice
15142
+ sig { returns(T.nilable(String)) }
15143
+ attr_accessor :invoice_grouping_key
15144
+
15145
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
15146
+ # If unspecified, a single invoice is produced per billing cycle.
15147
+ sig do
15148
+ returns(
15149
+ T.nilable(
15150
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration
15151
+ )
15152
+ )
15153
+ end
15154
+ attr_reader :invoicing_cycle_configuration
15155
+
15156
+ sig do
15157
+ params(
15158
+ invoicing_cycle_configuration:
15159
+ T.nilable(
15160
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::OrHash
15161
+ )
15162
+ ).void
15163
+ end
15164
+ attr_writer :invoicing_cycle_configuration
15165
+
15166
+ # User-specified key/value pairs for the resource. Individual keys can be removed
15167
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
15168
+ # by setting `metadata` to `null`.
15169
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(String)])) }
15170
+ attr_accessor :metadata
15171
+
15172
+ sig do
15173
+ params(
15174
+ cadence:
15175
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::OrSymbol,
15176
+ grouped_tiered_config: T::Hash[Symbol, T.anything],
15177
+ item_id: String,
15178
+ name: String,
15179
+ billable_metric_id: T.nilable(String),
15180
+ billed_in_advance: T.nilable(T::Boolean),
15181
+ billing_cycle_configuration:
15182
+ T.nilable(
15183
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::OrHash
15184
+ ),
15185
+ conversion_rate: T.nilable(Float),
15186
+ currency: T.nilable(String),
15187
+ dimensional_price_configuration:
15188
+ T.nilable(
15189
+ Orb::PlanCreateParams::Price::GroupedTiered::DimensionalPriceConfiguration::OrHash
15190
+ ),
15191
+ external_price_id: T.nilable(String),
15192
+ fixed_price_quantity: T.nilable(Float),
15193
+ invoice_grouping_key: T.nilable(String),
15194
+ invoicing_cycle_configuration:
15195
+ T.nilable(
15196
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::OrHash
15197
+ ),
15198
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)]),
15199
+ model_type: Symbol
15200
+ ).returns(T.attached_class)
15201
+ end
15202
+ def self.new(
15203
+ # The cadence to bill for this price on.
15204
+ cadence:,
15205
+ grouped_tiered_config:,
15206
+ # The id of the item the price will be associated with.
15207
+ item_id:,
15208
+ # The name of the price.
15209
+ name:,
15210
+ # The id of the billable metric for the price. Only needed if the price is
15211
+ # usage-based.
15212
+ billable_metric_id: nil,
15213
+ # If the Price represents a fixed cost, the price will be billed in-advance if
15214
+ # this is true, and in-arrears if this is false.
15215
+ billed_in_advance: nil,
15216
+ # For custom cadence: specifies the duration of the billing period in days or
15217
+ # months.
15218
+ billing_cycle_configuration: nil,
15219
+ # The per unit conversion rate of the price currency to the invoicing currency.
15220
+ conversion_rate: nil,
15221
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
15222
+ # price is billed.
15223
+ currency: nil,
15224
+ # For dimensional price: specifies a price group and dimension values
15225
+ dimensional_price_configuration: nil,
15226
+ # An alias for the price.
15227
+ external_price_id: nil,
15228
+ # If the Price represents a fixed cost, this represents the quantity of units
15229
+ # applied.
15230
+ fixed_price_quantity: nil,
15231
+ # The property used to group this price on an invoice
15232
+ invoice_grouping_key: nil,
15233
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
15234
+ # If unspecified, a single invoice is produced per billing cycle.
15235
+ invoicing_cycle_configuration: nil,
15236
+ # User-specified key/value pairs for the resource. Individual keys can be removed
15237
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
15238
+ # by setting `metadata` to `null`.
15239
+ metadata: nil,
15240
+ model_type: :grouped_tiered
15241
+ )
15242
+ end
15243
+
15244
+ sig do
15245
+ override.returns(
15246
+ {
15247
+ cadence:
15248
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::OrSymbol,
15249
+ grouped_tiered_config: T::Hash[Symbol, T.anything],
15250
+ item_id: String,
15251
+ model_type: Symbol,
15252
+ name: String,
15253
+ billable_metric_id: T.nilable(String),
15254
+ billed_in_advance: T.nilable(T::Boolean),
15255
+ billing_cycle_configuration:
15256
+ T.nilable(
15257
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration
15258
+ ),
15259
+ conversion_rate: T.nilable(Float),
15260
+ currency: T.nilable(String),
15261
+ dimensional_price_configuration:
15262
+ T.nilable(
15263
+ Orb::PlanCreateParams::Price::GroupedTiered::DimensionalPriceConfiguration
15264
+ ),
15265
+ external_price_id: T.nilable(String),
15266
+ fixed_price_quantity: T.nilable(Float),
15267
+ invoice_grouping_key: T.nilable(String),
15268
+ invoicing_cycle_configuration:
15269
+ T.nilable(
15270
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration
15271
+ ),
15272
+ metadata: T.nilable(T::Hash[Symbol, T.nilable(String)])
15273
+ }
15274
+ )
15275
+ end
15276
+ def to_hash
15277
+ end
15278
+
15279
+ # The cadence to bill for this price on.
15280
+ module Cadence
15281
+ extend Orb::Internal::Type::Enum
15282
+
15283
+ TaggedSymbol =
15284
+ T.type_alias do
15285
+ T.all(
15286
+ Symbol,
15287
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence
15288
+ )
15289
+ end
15290
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
15291
+
15292
+ ANNUAL =
15293
+ T.let(
15294
+ :annual,
15295
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15296
+ )
15297
+ SEMI_ANNUAL =
15298
+ T.let(
15299
+ :semi_annual,
15300
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15301
+ )
15302
+ MONTHLY =
15303
+ T.let(
15304
+ :monthly,
15305
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15306
+ )
15307
+ QUARTERLY =
15308
+ T.let(
15309
+ :quarterly,
15310
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15311
+ )
15312
+ ONE_TIME =
15313
+ T.let(
15314
+ :one_time,
15315
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15316
+ )
15317
+ CUSTOM =
15318
+ T.let(
15319
+ :custom,
15320
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15321
+ )
15322
+
15323
+ sig do
15324
+ override.returns(
15325
+ T::Array[
15326
+ Orb::PlanCreateParams::Price::GroupedTiered::Cadence::TaggedSymbol
15327
+ ]
15328
+ )
15329
+ end
15330
+ def self.values
15331
+ end
15332
+ end
15333
+
15334
+ class BillingCycleConfiguration < Orb::Internal::Type::BaseModel
15335
+ OrHash =
15336
+ T.type_alias do
15337
+ T.any(
15338
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration,
15339
+ Orb::Internal::AnyHash
15340
+ )
15341
+ end
15342
+
15343
+ # The duration of the billing period.
15344
+ sig { returns(Integer) }
15345
+ attr_accessor :duration
15346
+
15347
+ # The unit of billing period duration.
15348
+ sig do
15349
+ returns(
15350
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::OrSymbol
15351
+ )
15352
+ end
15353
+ attr_accessor :duration_unit
15354
+
15355
+ # For custom cadence: specifies the duration of the billing period in days or
15356
+ # months.
15357
+ sig do
15358
+ params(
15359
+ duration: Integer,
15360
+ duration_unit:
15361
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::OrSymbol
15362
+ ).returns(T.attached_class)
15363
+ end
15364
+ def self.new(
15365
+ # The duration of the billing period.
15366
+ duration:,
15367
+ # The unit of billing period duration.
15368
+ duration_unit:
15369
+ )
15370
+ end
15371
+
15372
+ sig do
15373
+ override.returns(
15374
+ {
15375
+ duration: Integer,
15376
+ duration_unit:
15377
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::OrSymbol
15378
+ }
15379
+ )
15380
+ end
15381
+ def to_hash
15382
+ end
15383
+
15384
+ # The unit of billing period duration.
15385
+ module DurationUnit
15386
+ extend Orb::Internal::Type::Enum
15387
+
15388
+ TaggedSymbol =
15389
+ T.type_alias do
15390
+ T.all(
15391
+ Symbol,
15392
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit
15393
+ )
15394
+ end
15395
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
15396
+
15397
+ DAY =
15398
+ T.let(
15399
+ :day,
15400
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::TaggedSymbol
15401
+ )
15402
+ MONTH =
15403
+ T.let(
15404
+ :month,
15405
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::TaggedSymbol
15406
+ )
15407
+
15408
+ sig do
15409
+ override.returns(
15410
+ T::Array[
15411
+ Orb::PlanCreateParams::Price::GroupedTiered::BillingCycleConfiguration::DurationUnit::TaggedSymbol
15412
+ ]
15413
+ )
15414
+ end
15415
+ def self.values
15416
+ end
15417
+ end
15418
+ end
15419
+
15420
+ class DimensionalPriceConfiguration < Orb::Internal::Type::BaseModel
15421
+ OrHash =
15422
+ T.type_alias do
15423
+ T.any(
15424
+ Orb::PlanCreateParams::Price::GroupedTiered::DimensionalPriceConfiguration,
15425
+ Orb::Internal::AnyHash
15426
+ )
15427
+ end
15428
+
15429
+ # The list of dimension values matching (in order) the dimensions of the price
15430
+ # group
15431
+ sig { returns(T::Array[String]) }
15432
+ attr_accessor :dimension_values
15433
+
15434
+ # The id of the dimensional price group to include this price in
15435
+ sig { returns(T.nilable(String)) }
15436
+ attr_accessor :dimensional_price_group_id
15437
+
15438
+ # The external id of the dimensional price group to include this price in
15439
+ sig { returns(T.nilable(String)) }
15440
+ attr_accessor :external_dimensional_price_group_id
15441
+
15442
+ # For dimensional price: specifies a price group and dimension values
15443
+ sig do
15444
+ params(
15445
+ dimension_values: T::Array[String],
15446
+ dimensional_price_group_id: T.nilable(String),
15447
+ external_dimensional_price_group_id: T.nilable(String)
15448
+ ).returns(T.attached_class)
15449
+ end
15450
+ def self.new(
15451
+ # The list of dimension values matching (in order) the dimensions of the price
15452
+ # group
15453
+ dimension_values:,
15454
+ # The id of the dimensional price group to include this price in
15455
+ dimensional_price_group_id: nil,
15456
+ # The external id of the dimensional price group to include this price in
15457
+ external_dimensional_price_group_id: nil
15458
+ )
15459
+ end
15460
+
15461
+ sig do
15462
+ override.returns(
15463
+ {
15464
+ dimension_values: T::Array[String],
15465
+ dimensional_price_group_id: T.nilable(String),
15466
+ external_dimensional_price_group_id: T.nilable(String)
15467
+ }
15468
+ )
15469
+ end
15470
+ def to_hash
15471
+ end
15472
+ end
15473
+
15474
+ class InvoicingCycleConfiguration < Orb::Internal::Type::BaseModel
15475
+ OrHash =
15476
+ T.type_alias do
15477
+ T.any(
15478
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration,
15479
+ Orb::Internal::AnyHash
15480
+ )
15481
+ end
15482
+
15483
+ # The duration of the billing period.
15484
+ sig { returns(Integer) }
15485
+ attr_accessor :duration
15486
+
15487
+ # The unit of billing period duration.
15488
+ sig do
15489
+ returns(
15490
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::OrSymbol
15491
+ )
15492
+ end
15493
+ attr_accessor :duration_unit
15494
+
15495
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
15496
+ # If unspecified, a single invoice is produced per billing cycle.
15497
+ sig do
15498
+ params(
15499
+ duration: Integer,
15500
+ duration_unit:
15501
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::OrSymbol
15502
+ ).returns(T.attached_class)
15503
+ end
15504
+ def self.new(
15505
+ # The duration of the billing period.
15506
+ duration:,
15507
+ # The unit of billing period duration.
15508
+ duration_unit:
15509
+ )
15510
+ end
15511
+
15512
+ sig do
15513
+ override.returns(
15514
+ {
15515
+ duration: Integer,
15516
+ duration_unit:
15517
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::OrSymbol
15518
+ }
15519
+ )
15520
+ end
15521
+ def to_hash
15522
+ end
15523
+
15524
+ # The unit of billing period duration.
15525
+ module DurationUnit
15526
+ extend Orb::Internal::Type::Enum
15527
+
15528
+ TaggedSymbol =
15529
+ T.type_alias do
15530
+ T.all(
15531
+ Symbol,
15532
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit
15533
+ )
15534
+ end
15535
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
15536
+
15537
+ DAY =
15538
+ T.let(
15539
+ :day,
15540
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15541
+ )
15542
+ MONTH =
15543
+ T.let(
15544
+ :month,
15545
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15546
+ )
15547
+
15548
+ sig do
15549
+ override.returns(
15550
+ T::Array[
15551
+ Orb::PlanCreateParams::Price::GroupedTiered::InvoicingCycleConfiguration::DurationUnit::TaggedSymbol
15552
+ ]
15553
+ )
15554
+ end
15555
+ def self.values
15556
+ end
15557
+ end
15558
+ end
15559
+ end
15560
+
11757
15561
  sig do
11758
15562
  override.returns(T::Array[Orb::PlanCreateParams::Price::Variants])
11759
15563
  end