orb-billing 1.14.0 → 1.15.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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/lib/orb/client.rb +14 -0
  4. data/lib/orb/internal/transport/base_client.rb +5 -0
  5. data/lib/orb/internal/type/union.rb +13 -27
  6. data/lib/orb/models/accounting_provider_config.rb +14 -3
  7. data/lib/orb/models/adjustment_interval.rb +185 -3
  8. data/lib/orb/models/alert.rb +105 -1
  9. data/lib/orb/models/alert_create_for_subscription_params.rb +120 -7
  10. data/lib/orb/models/alert_update_params.rb +113 -1
  11. data/lib/orb/models/beta/external_plan_id_create_plan_version_params.rb +2419 -17109
  12. data/lib/orb/models/beta_create_plan_version_params.rb +2361 -16947
  13. data/lib/orb/models/changed_subscription_resources.rb +200 -10
  14. data/lib/orb/models/conversion_rate_config.rb +18 -0
  15. data/lib/orb/models/credit_block_list_invoices_response.rb +155 -1
  16. data/lib/orb/models/credit_block_retrieve_response.rb +150 -1
  17. data/lib/orb/models/customer.rb +111 -4
  18. data/lib/orb/models/customer_create_params.rb +6 -1
  19. data/lib/orb/models/customer_tax_id.rb +15 -1
  20. data/lib/orb/models/customer_update_by_external_id_params.rb +16 -2
  21. data/lib/orb/models/customer_update_params.rb +16 -2
  22. data/lib/orb/models/customers/credit_list_by_external_id_response.rb +155 -1
  23. data/lib/orb/models/customers/credit_list_response.rb +152 -1
  24. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +4 -4
  25. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +4 -4
  26. data/lib/orb/models/dimensional_price_group.rb +1 -1
  27. data/lib/orb/models/discount.rb +145 -1
  28. data/lib/orb/models/event_ingest_params.rb +5 -2
  29. data/lib/orb/models/invoice.rb +198 -10
  30. data/lib/orb/models/invoice_create_params.rb +6 -5
  31. data/lib/orb/models/invoice_fetch_upcoming_response.rb +200 -10
  32. data/lib/orb/models/invoice_issue_summary_response.rb +9 -3
  33. data/lib/orb/models/invoice_level_discount.rb +145 -1
  34. data/lib/orb/models/invoice_line_item_create_response.rb +189 -5
  35. data/lib/orb/models/invoice_list_summary_response.rb +9 -3
  36. data/lib/orb/models/licenses/external_license_get_usage_params.rb +3 -3
  37. data/lib/orb/models/licenses/usage_get_all_usage_params.rb +3 -3
  38. data/lib/orb/models/licenses/usage_get_usage_params.rb +3 -3
  39. data/lib/orb/models/mutated_subscription.rb +169 -4
  40. data/lib/orb/models/new_allocation_price.rb +11 -1
  41. data/lib/orb/models/new_floating_bulk_price.rb +1 -3
  42. data/lib/orb/models/new_floating_bulk_with_proration_price.rb +1 -3
  43. data/lib/orb/models/new_floating_cumulative_grouped_bulk_price.rb +1 -3
  44. data/lib/orb/models/new_floating_grouped_allocation_price.rb +1 -3
  45. data/lib/orb/models/new_floating_grouped_tiered_package_price.rb +1 -3
  46. data/lib/orb/models/new_floating_grouped_tiered_price.rb +1 -3
  47. data/lib/orb/models/new_floating_grouped_with_metered_minimum_price.rb +1 -3
  48. data/lib/orb/models/new_floating_grouped_with_prorated_minimum_price.rb +1 -3
  49. data/lib/orb/models/new_floating_matrix_price.rb +1 -3
  50. data/lib/orb/models/new_floating_matrix_with_allocation_price.rb +1 -3
  51. data/lib/orb/models/new_floating_matrix_with_display_name_price.rb +1 -3
  52. data/lib/orb/models/new_floating_max_group_tiered_package_price.rb +1 -3
  53. data/lib/orb/models/new_floating_minimum_composite_price.rb +1 -3
  54. data/lib/orb/models/new_floating_package_price.rb +1 -3
  55. data/lib/orb/models/new_floating_package_with_allocation_price.rb +1 -3
  56. data/lib/orb/models/new_floating_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  57. data/lib/orb/models/new_floating_scalable_matrix_with_unit_pricing_price.rb +1 -3
  58. data/lib/orb/models/new_floating_threshold_total_amount_price.rb +1 -3
  59. data/lib/orb/models/new_floating_tiered_package_price.rb +1 -3
  60. data/lib/orb/models/new_floating_tiered_package_with_minimum_price.rb +1 -3
  61. data/lib/orb/models/new_floating_tiered_price.rb +1 -3
  62. data/lib/orb/models/new_floating_tiered_with_minimum_price.rb +1 -3
  63. data/lib/orb/models/new_floating_tiered_with_proration_price.rb +1 -3
  64. data/lib/orb/models/new_floating_unit_price.rb +1 -3
  65. data/lib/orb/models/new_floating_unit_with_percent_price.rb +1 -3
  66. data/lib/orb/models/new_floating_unit_with_proration_price.rb +1 -3
  67. data/lib/orb/models/new_plan_bulk_price.rb +1 -1
  68. data/lib/orb/models/new_plan_bulk_with_proration_price.rb +1 -3
  69. data/lib/orb/models/new_plan_cumulative_grouped_bulk_price.rb +1 -3
  70. data/lib/orb/models/new_plan_grouped_allocation_price.rb +1 -3
  71. data/lib/orb/models/new_plan_grouped_tiered_package_price.rb +1 -3
  72. data/lib/orb/models/new_plan_grouped_tiered_price.rb +1 -3
  73. data/lib/orb/models/new_plan_grouped_with_metered_minimum_price.rb +1 -3
  74. data/lib/orb/models/new_plan_grouped_with_prorated_minimum_price.rb +1 -3
  75. data/lib/orb/models/new_plan_matrix_price.rb +1 -5
  76. data/lib/orb/models/new_plan_matrix_with_allocation_price.rb +1 -3
  77. data/lib/orb/models/new_plan_matrix_with_display_name_price.rb +1 -3
  78. data/lib/orb/models/new_plan_max_group_tiered_package_price.rb +1 -3
  79. data/lib/orb/models/new_plan_minimum_composite_price.rb +1 -3
  80. data/lib/orb/models/new_plan_package_price.rb +1 -5
  81. data/lib/orb/models/new_plan_package_with_allocation_price.rb +1 -3
  82. data/lib/orb/models/new_plan_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  83. data/lib/orb/models/new_plan_scalable_matrix_with_unit_pricing_price.rb +1 -3
  84. data/lib/orb/models/new_plan_threshold_total_amount_price.rb +1 -3
  85. data/lib/orb/models/new_plan_tiered_package_price.rb +1 -3
  86. data/lib/orb/models/new_plan_tiered_package_with_minimum_price.rb +1 -3
  87. data/lib/orb/models/new_plan_tiered_price.rb +1 -5
  88. data/lib/orb/models/new_plan_tiered_with_minimum_price.rb +1 -3
  89. data/lib/orb/models/new_plan_unit_price.rb +1 -1
  90. data/lib/orb/models/new_plan_unit_with_percent_price.rb +1 -3
  91. data/lib/orb/models/new_plan_unit_with_proration_price.rb +1 -3
  92. data/lib/orb/models/new_subscription_bulk_price.rb +1 -3
  93. data/lib/orb/models/new_subscription_bulk_with_proration_price.rb +1 -3
  94. data/lib/orb/models/new_subscription_cumulative_grouped_bulk_price.rb +1 -3
  95. data/lib/orb/models/new_subscription_grouped_allocation_price.rb +1 -3
  96. data/lib/orb/models/new_subscription_grouped_tiered_package_price.rb +1 -3
  97. data/lib/orb/models/new_subscription_grouped_tiered_price.rb +1 -3
  98. data/lib/orb/models/new_subscription_grouped_with_metered_minimum_price.rb +1 -3
  99. data/lib/orb/models/new_subscription_grouped_with_prorated_minimum_price.rb +1 -3
  100. data/lib/orb/models/new_subscription_matrix_price.rb +1 -3
  101. data/lib/orb/models/new_subscription_matrix_with_allocation_price.rb +1 -3
  102. data/lib/orb/models/new_subscription_matrix_with_display_name_price.rb +1 -3
  103. data/lib/orb/models/new_subscription_max_group_tiered_package_price.rb +1 -3
  104. data/lib/orb/models/new_subscription_minimum_composite_price.rb +1 -3
  105. data/lib/orb/models/new_subscription_package_price.rb +1 -3
  106. data/lib/orb/models/new_subscription_package_with_allocation_price.rb +1 -3
  107. data/lib/orb/models/new_subscription_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  108. data/lib/orb/models/new_subscription_scalable_matrix_with_unit_pricing_price.rb +1 -3
  109. data/lib/orb/models/new_subscription_threshold_total_amount_price.rb +1 -3
  110. data/lib/orb/models/new_subscription_tiered_package_price.rb +1 -3
  111. data/lib/orb/models/new_subscription_tiered_package_with_minimum_price.rb +1 -3
  112. data/lib/orb/models/new_subscription_tiered_price.rb +1 -3
  113. data/lib/orb/models/new_subscription_tiered_with_minimum_price.rb +1 -3
  114. data/lib/orb/models/new_subscription_unit_price.rb +1 -3
  115. data/lib/orb/models/new_subscription_unit_with_percent_price.rb +1 -3
  116. data/lib/orb/models/new_subscription_unit_with_proration_price.rb +1 -3
  117. data/lib/orb/models/per_price_cost.rb +2 -2
  118. data/lib/orb/models/plan.rb +189 -9
  119. data/lib/orb/models/plan_create_params.rb +1047 -8228
  120. data/lib/orb/models/plan_update_params.rb +9 -1
  121. data/lib/orb/models/plan_version.rb +186 -5
  122. data/lib/orb/models/plans/external_plan_id_update_params.rb +9 -1
  123. data/lib/orb/models/plans/migration_cancel_response.rb +22 -4
  124. data/lib/orb/models/plans/migration_list_response.rb +22 -4
  125. data/lib/orb/models/plans/migration_retrieve_response.rb +22 -4
  126. data/lib/orb/models/price.rb +2614 -1268
  127. data/lib/orb/models/price_create_params.rb +866 -49
  128. data/lib/orb/models/price_evaluate_multiple_params.rb +889 -54
  129. data/lib/orb/models/price_evaluate_preview_events_params.rb +881 -46
  130. data/lib/orb/models/price_interval.rb +2 -2
  131. data/lib/orb/models/subscription.rb +168 -4
  132. data/lib/orb/models/subscription_create_params.rb +2818 -674
  133. data/lib/orb/models/subscription_price_intervals_params.rb +1098 -57
  134. data/lib/orb/models/subscription_schedule_plan_change_params.rb +2834 -687
  135. data/lib/orb/models/subscription_update_params.rb +12 -1
  136. data/lib/orb/models.rb +2 -0
  137. data/lib/orb/resources/alerts.rb +14 -3
  138. data/lib/orb/resources/customers/credits/ledger.rb +28 -14
  139. data/lib/orb/resources/customers.rb +6 -2
  140. data/lib/orb/resources/events.rb +7 -34
  141. data/lib/orb/resources/invoices.rb +6 -2
  142. data/lib/orb/resources/licenses/external_licenses.rb +1 -1
  143. data/lib/orb/resources/licenses/usage.rb +2 -2
  144. data/lib/orb/resources/metrics.rb +5 -5
  145. data/lib/orb/resources/plans/external_plan_id.rb +5 -3
  146. data/lib/orb/resources/plans.rb +9 -5
  147. data/lib/orb/resources/prices/external_price_id.rb +2 -2
  148. data/lib/orb/resources/prices.rb +5 -5
  149. data/lib/orb/resources/subscriptions.rb +20 -3
  150. data/lib/orb/version.rb +1 -1
  151. data/lib/orb.rb +1 -0
  152. data/rbi/orb/models/accounting_provider_config.rbi +38 -5
  153. data/rbi/orb/models/adjustment_interval.rbi +336 -0
  154. data/rbi/orb/models/alert.rbi +172 -3
  155. data/rbi/orb/models/alert_create_for_subscription_params.rbi +268 -9
  156. data/rbi/orb/models/alert_update_params.rbi +208 -0
  157. data/rbi/orb/models/beta/external_plan_id_create_plan_version_params.rbi +3833 -28395
  158. data/rbi/orb/models/beta_create_plan_version_params.rbi +3833 -28363
  159. data/rbi/orb/models/changed_subscription_resources.rbi +360 -5
  160. data/rbi/orb/models/conversion_rate_config.rbi +18 -0
  161. data/rbi/orb/models/credit_block_list_invoices_response.rbi +346 -3
  162. data/rbi/orb/models/credit_block_retrieve_response.rbi +344 -3
  163. data/rbi/orb/models/customer.rbi +190 -10
  164. data/rbi/orb/models/customer_create_params.rbi +12 -2
  165. data/rbi/orb/models/customer_tax_id.rbi +15 -1
  166. data/rbi/orb/models/customer_update_by_external_id_params.rbi +22 -2
  167. data/rbi/orb/models/customer_update_params.rbi +22 -2
  168. data/rbi/orb/models/customers/credit_list_by_external_id_response.rbi +346 -3
  169. data/rbi/orb/models/customers/credit_list_response.rbi +347 -3
  170. data/rbi/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +6 -6
  171. data/rbi/orb/models/customers/credits/ledger_create_entry_params.rbi +6 -6
  172. data/rbi/orb/models/dimensional_price_group.rbi +1 -1
  173. data/rbi/orb/models/discount.rbi +269 -1
  174. data/rbi/orb/models/event_ingest_params.rbi +4 -2
  175. data/rbi/orb/models/invoice.rbi +360 -5
  176. data/rbi/orb/models/invoice_create_params.rbi +12 -7
  177. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +360 -5
  178. data/rbi/orb/models/invoice_issue_summary_response.rbi +19 -4
  179. data/rbi/orb/models/invoice_level_discount.rbi +298 -1
  180. data/rbi/orb/models/invoice_line_item_create_response.rbi +339 -0
  181. data/rbi/orb/models/invoice_list_summary_response.rbi +19 -4
  182. data/rbi/orb/models/licenses/external_license_get_usage_params.rbi +3 -3
  183. data/rbi/orb/models/licenses/usage_get_all_usage_params.rbi +3 -3
  184. data/rbi/orb/models/licenses/usage_get_usage_params.rbi +3 -3
  185. data/rbi/orb/models/mutated_subscription.rbi +324 -2
  186. data/rbi/orb/models/new_allocation_price.rbi +12 -0
  187. data/rbi/orb/models/per_price_cost.rbi +3 -0
  188. data/rbi/orb/models/plan.rbi +339 -2
  189. data/rbi/orb/models/plan_create_params.rbi +1877 -14138
  190. data/rbi/orb/models/plan_update_params.rbi +8 -0
  191. data/rbi/orb/models/plan_version.rbi +339 -0
  192. data/rbi/orb/models/plans/external_plan_id_update_params.rbi +8 -0
  193. data/rbi/orb/models/plans/migration_cancel_response.rbi +22 -1
  194. data/rbi/orb/models/plans/migration_list_response.rbi +22 -1
  195. data/rbi/orb/models/plans/migration_retrieve_response.rbi +22 -1
  196. data/rbi/orb/models/price.rbi +4552 -2285
  197. data/rbi/orb/models/price_create_params.rbi +1540 -114
  198. data/rbi/orb/models/price_evaluate_multiple_params.rbi +1540 -114
  199. data/rbi/orb/models/price_evaluate_preview_events_params.rbi +1540 -114
  200. data/rbi/orb/models/price_interval.rbi +3 -0
  201. data/rbi/orb/models/subscription.rbi +324 -2
  202. data/rbi/orb/models/subscription_create_params.rbi +4998 -1186
  203. data/rbi/orb/models/subscription_price_intervals_params.rbi +2127 -264
  204. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +4997 -1185
  205. data/rbi/orb/models/subscription_update_params.rbi +14 -0
  206. data/rbi/orb/models.rbi +2 -0
  207. data/rbi/orb/resources/alerts.rbi +39 -4
  208. data/rbi/orb/resources/customers/credits/ledger.rbi +28 -14
  209. data/rbi/orb/resources/customers.rbi +23 -0
  210. data/rbi/orb/resources/events.rbi +8 -35
  211. data/rbi/orb/resources/invoices.rbi +9 -3
  212. data/rbi/orb/resources/licenses/external_licenses.rbi +1 -1
  213. data/rbi/orb/resources/licenses/usage.rbi +2 -2
  214. data/rbi/orb/resources/metrics.rbi +5 -5
  215. data/rbi/orb/resources/plans/external_plan_id.rbi +5 -2
  216. data/rbi/orb/resources/plans.rbi +9 -3
  217. data/rbi/orb/resources/prices.rbi +3 -0
  218. data/rbi/orb/resources/subscriptions.rbi +29 -0
  219. data/sig/orb/models/accounting_provider_config.rbs +21 -4
  220. data/sig/orb/models/adjustment_interval.rbs +134 -0
  221. data/sig/orb/models/alert.rbs +85 -3
  222. data/sig/orb/models/alert_create_for_subscription_params.rbs +86 -4
  223. data/sig/orb/models/alert_update_params.rbs +86 -1
  224. data/sig/orb/models/beta/external_plan_id_create_plan_version_params.rbs +1803 -11601
  225. data/sig/orb/models/beta_create_plan_version_params.rbs +1747 -11541
  226. data/sig/orb/models/changed_subscription_resources.rbs +140 -1
  227. data/sig/orb/models/conversion_rate_config.rbs +12 -0
  228. data/sig/orb/models/credit_block_list_invoices_response.rbs +124 -3
  229. data/sig/orb/models/credit_block_retrieve_response.rbs +124 -3
  230. data/sig/orb/models/customer.rbs +70 -4
  231. data/sig/orb/models/customer_create_params.rbs +2 -2
  232. data/sig/orb/models/customer_tax_id.rbs +20 -2
  233. data/sig/orb/models/customer_update_by_external_id_params.rbs +7 -2
  234. data/sig/orb/models/customer_update_params.rbs +7 -2
  235. data/sig/orb/models/customers/credit_list_by_external_id_response.rbs +124 -3
  236. data/sig/orb/models/customers/credit_list_response.rbs +124 -3
  237. data/sig/orb/models/discount.rbs +114 -0
  238. data/sig/orb/models/invoice.rbs +140 -1
  239. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +140 -1
  240. data/sig/orb/models/invoice_issue_summary_response.rbs +2 -1
  241. data/sig/orb/models/invoice_level_discount.rbs +117 -1
  242. data/sig/orb/models/invoice_line_item_create_response.rbs +134 -0
  243. data/sig/orb/models/invoice_list_summary_response.rbs +2 -1
  244. data/sig/orb/models/licenses/external_license_get_usage_params.rbs +4 -4
  245. data/sig/orb/models/licenses/usage_get_all_usage_params.rbs +4 -4
  246. data/sig/orb/models/licenses/usage_get_usage_params.rbs +4 -4
  247. data/sig/orb/models/mutated_subscription.rbs +124 -0
  248. data/sig/orb/models/new_allocation_price.rbs +5 -0
  249. data/sig/orb/models/new_floating_bulk_price.rbs +4 -4
  250. data/sig/orb/models/new_floating_bulk_with_proration_price.rbs +4 -4
  251. data/sig/orb/models/new_floating_cumulative_grouped_bulk_price.rbs +4 -4
  252. data/sig/orb/models/new_floating_grouped_allocation_price.rbs +4 -4
  253. data/sig/orb/models/new_floating_grouped_tiered_package_price.rbs +4 -4
  254. data/sig/orb/models/new_floating_grouped_tiered_price.rbs +4 -4
  255. data/sig/orb/models/new_floating_grouped_with_metered_minimum_price.rbs +4 -4
  256. data/sig/orb/models/new_floating_grouped_with_prorated_minimum_price.rbs +4 -4
  257. data/sig/orb/models/new_floating_matrix_price.rbs +4 -4
  258. data/sig/orb/models/new_floating_matrix_with_allocation_price.rbs +4 -4
  259. data/sig/orb/models/new_floating_matrix_with_display_name_price.rbs +4 -4
  260. data/sig/orb/models/new_floating_max_group_tiered_package_price.rbs +4 -4
  261. data/sig/orb/models/new_floating_minimum_composite_price.rbs +4 -4
  262. data/sig/orb/models/new_floating_package_price.rbs +4 -4
  263. data/sig/orb/models/new_floating_package_with_allocation_price.rbs +4 -4
  264. data/sig/orb/models/new_floating_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  265. data/sig/orb/models/new_floating_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  266. data/sig/orb/models/new_floating_threshold_total_amount_price.rbs +4 -4
  267. data/sig/orb/models/new_floating_tiered_package_price.rbs +4 -4
  268. data/sig/orb/models/new_floating_tiered_package_with_minimum_price.rbs +4 -4
  269. data/sig/orb/models/new_floating_tiered_price.rbs +4 -4
  270. data/sig/orb/models/new_floating_tiered_with_minimum_price.rbs +4 -4
  271. data/sig/orb/models/new_floating_tiered_with_proration_price.rbs +4 -4
  272. data/sig/orb/models/new_floating_unit_price.rbs +4 -4
  273. data/sig/orb/models/new_floating_unit_with_percent_price.rbs +4 -4
  274. data/sig/orb/models/new_floating_unit_with_proration_price.rbs +4 -4
  275. data/sig/orb/models/new_plan_bulk_price.rbs +4 -4
  276. data/sig/orb/models/new_plan_bulk_with_proration_price.rbs +4 -4
  277. data/sig/orb/models/new_plan_cumulative_grouped_bulk_price.rbs +4 -4
  278. data/sig/orb/models/new_plan_grouped_allocation_price.rbs +4 -4
  279. data/sig/orb/models/new_plan_grouped_tiered_package_price.rbs +4 -4
  280. data/sig/orb/models/new_plan_grouped_tiered_price.rbs +4 -4
  281. data/sig/orb/models/new_plan_grouped_with_metered_minimum_price.rbs +4 -4
  282. data/sig/orb/models/new_plan_grouped_with_prorated_minimum_price.rbs +4 -4
  283. data/sig/orb/models/new_plan_matrix_price.rbs +4 -4
  284. data/sig/orb/models/new_plan_matrix_with_allocation_price.rbs +4 -4
  285. data/sig/orb/models/new_plan_matrix_with_display_name_price.rbs +4 -4
  286. data/sig/orb/models/new_plan_max_group_tiered_package_price.rbs +4 -4
  287. data/sig/orb/models/new_plan_minimum_composite_price.rbs +4 -4
  288. data/sig/orb/models/new_plan_package_price.rbs +4 -4
  289. data/sig/orb/models/new_plan_package_with_allocation_price.rbs +4 -4
  290. data/sig/orb/models/new_plan_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  291. data/sig/orb/models/new_plan_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  292. data/sig/orb/models/new_plan_threshold_total_amount_price.rbs +4 -4
  293. data/sig/orb/models/new_plan_tiered_package_price.rbs +4 -4
  294. data/sig/orb/models/new_plan_tiered_package_with_minimum_price.rbs +4 -4
  295. data/sig/orb/models/new_plan_tiered_price.rbs +4 -4
  296. data/sig/orb/models/new_plan_tiered_with_minimum_price.rbs +4 -4
  297. data/sig/orb/models/new_plan_unit_price.rbs +4 -4
  298. data/sig/orb/models/new_plan_unit_with_percent_price.rbs +4 -4
  299. data/sig/orb/models/new_plan_unit_with_proration_price.rbs +4 -4
  300. data/sig/orb/models/new_subscription_bulk_price.rbs +4 -4
  301. data/sig/orb/models/new_subscription_bulk_with_proration_price.rbs +4 -4
  302. data/sig/orb/models/new_subscription_cumulative_grouped_bulk_price.rbs +4 -4
  303. data/sig/orb/models/new_subscription_grouped_allocation_price.rbs +4 -4
  304. data/sig/orb/models/new_subscription_grouped_tiered_package_price.rbs +4 -4
  305. data/sig/orb/models/new_subscription_grouped_tiered_price.rbs +4 -4
  306. data/sig/orb/models/new_subscription_grouped_with_metered_minimum_price.rbs +4 -4
  307. data/sig/orb/models/new_subscription_grouped_with_prorated_minimum_price.rbs +4 -4
  308. data/sig/orb/models/new_subscription_matrix_price.rbs +4 -4
  309. data/sig/orb/models/new_subscription_matrix_with_allocation_price.rbs +4 -4
  310. data/sig/orb/models/new_subscription_matrix_with_display_name_price.rbs +4 -4
  311. data/sig/orb/models/new_subscription_max_group_tiered_package_price.rbs +4 -4
  312. data/sig/orb/models/new_subscription_minimum_composite_price.rbs +4 -4
  313. data/sig/orb/models/new_subscription_package_price.rbs +4 -4
  314. data/sig/orb/models/new_subscription_package_with_allocation_price.rbs +4 -4
  315. data/sig/orb/models/new_subscription_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  316. data/sig/orb/models/new_subscription_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  317. data/sig/orb/models/new_subscription_threshold_total_amount_price.rbs +4 -4
  318. data/sig/orb/models/new_subscription_tiered_package_price.rbs +4 -4
  319. data/sig/orb/models/new_subscription_tiered_package_with_minimum_price.rbs +4 -4
  320. data/sig/orb/models/new_subscription_tiered_price.rbs +4 -4
  321. data/sig/orb/models/new_subscription_tiered_with_minimum_price.rbs +4 -4
  322. data/sig/orb/models/new_subscription_unit_price.rbs +4 -4
  323. data/sig/orb/models/new_subscription_unit_with_percent_price.rbs +4 -4
  324. data/sig/orb/models/new_subscription_unit_with_proration_price.rbs +4 -4
  325. data/sig/orb/models/plan.rbs +134 -0
  326. data/sig/orb/models/plan_create_params.rbs +836 -5728
  327. data/sig/orb/models/plan_update_params.rbs +5 -0
  328. data/sig/orb/models/plan_version.rbs +134 -0
  329. data/sig/orb/models/plans/external_plan_id_update_params.rbs +5 -0
  330. data/sig/orb/models/price.rbs +2200 -1150
  331. data/sig/orb/models/price_create_params.rbs +611 -23
  332. data/sig/orb/models/price_evaluate_multiple_params.rbs +626 -23
  333. data/sig/orb/models/price_evaluate_preview_events_params.rbs +626 -23
  334. data/sig/orb/models/subscription.rbs +124 -0
  335. data/sig/orb/models/subscription_create_params.rbs +2009 -430
  336. data/sig/orb/models/subscription_price_intervals_params.rbs +795 -23
  337. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +2009 -430
  338. data/sig/orb/models/subscription_update_params.rbs +5 -0
  339. data/sig/orb/models.rbs +2 -0
  340. data/sig/orb/resources/alerts.rbs +5 -1
  341. data/sig/orb/resources/customers.rbs +2 -0
  342. data/sig/orb/resources/licenses/external_licenses.rbs +1 -1
  343. data/sig/orb/resources/licenses/usage.rbs +2 -2
  344. data/sig/orb/resources/plans/external_plan_id.rbs +1 -0
  345. data/sig/orb/resources/plans.rbs +2 -0
  346. data/sig/orb/resources/subscriptions.rbs +3 -0
  347. metadata +6 -7
@@ -50,6 +50,15 @@ module Orb
50
50
  # @return [Boolean, nil]
51
51
  optional :auto_collection, Orb::Internal::Type::Boolean, nil?: true
52
52
 
53
+ # @!attribute auto_issuance
54
+ # Used to determine if invoices for this subscription will be automatically
55
+ # issued. If true, invoices will be automatically issued. If false, invoices will
56
+ # require manual approval. If `null` is specified, this defaults to the behavior
57
+ # configured for this customer.
58
+ #
59
+ # @return [Boolean, nil]
60
+ optional :auto_issuance, Orb::Internal::Type::Boolean, nil?: true
61
+
53
62
  # @!attribute billing_cycle_alignment
54
63
  # Reset billing periods to be aligned with the plan change's effective date or
55
64
  # start of the month. Defaults to `unchanged` which keeps subscription's existing
@@ -220,7 +229,7 @@ module Orb
220
229
  # @return [Array<String>, nil]
221
230
  optional :usage_customer_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
222
231
 
223
- # @!method initialize(subscription_id:, change_option:, add_adjustments: nil, add_prices: nil, align_billing_with_plan_change_date: nil, auto_collection: nil, billing_cycle_alignment: nil, billing_cycle_anchor_configuration: nil, change_date: nil, coupon_redemption_code: nil, credits_overage_rate: nil, default_invoice_memo: nil, external_plan_id: nil, filter: nil, initial_phase_order: nil, invoicing_threshold: nil, net_terms: nil, per_credit_overage_amount: nil, plan_id: nil, plan_version_number: nil, price_overrides: nil, remove_adjustments: nil, remove_prices: nil, replace_adjustments: nil, replace_prices: nil, trial_duration_days: nil, usage_customer_ids: nil, request_options: {})
232
+ # @!method initialize(subscription_id:, change_option:, add_adjustments: nil, add_prices: nil, align_billing_with_plan_change_date: nil, auto_collection: nil, auto_issuance: nil, billing_cycle_alignment: nil, billing_cycle_anchor_configuration: nil, change_date: nil, coupon_redemption_code: nil, credits_overage_rate: nil, default_invoice_memo: nil, external_plan_id: nil, filter: nil, initial_phase_order: nil, invoicing_threshold: nil, net_terms: nil, per_credit_overage_amount: nil, plan_id: nil, plan_version_number: nil, price_overrides: nil, remove_adjustments: nil, remove_prices: nil, replace_adjustments: nil, replace_prices: nil, trial_duration_days: nil, usage_customer_ids: nil, request_options: {})
224
233
  # Some parameter documentations has been truncated, see
225
234
  # {Orb::Models::SubscriptionSchedulePlanChangeParams} for more details.
226
235
  #
@@ -236,6 +245,8 @@ module Orb
236
245
  #
237
246
  # @param auto_collection [Boolean, nil] Determines whether issued invoices for this subscription will automatically be c
238
247
  #
248
+ # @param auto_issuance [Boolean, nil] Used to determine if invoices for this subscription will be automatically issued
249
+ #
239
250
  # @param billing_cycle_alignment [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::BillingCycleAlignment, nil] Reset billing periods to be aligned with the plan change's effective date or sta
240
251
  #
241
252
  # @param billing_cycle_anchor_configuration [Orb::Models::BillingCycleAnchorConfiguration, nil]
@@ -295,7 +306,7 @@ module Orb
295
306
  # @!attribute adjustment
296
307
  # The definition of a new adjustment to create and add to the subscription.
297
308
  #
298
- # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum]
309
+ # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount]
299
310
  required :adjustment, union: -> { Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment }
300
311
 
301
312
  # @!attribute end_date
@@ -324,7 +335,7 @@ module Orb
324
335
  # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment} for more
325
336
  # details.
326
337
  #
327
- # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum] The definition of a new adjustment to create and add to the subscription.
338
+ # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount] The definition of a new adjustment to create and add to the subscription.
328
339
  #
329
340
  # @param end_date [Time, nil] The end date of the adjustment interval. This is the date that the adjustment wi
330
341
  #
@@ -350,8 +361,215 @@ module Orb
350
361
 
351
362
  variant :maximum, -> { Orb::NewMaximum }
352
363
 
364
+ variant :tiered_percentage_discount,
365
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount }
366
+
367
+ class TieredPercentageDiscount < Orb::Internal::Type::BaseModel
368
+ # @!attribute adjustment_type
369
+ #
370
+ # @return [Symbol, :tiered_percentage_discount]
371
+ required :adjustment_type, const: :tiered_percentage_discount
372
+
373
+ # @!attribute tiers
374
+ #
375
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
376
+ required :tiers,
377
+ -> { Orb::Internal::Type::ArrayOf[Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier] }
378
+
379
+ # @!attribute applies_to_all
380
+ # If set, the adjustment will apply to every price on the subscription.
381
+ #
382
+ # @return [Boolean, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil]
383
+ optional :applies_to_all,
384
+ enum: -> {
385
+ Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll
386
+ },
387
+ nil?: true
388
+
389
+ # @!attribute applies_to_item_ids
390
+ # The set of item IDs to which this adjustment applies.
391
+ #
392
+ # @return [Array<String>, nil]
393
+ optional :applies_to_item_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
394
+
395
+ # @!attribute applies_to_price_ids
396
+ # The set of price IDs to which this adjustment applies.
397
+ #
398
+ # @return [Array<String>, nil]
399
+ optional :applies_to_price_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
400
+
401
+ # @!attribute currency
402
+ # If set, only prices in the specified currency will have the adjustment applied.
403
+ #
404
+ # @return [String, nil]
405
+ optional :currency, String, nil?: true
406
+
407
+ # @!attribute filters
408
+ # A list of filters that determine which prices this adjustment will apply to.
409
+ #
410
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil]
411
+ optional :filters,
412
+ -> {
413
+ Orb::Internal::Type::ArrayOf[Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter]
414
+ },
415
+ nil?: true
416
+
417
+ # @!attribute is_invoice_level
418
+ # When false, this adjustment will be applied to a single price. Otherwise, it
419
+ # will be applied at the invoice level, possibly to multiple prices.
420
+ #
421
+ # @return [Boolean, nil]
422
+ optional :is_invoice_level, Orb::Internal::Type::Boolean
423
+
424
+ # @!attribute price_type
425
+ # If set, only prices of the specified type will have the adjustment applied.
426
+ #
427
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil]
428
+ optional :price_type,
429
+ enum: -> {
430
+ Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType
431
+ },
432
+ nil?: true
433
+
434
+ # @!method initialize(tiers:, applies_to_all: nil, applies_to_item_ids: nil, applies_to_price_ids: nil, currency: nil, filters: nil, is_invoice_level: nil, price_type: nil, adjustment_type: :tiered_percentage_discount)
435
+ # Some parameter documentations has been truncated, see
436
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount}
437
+ # for more details.
438
+ #
439
+ # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
440
+ #
441
+ # @param applies_to_all [Boolean, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil] If set, the adjustment will apply to every price on the subscription.
442
+ #
443
+ # @param applies_to_item_ids [Array<String>, nil] The set of item IDs to which this adjustment applies.
444
+ #
445
+ # @param applies_to_price_ids [Array<String>, nil] The set of price IDs to which this adjustment applies.
446
+ #
447
+ # @param currency [String, nil] If set, only prices in the specified currency will have the adjustment applied.
448
+ #
449
+ # @param filters [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil] A list of filters that determine which prices this adjustment will apply to.
450
+ #
451
+ # @param is_invoice_level [Boolean] When false, this adjustment will be applied to a single price. Otherwise, it wil
452
+ #
453
+ # @param price_type [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil] If set, only prices of the specified type will have the adjustment applied.
454
+ #
455
+ # @param adjustment_type [Symbol, :tiered_percentage_discount]
456
+
457
+ class Tier < Orb::Internal::Type::BaseModel
458
+ # @!attribute lower_bound
459
+ # Exclusive lower bound of cumulative spend for this tier.
460
+ #
461
+ # @return [Float]
462
+ required :lower_bound, Float
463
+
464
+ # @!attribute percentage
465
+ # The percentage (0-1) discounted from spend in this tier.
466
+ #
467
+ # @return [Float]
468
+ required :percentage, Float
469
+
470
+ # @!attribute upper_bound
471
+ # Inclusive upper bound of cumulative spend; null for the final open-ended tier.
472
+ #
473
+ # @return [Float, nil]
474
+ optional :upper_bound, Float, nil?: true
475
+
476
+ # @!method initialize(lower_bound:, percentage:, upper_bound: nil)
477
+ # @param lower_bound [Float] Exclusive lower bound of cumulative spend for this tier.
478
+ #
479
+ # @param percentage [Float] The percentage (0-1) discounted from spend in this tier.
480
+ #
481
+ # @param upper_bound [Float, nil] Inclusive upper bound of cumulative spend; null for the final open-ended tier.
482
+ end
483
+
484
+ # If set, the adjustment will apply to every price on the subscription.
485
+ #
486
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount#applies_to_all
487
+ module AppliesToAll
488
+ extend Orb::Internal::Type::Enum
489
+
490
+ TRUE = true
491
+
492
+ # @!method self.values
493
+ # @return [Array<Boolean>]
494
+ end
495
+
496
+ class Filter < Orb::Internal::Type::BaseModel
497
+ # @!attribute field
498
+ # The property of the price to filter on.
499
+ #
500
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field]
501
+ required :field,
502
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field }
503
+
504
+ # @!attribute operator
505
+ # Should prices that match the filter be included or excluded.
506
+ #
507
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator]
508
+ required :operator,
509
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator }
510
+
511
+ # @!attribute values
512
+ # The IDs or values that match this filter.
513
+ #
514
+ # @return [Array<String>]
515
+ required :values, Orb::Internal::Type::ArrayOf[String]
516
+
517
+ # @!method initialize(field:, operator:, values:)
518
+ # @param field [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field] The property of the price to filter on.
519
+ #
520
+ # @param operator [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator] Should prices that match the filter be included or excluded.
521
+ #
522
+ # @param values [Array<String>] The IDs or values that match this filter.
523
+
524
+ # The property of the price to filter on.
525
+ #
526
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter#field
527
+ module Field
528
+ extend Orb::Internal::Type::Enum
529
+
530
+ PRICE_ID = :price_id
531
+ ITEM_ID = :item_id
532
+ PRICE_TYPE = :price_type
533
+ CURRENCY = :currency
534
+ PRICING_UNIT_ID = :pricing_unit_id
535
+
536
+ # @!method self.values
537
+ # @return [Array<Symbol>]
538
+ end
539
+
540
+ # Should prices that match the filter be included or excluded.
541
+ #
542
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter#operator
543
+ module Operator
544
+ extend Orb::Internal::Type::Enum
545
+
546
+ INCLUDES = :includes
547
+ EXCLUDES = :excludes
548
+
549
+ # @!method self.values
550
+ # @return [Array<Symbol>]
551
+ end
552
+ end
553
+
554
+ # If set, only prices of the specified type will have the adjustment applied.
555
+ #
556
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount#price_type
557
+ module PriceType
558
+ extend Orb::Internal::Type::Enum
559
+
560
+ USAGE = :usage
561
+ FIXED_IN_ADVANCE = :fixed_in_advance
562
+ FIXED_IN_ARREARS = :fixed_in_arrears
563
+ FIXED = :fixed
564
+ IN_ARREARS = :in_arrears
565
+
566
+ # @!method self.values
567
+ # @return [Array<Symbol>]
568
+ end
569
+ end
570
+
353
571
  # @!method self.variants
354
- # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum)]
572
+ # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::AddAdjustment::Adjustment::TieredPercentageDiscount)]
355
573
  end
356
574
  end
357
575
 
@@ -421,7 +639,7 @@ module Orb
421
639
  # @!attribute price
422
640
  # New subscription price request body params.
423
641
  #
424
- # @return [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput, nil]
642
+ # @return [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput, nil]
425
643
  optional :price, union: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price }, nil?: true
426
644
 
427
645
  # @!attribute price_id
@@ -458,7 +676,7 @@ module Orb
458
676
  #
459
677
  # @param plan_phase_order [Integer, nil] The phase to add this price to.
460
678
  #
461
- # @param price [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput, nil] New subscription price request body params.
679
+ # @param price [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput, nil] New subscription price request body params.
462
680
  #
463
681
  # @param price_id [String, nil] The id of the price to add to the subscription.
464
682
  #
@@ -501,6 +719,9 @@ module Orb
501
719
 
502
720
  variant :matrix_with_allocation, -> { Orb::NewSubscriptionMatrixWithAllocationPrice }
503
721
 
722
+ variant :matrix_with_threshold_discounts,
723
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts }
724
+
504
725
  variant :tiered_with_proration,
505
726
  -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration }
506
727
 
@@ -533,6 +754,12 @@ module Orb
533
754
  variant :cumulative_grouped_allocation,
534
755
  -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation }
535
756
 
757
+ variant :daily_credit_allowance,
758
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance }
759
+
760
+ variant :metered_allowance,
761
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance }
762
+
536
763
  variant :minimum_composite, -> { Orb::NewSubscriptionMinimumCompositePrice }
537
764
 
538
765
  variant :percent, -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent }
@@ -603,11 +830,7 @@ module Orb
603
830
  # The configuration for the rate of the price currency to the invoicing currency.
604
831
  #
605
832
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
606
- optional :conversion_rate_config,
607
- union: -> {
608
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters::ConversionRateConfig
609
- },
610
- nil?: true
833
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
611
834
 
612
835
  # @!attribute currency
613
836
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -800,13 +1023,13 @@ module Orb
800
1023
  end
801
1024
  end
802
1025
 
803
- class TieredWithProration < Orb::Internal::Type::BaseModel
1026
+ class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
804
1027
  # @!attribute cadence
805
1028
  # The cadence to bill for this price on.
806
1029
  #
807
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence]
1030
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::Cadence]
808
1031
  required :cadence,
809
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence }
1032
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::Cadence }
810
1033
 
811
1034
  # @!attribute item_id
812
1035
  # The id of the item the price will be associated with.
@@ -814,11 +1037,18 @@ module Orb
814
1037
  # @return [String]
815
1038
  required :item_id, String
816
1039
 
1040
+ # @!attribute matrix_with_threshold_discounts_config
1041
+ # Configuration for matrix_with_threshold_discounts pricing
1042
+ #
1043
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig]
1044
+ required :matrix_with_threshold_discounts_config,
1045
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig }
1046
+
817
1047
  # @!attribute model_type
818
1048
  # The pricing model type
819
1049
  #
820
- # @return [Symbol, :tiered_with_proration]
821
- required :model_type, const: :tiered_with_proration
1050
+ # @return [Symbol, :matrix_with_threshold_discounts]
1051
+ required :model_type, const: :matrix_with_threshold_discounts
822
1052
 
823
1053
  # @!attribute name
824
1054
  # The name of the price.
@@ -826,13 +1056,6 @@ module Orb
826
1056
  # @return [String]
827
1057
  required :name, String
828
1058
 
829
- # @!attribute tiered_with_proration_config
830
- # Configuration for tiered_with_proration pricing
831
- #
832
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig]
833
- required :tiered_with_proration_config,
834
- -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig }
835
-
836
1059
  # @!attribute billable_metric_id
837
1060
  # The id of the billable metric for the price. Only needed if the price is
838
1061
  # usage-based.
@@ -864,11 +1087,7 @@ module Orb
864
1087
  # The configuration for the rate of the price currency to the invoicing currency.
865
1088
  #
866
1089
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
867
- optional :conversion_rate_config,
868
- union: -> {
869
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::ConversionRateConfig
870
- },
871
- nil?: true
1090
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
872
1091
 
873
1092
  # @!attribute currency
874
1093
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -934,18 +1153,18 @@ module Orb
934
1153
  # @return [String, nil]
935
1154
  optional :reference_id, String, nil?: true
936
1155
 
937
- # @!method initialize(cadence:, item_id:, name:, tiered_with_proration_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_with_proration)
1156
+ # @!method initialize(cadence:, item_id:, matrix_with_threshold_discounts_config:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :matrix_with_threshold_discounts)
938
1157
  # Some parameter documentations has been truncated, see
939
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration}
1158
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts}
940
1159
  # for more details.
941
1160
  #
942
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence] The cadence to bill for this price on.
1161
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::Cadence] The cadence to bill for this price on.
943
1162
  #
944
1163
  # @param item_id [String] The id of the item the price will be associated with.
945
1164
  #
946
- # @param name [String] The name of the price.
1165
+ # @param matrix_with_threshold_discounts_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig] Configuration for matrix_with_threshold_discounts pricing
947
1166
  #
948
- # @param tiered_with_proration_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig] Configuration for tiered_with_proration pricing
1167
+ # @param name [String] The name of the price.
949
1168
  #
950
1169
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
951
1170
  #
@@ -975,11 +1194,11 @@ module Orb
975
1194
  #
976
1195
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
977
1196
  #
978
- # @param model_type [Symbol, :tiered_with_proration] The pricing model type
1197
+ # @param model_type [Symbol, :matrix_with_threshold_discounts] The pricing model type
979
1198
 
980
1199
  # The cadence to bill for this price on.
981
1200
  #
982
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration#cadence
1201
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts#cadence
983
1202
  module Cadence
984
1203
  extend Orb::Internal::Type::Enum
985
1204
 
@@ -994,66 +1213,139 @@ module Orb
994
1213
  # @return [Array<Symbol>]
995
1214
  end
996
1215
 
997
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration#tiered_with_proration_config
998
- class TieredWithProrationConfig < Orb::Internal::Type::BaseModel
999
- # @!attribute tiers
1000
- # Tiers for rating based on total usage quantities into the specified tier with
1001
- # proration
1216
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts#matrix_with_threshold_discounts_config
1217
+ class MatrixWithThresholdDiscountsConfig < Orb::Internal::Type::BaseModel
1218
+ # @!attribute default_unit_amount
1219
+ # Unit price used for usage that does not match any defined matrix cell.
1002
1220
  #
1003
- # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>]
1004
- required :tiers,
1221
+ # @return [String]
1222
+ required :default_unit_amount, String
1223
+
1224
+ # @!attribute first_dimension
1225
+ # First matrix dimension key.
1226
+ #
1227
+ # @return [String]
1228
+ required :first_dimension, String
1229
+
1230
+ # @!attribute matrix_values
1231
+ # Per-cell unit prices.
1232
+ #
1233
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>]
1234
+ required :matrix_values,
1005
1235
  -> do
1006
1236
  Orb::Internal::Type::ArrayOf[
1007
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier
1237
+ Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue
1008
1238
  ]
1009
1239
  end
1010
1240
 
1011
- # @!method initialize(tiers:)
1012
- # Some parameter documentations has been truncated, see
1013
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig}
1014
- # for more details.
1241
+ # @!attribute second_dimension
1242
+ # Optional second matrix dimension key.
1015
1243
  #
1016
- # Configuration for tiered_with_proration pricing
1244
+ # @return [String, nil]
1245
+ optional :second_dimension, String, nil?: true
1246
+
1247
+ # @!attribute threshold_discount_groups
1017
1248
  #
1018
- # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>] Tiers for rating based on total usage quantities into the specified tier with pr
1249
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>, nil]
1250
+ optional :threshold_discount_groups,
1251
+ -> do
1252
+ Orb::Internal::Type::ArrayOf[
1253
+ Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup
1254
+ ]
1255
+ end
1019
1256
 
1020
- class Tier < Orb::Internal::Type::BaseModel
1021
- # @!attribute tier_lower_bound
1022
- # Inclusive tier starting value
1257
+ # @!method initialize(default_unit_amount:, first_dimension:, matrix_values:, second_dimension: nil, threshold_discount_groups: nil)
1258
+ # Configuration for matrix_with_threshold_discounts pricing
1259
+ #
1260
+ # @param default_unit_amount [String] Unit price used for usage that does not match any defined matrix cell.
1261
+ #
1262
+ # @param first_dimension [String] First matrix dimension key.
1263
+ #
1264
+ # @param matrix_values [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>] Per-cell unit prices.
1265
+ #
1266
+ # @param second_dimension [String, nil] Optional second matrix dimension key.
1267
+ #
1268
+ # @param threshold_discount_groups [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>]
1269
+
1270
+ class MatrixValue < Orb::Internal::Type::BaseModel
1271
+ # @!attribute first_dimension_value
1023
1272
  #
1024
1273
  # @return [String]
1025
- required :tier_lower_bound, String
1274
+ required :first_dimension_value, String
1026
1275
 
1027
1276
  # @!attribute unit_amount
1028
- # Amount per unit
1029
1277
  #
1030
1278
  # @return [String]
1031
1279
  required :unit_amount, String
1032
1280
 
1033
- # @!method initialize(tier_lower_bound:, unit_amount:)
1034
- # Configuration for a single tiered with proration tier
1281
+ # @!attribute second_dimension_value
1035
1282
  #
1036
- # @param tier_lower_bound [String] Inclusive tier starting value
1283
+ # @return [String, nil]
1284
+ optional :second_dimension_value, String, nil?: true
1285
+
1286
+ # @!method initialize(first_dimension_value:, unit_amount:, second_dimension_value: nil)
1287
+ # @param first_dimension_value [String]
1288
+ # @param unit_amount [String]
1289
+ # @param second_dimension_value [String, nil]
1290
+ end
1291
+
1292
+ class ThresholdDiscountGroup < Orb::Internal::Type::BaseModel
1293
+ # @!attribute above_threshold_discount_percentage
1294
+ # Discount rate applied to spend above the threshold.
1037
1295
  #
1038
- # @param unit_amount [String] Amount per unit
1296
+ # @return [String]
1297
+ required :above_threshold_discount_percentage, String
1298
+
1299
+ # @!attribute below_threshold_discount_percentage
1300
+ # Discount rate applied to spend at or below the threshold. Set to 0 for no
1301
+ # baseline discount.
1302
+ #
1303
+ # @return [String]
1304
+ required :below_threshold_discount_percentage, String
1305
+
1306
+ # @!attribute cell_coordinates
1307
+ # Semicolon-separated list of matrix cell coordinates targeted by this group. Each
1308
+ # coordinate is `first,second` when the matrix has two dimensions, or just `first`
1309
+ # for a single-dimension matrix. Example: `blue,circle;green,triangle`.
1310
+ #
1311
+ # @return [String]
1312
+ required :cell_coordinates, String
1313
+
1314
+ # @!attribute threshold_amount
1315
+ #
1316
+ # @return [String]
1317
+ required :threshold_amount, String
1318
+
1319
+ # @!attribute description
1320
+ #
1321
+ # @return [String, nil]
1322
+ optional :description, String, nil?: true
1323
+
1324
+ # @!method initialize(above_threshold_discount_percentage:, below_threshold_discount_percentage:, cell_coordinates:, threshold_amount:, description: nil)
1325
+ # Some parameter documentations has been truncated, see
1326
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup}
1327
+ # for more details.
1328
+ #
1329
+ # @param above_threshold_discount_percentage [String] Discount rate applied to spend above the threshold.
1330
+ #
1331
+ # @param below_threshold_discount_percentage [String] Discount rate applied to spend at or below the threshold. Set to 0 for no baseli
1332
+ #
1333
+ # @param cell_coordinates [String] Semicolon-separated list of matrix cell coordinates targeted by this group. Each
1334
+ #
1335
+ # @param threshold_amount [String]
1336
+ #
1337
+ # @param description [String, nil]
1039
1338
  end
1040
1339
  end
1041
1340
  end
1042
1341
 
1043
- class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
1342
+ class TieredWithProration < Orb::Internal::Type::BaseModel
1044
1343
  # @!attribute cadence
1045
1344
  # The cadence to bill for this price on.
1046
1345
  #
1047
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence]
1346
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence]
1048
1347
  required :cadence,
1049
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence }
1050
-
1051
- # @!attribute grouped_with_min_max_thresholds_config
1052
- # Configuration for grouped_with_min_max_thresholds pricing
1053
- #
1054
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig]
1055
- required :grouped_with_min_max_thresholds_config,
1056
- -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig }
1348
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence }
1057
1349
 
1058
1350
  # @!attribute item_id
1059
1351
  # The id of the item the price will be associated with.
@@ -1064,8 +1356,8 @@ module Orb
1064
1356
  # @!attribute model_type
1065
1357
  # The pricing model type
1066
1358
  #
1067
- # @return [Symbol, :grouped_with_min_max_thresholds]
1068
- required :model_type, const: :grouped_with_min_max_thresholds
1359
+ # @return [Symbol, :tiered_with_proration]
1360
+ required :model_type, const: :tiered_with_proration
1069
1361
 
1070
1362
  # @!attribute name
1071
1363
  # The name of the price.
@@ -1073,6 +1365,13 @@ module Orb
1073
1365
  # @return [String]
1074
1366
  required :name, String
1075
1367
 
1368
+ # @!attribute tiered_with_proration_config
1369
+ # Configuration for tiered_with_proration pricing
1370
+ #
1371
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig]
1372
+ required :tiered_with_proration_config,
1373
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig }
1374
+
1076
1375
  # @!attribute billable_metric_id
1077
1376
  # The id of the billable metric for the price. Only needed if the price is
1078
1377
  # usage-based.
@@ -1104,11 +1403,7 @@ module Orb
1104
1403
  # The configuration for the rate of the price currency to the invoicing currency.
1105
1404
  #
1106
1405
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1107
- optional :conversion_rate_config,
1108
- union: -> {
1109
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::ConversionRateConfig
1110
- },
1111
- nil?: true
1406
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1112
1407
 
1113
1408
  # @!attribute currency
1114
1409
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -1174,19 +1469,19 @@ module Orb
1174
1469
  # @return [String, nil]
1175
1470
  optional :reference_id, String, nil?: true
1176
1471
 
1177
- # @!method initialize(cadence:, grouped_with_min_max_thresholds_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :grouped_with_min_max_thresholds)
1472
+ # @!method initialize(cadence:, item_id:, name:, tiered_with_proration_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_with_proration)
1178
1473
  # Some parameter documentations has been truncated, see
1179
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds}
1474
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration}
1180
1475
  # for more details.
1181
1476
  #
1182
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence] The cadence to bill for this price on.
1183
- #
1184
- # @param grouped_with_min_max_thresholds_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig] Configuration for grouped_with_min_max_thresholds pricing
1477
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::Cadence] The cadence to bill for this price on.
1185
1478
  #
1186
1479
  # @param item_id [String] The id of the item the price will be associated with.
1187
1480
  #
1188
1481
  # @param name [String] The name of the price.
1189
1482
  #
1483
+ # @param tiered_with_proration_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig] Configuration for tiered_with_proration pricing
1484
+ #
1190
1485
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
1191
1486
  #
1192
1487
  # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
@@ -1215,11 +1510,11 @@ module Orb
1215
1510
  #
1216
1511
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
1217
1512
  #
1218
- # @param model_type [Symbol, :grouped_with_min_max_thresholds] The pricing model type
1513
+ # @param model_type [Symbol, :tiered_with_proration] The pricing model type
1219
1514
 
1220
1515
  # The cadence to bill for this price on.
1221
1516
  #
1222
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds#cadence
1517
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration#cadence
1223
1518
  module Cadence
1224
1519
  extend Orb::Internal::Type::Enum
1225
1520
 
@@ -1234,59 +1529,66 @@ module Orb
1234
1529
  # @return [Array<Symbol>]
1235
1530
  end
1236
1531
 
1237
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds#grouped_with_min_max_thresholds_config
1238
- class GroupedWithMinMaxThresholdsConfig < Orb::Internal::Type::BaseModel
1239
- # @!attribute grouping_key
1240
- # The event property used to group before applying thresholds
1532
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration#tiered_with_proration_config
1533
+ class TieredWithProrationConfig < Orb::Internal::Type::BaseModel
1534
+ # @!attribute tiers
1535
+ # Tiers for rating based on total usage quantities into the specified tier with
1536
+ # proration
1241
1537
  #
1242
- # @return [String]
1243
- required :grouping_key, String
1538
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>]
1539
+ required :tiers,
1540
+ -> do
1541
+ Orb::Internal::Type::ArrayOf[
1542
+ Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier
1543
+ ]
1544
+ end
1244
1545
 
1245
- # @!attribute maximum_charge
1246
- # The maximum amount to charge each group
1546
+ # @!method initialize(tiers:)
1547
+ # Some parameter documentations has been truncated, see
1548
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig}
1549
+ # for more details.
1247
1550
  #
1248
- # @return [String]
1249
- required :maximum_charge, String
1250
-
1251
- # @!attribute minimum_charge
1252
- # The minimum amount to charge each group, regardless of usage
1551
+ # Configuration for tiered_with_proration pricing
1253
1552
  #
1254
- # @return [String]
1255
- required :minimum_charge, String
1553
+ # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>] Tiers for rating based on total usage quantities into the specified tier with pr
1256
1554
 
1257
- # @!attribute per_unit_rate
1258
- # The base price charged per group
1259
- #
1260
- # @return [String]
1261
- required :per_unit_rate, String
1555
+ class Tier < Orb::Internal::Type::BaseModel
1556
+ # @!attribute tier_lower_bound
1557
+ # Inclusive tier starting value
1558
+ #
1559
+ # @return [String]
1560
+ required :tier_lower_bound, String
1262
1561
 
1263
- # @!method initialize(grouping_key:, maximum_charge:, minimum_charge:, per_unit_rate:)
1264
- # Configuration for grouped_with_min_max_thresholds pricing
1265
- #
1266
- # @param grouping_key [String] The event property used to group before applying thresholds
1267
- #
1268
- # @param maximum_charge [String] The maximum amount to charge each group
1269
- #
1270
- # @param minimum_charge [String] The minimum amount to charge each group, regardless of usage
1271
- #
1272
- # @param per_unit_rate [String] The base price charged per group
1562
+ # @!attribute unit_amount
1563
+ # Amount per unit
1564
+ #
1565
+ # @return [String]
1566
+ required :unit_amount, String
1567
+
1568
+ # @!method initialize(tier_lower_bound:, unit_amount:)
1569
+ # Configuration for a single tiered with proration tier
1570
+ #
1571
+ # @param tier_lower_bound [String] Inclusive tier starting value
1572
+ #
1573
+ # @param unit_amount [String] Amount per unit
1574
+ end
1273
1575
  end
1274
1576
  end
1275
1577
 
1276
- class CumulativeGroupedAllocation < Orb::Internal::Type::BaseModel
1578
+ class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
1277
1579
  # @!attribute cadence
1278
1580
  # The cadence to bill for this price on.
1279
1581
  #
1280
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence]
1582
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence]
1281
1583
  required :cadence,
1282
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence }
1584
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence }
1283
1585
 
1284
- # @!attribute cumulative_grouped_allocation_config
1285
- # Configuration for cumulative_grouped_allocation pricing
1586
+ # @!attribute grouped_with_min_max_thresholds_config
1587
+ # Configuration for grouped_with_min_max_thresholds pricing
1286
1588
  #
1287
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig]
1288
- required :cumulative_grouped_allocation_config,
1289
- -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig }
1589
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig]
1590
+ required :grouped_with_min_max_thresholds_config,
1591
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig }
1290
1592
 
1291
1593
  # @!attribute item_id
1292
1594
  # The id of the item the price will be associated with.
@@ -1297,8 +1599,8 @@ module Orb
1297
1599
  # @!attribute model_type
1298
1600
  # The pricing model type
1299
1601
  #
1300
- # @return [Symbol, :cumulative_grouped_allocation]
1301
- required :model_type, const: :cumulative_grouped_allocation
1602
+ # @return [Symbol, :grouped_with_min_max_thresholds]
1603
+ required :model_type, const: :grouped_with_min_max_thresholds
1302
1604
 
1303
1605
  # @!attribute name
1304
1606
  # The name of the price.
@@ -1337,11 +1639,7 @@ module Orb
1337
1639
  # The configuration for the rate of the price currency to the invoicing currency.
1338
1640
  #
1339
1641
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1340
- optional :conversion_rate_config,
1341
- union: -> {
1342
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::ConversionRateConfig
1343
- },
1344
- nil?: true
1642
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1345
1643
 
1346
1644
  # @!attribute currency
1347
1645
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -1407,14 +1705,14 @@ module Orb
1407
1705
  # @return [String, nil]
1408
1706
  optional :reference_id, String, nil?: true
1409
1707
 
1410
- # @!method initialize(cadence:, cumulative_grouped_allocation_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :cumulative_grouped_allocation)
1708
+ # @!method initialize(cadence:, grouped_with_min_max_thresholds_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :grouped_with_min_max_thresholds)
1411
1709
  # Some parameter documentations has been truncated, see
1412
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation}
1710
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds}
1413
1711
  # for more details.
1414
1712
  #
1415
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence] The cadence to bill for this price on.
1713
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::Cadence] The cadence to bill for this price on.
1416
1714
  #
1417
- # @param cumulative_grouped_allocation_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig] Configuration for cumulative_grouped_allocation pricing
1715
+ # @param grouped_with_min_max_thresholds_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig] Configuration for grouped_with_min_max_thresholds pricing
1418
1716
  #
1419
1717
  # @param item_id [String] The id of the item the price will be associated with.
1420
1718
  #
@@ -1448,11 +1746,11 @@ module Orb
1448
1746
  #
1449
1747
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
1450
1748
  #
1451
- # @param model_type [Symbol, :cumulative_grouped_allocation] The pricing model type
1749
+ # @param model_type [Symbol, :grouped_with_min_max_thresholds] The pricing model type
1452
1750
 
1453
1751
  # The cadence to bill for this price on.
1454
1752
  #
1455
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation#cadence
1753
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds#cadence
1456
1754
  module Cadence
1457
1755
  extend Orb::Internal::Type::Enum
1458
1756
 
@@ -1467,52 +1765,59 @@ module Orb
1467
1765
  # @return [Array<Symbol>]
1468
1766
  end
1469
1767
 
1470
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation#cumulative_grouped_allocation_config
1471
- class CumulativeGroupedAllocationConfig < Orb::Internal::Type::BaseModel
1472
- # @!attribute cumulative_allocation
1473
- # The overall allocation across all groups
1768
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds#grouped_with_min_max_thresholds_config
1769
+ class GroupedWithMinMaxThresholdsConfig < Orb::Internal::Type::BaseModel
1770
+ # @!attribute grouping_key
1771
+ # The event property used to group before applying thresholds
1474
1772
  #
1475
1773
  # @return [String]
1476
- required :cumulative_allocation, String
1774
+ required :grouping_key, String
1477
1775
 
1478
- # @!attribute group_allocation
1479
- # The allocation per individual group
1776
+ # @!attribute maximum_charge
1777
+ # The maximum amount to charge each group
1480
1778
  #
1481
1779
  # @return [String]
1482
- required :group_allocation, String
1780
+ required :maximum_charge, String
1483
1781
 
1484
- # @!attribute grouping_key
1485
- # The event property used to group usage before applying allocations
1782
+ # @!attribute minimum_charge
1783
+ # The minimum amount to charge each group, regardless of usage
1486
1784
  #
1487
1785
  # @return [String]
1488
- required :grouping_key, String
1786
+ required :minimum_charge, String
1489
1787
 
1490
- # @!attribute unit_amount
1491
- # The amount to charge for each unit outside of the allocation
1788
+ # @!attribute per_unit_rate
1789
+ # The base price charged per group
1492
1790
  #
1493
1791
  # @return [String]
1494
- required :unit_amount, String
1792
+ required :per_unit_rate, String
1495
1793
 
1496
- # @!method initialize(cumulative_allocation:, group_allocation:, grouping_key:, unit_amount:)
1497
- # Configuration for cumulative_grouped_allocation pricing
1794
+ # @!method initialize(grouping_key:, maximum_charge:, minimum_charge:, per_unit_rate:)
1795
+ # Configuration for grouped_with_min_max_thresholds pricing
1498
1796
  #
1499
- # @param cumulative_allocation [String] The overall allocation across all groups
1797
+ # @param grouping_key [String] The event property used to group before applying thresholds
1500
1798
  #
1501
- # @param group_allocation [String] The allocation per individual group
1799
+ # @param maximum_charge [String] The maximum amount to charge each group
1502
1800
  #
1503
- # @param grouping_key [String] The event property used to group usage before applying allocations
1801
+ # @param minimum_charge [String] The minimum amount to charge each group, regardless of usage
1504
1802
  #
1505
- # @param unit_amount [String] The amount to charge for each unit outside of the allocation
1803
+ # @param per_unit_rate [String] The base price charged per group
1506
1804
  end
1507
1805
  end
1508
1806
 
1509
- class Percent < Orb::Internal::Type::BaseModel
1807
+ class CumulativeGroupedAllocation < Orb::Internal::Type::BaseModel
1510
1808
  # @!attribute cadence
1511
1809
  # The cadence to bill for this price on.
1512
1810
  #
1513
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence]
1811
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence]
1514
1812
  required :cadence,
1515
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence }
1813
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence }
1814
+
1815
+ # @!attribute cumulative_grouped_allocation_config
1816
+ # Configuration for cumulative_grouped_allocation pricing
1817
+ #
1818
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig]
1819
+ required :cumulative_grouped_allocation_config,
1820
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig }
1516
1821
 
1517
1822
  # @!attribute item_id
1518
1823
  # The id of the item the price will be associated with.
@@ -1523,8 +1828,8 @@ module Orb
1523
1828
  # @!attribute model_type
1524
1829
  # The pricing model type
1525
1830
  #
1526
- # @return [Symbol, :percent]
1527
- required :model_type, const: :percent
1831
+ # @return [Symbol, :cumulative_grouped_allocation]
1832
+ required :model_type, const: :cumulative_grouped_allocation
1528
1833
 
1529
1834
  # @!attribute name
1530
1835
  # The name of the price.
@@ -1532,13 +1837,6 @@ module Orb
1532
1837
  # @return [String]
1533
1838
  required :name, String
1534
1839
 
1535
- # @!attribute percent_config
1536
- # Configuration for percent pricing
1537
- #
1538
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig]
1539
- required :percent_config,
1540
- -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig }
1541
-
1542
1840
  # @!attribute billable_metric_id
1543
1841
  # The id of the billable metric for the price. Only needed if the price is
1544
1842
  # usage-based.
@@ -1570,11 +1868,7 @@ module Orb
1570
1868
  # The configuration for the rate of the price currency to the invoicing currency.
1571
1869
  #
1572
1870
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1573
- optional :conversion_rate_config,
1574
- union: -> {
1575
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::ConversionRateConfig
1576
- },
1577
- nil?: true
1871
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1578
1872
 
1579
1873
  # @!attribute currency
1580
1874
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -1640,19 +1934,19 @@ module Orb
1640
1934
  # @return [String, nil]
1641
1935
  optional :reference_id, String, nil?: true
1642
1936
 
1643
- # @!method initialize(cadence:, item_id:, name:, percent_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :percent)
1937
+ # @!method initialize(cadence:, cumulative_grouped_allocation_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :cumulative_grouped_allocation)
1644
1938
  # Some parameter documentations has been truncated, see
1645
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent}
1939
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation}
1646
1940
  # for more details.
1647
1941
  #
1648
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence] The cadence to bill for this price on.
1942
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::Cadence] The cadence to bill for this price on.
1943
+ #
1944
+ # @param cumulative_grouped_allocation_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig] Configuration for cumulative_grouped_allocation pricing
1649
1945
  #
1650
1946
  # @param item_id [String] The id of the item the price will be associated with.
1651
1947
  #
1652
1948
  # @param name [String] The name of the price.
1653
1949
  #
1654
- # @param percent_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig] Configuration for percent pricing
1655
- #
1656
1950
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
1657
1951
  #
1658
1952
  # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
@@ -1681,11 +1975,11 @@ module Orb
1681
1975
  #
1682
1976
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
1683
1977
  #
1684
- # @param model_type [Symbol, :percent] The pricing model type
1978
+ # @param model_type [Symbol, :cumulative_grouped_allocation] The pricing model type
1685
1979
 
1686
1980
  # The cadence to bill for this price on.
1687
1981
  #
1688
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent#cadence
1982
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation#cadence
1689
1983
  module Cadence
1690
1984
  extend Orb::Internal::Type::Enum
1691
1985
 
@@ -1700,35 +1994,59 @@ module Orb
1700
1994
  # @return [Array<Symbol>]
1701
1995
  end
1702
1996
 
1703
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent#percent_config
1704
- class PercentConfig < Orb::Internal::Type::BaseModel
1705
- # @!attribute percent
1706
- # What percent of the component subtotals to charge
1997
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation#cumulative_grouped_allocation_config
1998
+ class CumulativeGroupedAllocationConfig < Orb::Internal::Type::BaseModel
1999
+ # @!attribute cumulative_allocation
2000
+ # The overall allocation across all groups
1707
2001
  #
1708
- # @return [Float]
1709
- required :percent, Float
2002
+ # @return [String]
2003
+ required :cumulative_allocation, String
1710
2004
 
1711
- # @!method initialize(percent:)
1712
- # Configuration for percent pricing
2005
+ # @!attribute group_allocation
2006
+ # The allocation per individual group
2007
+ #
2008
+ # @return [String]
2009
+ required :group_allocation, String
2010
+
2011
+ # @!attribute grouping_key
2012
+ # The event property used to group usage before applying allocations
2013
+ #
2014
+ # @return [String]
2015
+ required :grouping_key, String
2016
+
2017
+ # @!attribute unit_amount
2018
+ # The amount to charge for each unit outside of the allocation
1713
2019
  #
1714
- # @param percent [Float] What percent of the component subtotals to charge
2020
+ # @return [String]
2021
+ required :unit_amount, String
2022
+
2023
+ # @!method initialize(cumulative_allocation:, group_allocation:, grouping_key:, unit_amount:)
2024
+ # Configuration for cumulative_grouped_allocation pricing
2025
+ #
2026
+ # @param cumulative_allocation [String] The overall allocation across all groups
2027
+ #
2028
+ # @param group_allocation [String] The allocation per individual group
2029
+ #
2030
+ # @param grouping_key [String] The event property used to group usage before applying allocations
2031
+ #
2032
+ # @param unit_amount [String] The amount to charge for each unit outside of the allocation
1715
2033
  end
1716
2034
  end
1717
2035
 
1718
- class EventOutput < Orb::Internal::Type::BaseModel
2036
+ class DailyCreditAllowance < Orb::Internal::Type::BaseModel
1719
2037
  # @!attribute cadence
1720
2038
  # The cadence to bill for this price on.
1721
2039
  #
1722
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence]
2040
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::Cadence]
1723
2041
  required :cadence,
1724
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence }
2042
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::Cadence }
1725
2043
 
1726
- # @!attribute event_output_config
1727
- # Configuration for event_output pricing
2044
+ # @!attribute daily_credit_allowance_config
2045
+ # Configuration for daily_credit_allowance pricing
1728
2046
  #
1729
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig]
1730
- required :event_output_config,
1731
- -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig }
2047
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig]
2048
+ required :daily_credit_allowance_config,
2049
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig }
1732
2050
 
1733
2051
  # @!attribute item_id
1734
2052
  # The id of the item the price will be associated with.
@@ -1739,8 +2057,8 @@ module Orb
1739
2057
  # @!attribute model_type
1740
2058
  # The pricing model type
1741
2059
  #
1742
- # @return [Symbol, :event_output]
1743
- required :model_type, const: :event_output
2060
+ # @return [Symbol, :daily_credit_allowance]
2061
+ required :model_type, const: :daily_credit_allowance
1744
2062
 
1745
2063
  # @!attribute name
1746
2064
  # The name of the price.
@@ -1779,11 +2097,7 @@ module Orb
1779
2097
  # The configuration for the rate of the price currency to the invoicing currency.
1780
2098
  #
1781
2099
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1782
- optional :conversion_rate_config,
1783
- union: -> {
1784
- Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::ConversionRateConfig
1785
- },
1786
- nil?: true
2100
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1787
2101
 
1788
2102
  # @!attribute currency
1789
2103
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -1849,14 +2163,14 @@ module Orb
1849
2163
  # @return [String, nil]
1850
2164
  optional :reference_id, String, nil?: true
1851
2165
 
1852
- # @!method initialize(cadence:, event_output_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :event_output)
2166
+ # @!method initialize(cadence:, daily_credit_allowance_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :daily_credit_allowance)
1853
2167
  # Some parameter documentations has been truncated, see
1854
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput}
2168
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance}
1855
2169
  # for more details.
1856
2170
  #
1857
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence] The cadence to bill for this price on.
2171
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::Cadence] The cadence to bill for this price on.
1858
2172
  #
1859
- # @param event_output_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig] Configuration for event_output pricing
2173
+ # @param daily_credit_allowance_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig] Configuration for daily_credit_allowance pricing
1860
2174
  #
1861
2175
  # @param item_id [String] The id of the item the price will be associated with.
1862
2176
  #
@@ -1890,11 +2204,11 @@ module Orb
1890
2204
  #
1891
2205
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
1892
2206
  #
1893
- # @param model_type [Symbol, :event_output] The pricing model type
2207
+ # @param model_type [Symbol, :daily_credit_allowance] The pricing model type
1894
2208
 
1895
2209
  # The cadence to bill for this price on.
1896
2210
  #
1897
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput#cadence
2211
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance#cadence
1898
2212
  module Cadence
1899
2213
  extend Orb::Internal::Type::Enum
1900
2214
 
@@ -1909,326 +2223,2124 @@ module Orb
1909
2223
  # @return [Array<Symbol>]
1910
2224
  end
1911
2225
 
1912
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput#event_output_config
1913
- class EventOutputConfig < Orb::Internal::Type::BaseModel
1914
- # @!attribute unit_rating_key
1915
- # The key in the event data to extract the unit rate from.
2226
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance#daily_credit_allowance_config
2227
+ class DailyCreditAllowanceConfig < Orb::Internal::Type::BaseModel
2228
+ # @!attribute daily_allowance
2229
+ # Credits granted per day. Lose-it-or-use-it; does not roll over.
1916
2230
  #
1917
2231
  # @return [String]
1918
- required :unit_rating_key, String
2232
+ required :daily_allowance, String
1919
2233
 
1920
- # @!attribute default_unit_rate
1921
- # If provided, this amount will be used as the unit rate when an event does not
1922
- # have a value for the `unit_rating_key`. If not provided, events missing a unit
1923
- # rate will be ignored.
2234
+ # @!attribute default_unit_amount
2235
+ # Default per-unit credit rate for any usage not bucketed into a specified
2236
+ # matrix_value
1924
2237
  #
1925
- # @return [String, nil]
1926
- optional :default_unit_rate, String, nil?: true
2238
+ # @return [String]
2239
+ required :default_unit_amount, String
1927
2240
 
1928
- # @!attribute grouping_key
1929
- # An optional key in the event data to group by (e.g., event ID). All events will
1930
- # also be grouped by their unit rate.
2241
+ # @!attribute dimensions
2242
+ # One or two event property values to evaluate matrix groups by
1931
2243
  #
1932
- # @return [String, nil]
1933
- optional :grouping_key, String, nil?: true
2244
+ # @return [Array<String, nil>]
2245
+ required :dimensions, Orb::Internal::Type::ArrayOf[String, nil?: true]
1934
2246
 
1935
- # @!method initialize(unit_rating_key:, default_unit_rate: nil, grouping_key: nil)
2247
+ # @!attribute event_day_property
2248
+ # Event property whose value identifies the day bucket the event belongs to (e.g.
2249
+ # 'event_day' set to an ISO date string in the customer's timezone). The allowance
2250
+ # resets per distinct value of this property.
2251
+ #
2252
+ # @return [String]
2253
+ required :event_day_property, String
2254
+
2255
+ # @!attribute matrix_values
2256
+ # Per-dimension credit rates
2257
+ #
2258
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>]
2259
+ required :matrix_values,
2260
+ -> do
2261
+ Orb::Internal::Type::ArrayOf[
2262
+ Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue
2263
+ ]
2264
+ end
2265
+
2266
+ # @!method initialize(daily_allowance:, default_unit_amount:, dimensions:, event_day_property:, matrix_values:)
1936
2267
  # Some parameter documentations has been truncated, see
1937
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig}
2268
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig}
1938
2269
  # for more details.
1939
2270
  #
1940
- # Configuration for event_output pricing
2271
+ # Configuration for daily_credit_allowance pricing
1941
2272
  #
1942
- # @param unit_rating_key [String] The key in the event data to extract the unit rate from.
2273
+ # @param daily_allowance [String] Credits granted per day. Lose-it-or-use-it; does not roll over.
1943
2274
  #
1944
- # @param default_unit_rate [String, nil] If provided, this amount will be used as the unit rate when an event does not ha
2275
+ # @param default_unit_amount [String] Default per-unit credit rate for any usage not bucketed into a specified
2276
+ # matrix\_
1945
2277
  #
1946
- # @param grouping_key [String, nil] An optional key in the event data to group by (e.g., event ID). All events will
1947
- end
1948
- end
2278
+ # @param dimensions [Array<String, nil>] One or two event property values to evaluate matrix groups by
2279
+ #
2280
+ # @param event_day_property [String] Event property whose value identifies the day bucket the event belongs to (e.g.
2281
+ #
2282
+ # @param matrix_values [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>] Per-dimension credit rates
1949
2283
 
1950
- # @!method self.variants
1951
- # @return [Array(Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput)]
1952
- end
1953
- end
2284
+ class MatrixValue < Orb::Internal::Type::BaseModel
2285
+ # @!attribute dimension_values
2286
+ # One or two matrix keys to filter usage to this value by. For example, ["model"]
2287
+ # could be used to apply a different credit rate to each AI model.
2288
+ #
2289
+ # @return [Array<String, nil>]
2290
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String, nil?: true]
1954
2291
 
1955
- # Reset billing periods to be aligned with the plan change's effective date or
1956
- # start of the month. Defaults to `unchanged` which keeps subscription's existing
1957
- # billing cycle alignment.
1958
- module BillingCycleAlignment
1959
- extend Orb::Internal::Type::Enum
2292
+ # @!attribute unit_amount
2293
+ # Credits charged per unit of usage matching the specified dimension_values
2294
+ #
2295
+ # @return [String]
2296
+ required :unit_amount, String
2297
+
2298
+ # @!method initialize(dimension_values:, unit_amount:)
2299
+ # Some parameter documentations has been truncated, see
2300
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue}
2301
+ # for more details.
2302
+ #
2303
+ # Per-dimension credit price for the daily credit allowance model.
2304
+ #
2305
+ # @param dimension_values [Array<String, nil>] One or two matrix keys to filter usage to this value by. For example, ["model"]
2306
+ #
2307
+ # @param unit_amount [String] Credits charged per unit of usage matching the specified dimension_values
2308
+ end
2309
+ end
2310
+ end
2311
+
2312
+ class MeteredAllowance < Orb::Internal::Type::BaseModel
2313
+ # @!attribute cadence
2314
+ # The cadence to bill for this price on.
2315
+ #
2316
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::Cadence]
2317
+ required :cadence,
2318
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::Cadence }
2319
+
2320
+ # @!attribute item_id
2321
+ # The id of the item the price will be associated with.
2322
+ #
2323
+ # @return [String]
2324
+ required :item_id, String
2325
+
2326
+ # @!attribute metered_allowance_config
2327
+ # Configuration for metered_allowance pricing
2328
+ #
2329
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::MeteredAllowanceConfig]
2330
+ required :metered_allowance_config,
2331
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::MeteredAllowanceConfig }
2332
+
2333
+ # @!attribute model_type
2334
+ # The pricing model type
2335
+ #
2336
+ # @return [Symbol, :metered_allowance]
2337
+ required :model_type, const: :metered_allowance
2338
+
2339
+ # @!attribute name
2340
+ # The name of the price.
2341
+ #
2342
+ # @return [String]
2343
+ required :name, String
2344
+
2345
+ # @!attribute billable_metric_id
2346
+ # The id of the billable metric for the price. Only needed if the price is
2347
+ # usage-based.
2348
+ #
2349
+ # @return [String, nil]
2350
+ optional :billable_metric_id, String, nil?: true
2351
+
2352
+ # @!attribute billed_in_advance
2353
+ # If the Price represents a fixed cost, the price will be billed in-advance if
2354
+ # this is true, and in-arrears if this is false.
2355
+ #
2356
+ # @return [Boolean, nil]
2357
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
2358
+
2359
+ # @!attribute billing_cycle_configuration
2360
+ # For custom cadence: specifies the duration of the billing period in days or
2361
+ # months.
2362
+ #
2363
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2364
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2365
+
2366
+ # @!attribute conversion_rate
2367
+ # The per unit conversion rate of the price currency to the invoicing currency.
2368
+ #
2369
+ # @return [Float, nil]
2370
+ optional :conversion_rate, Float, nil?: true
2371
+
2372
+ # @!attribute conversion_rate_config
2373
+ # The configuration for the rate of the price currency to the invoicing currency.
2374
+ #
2375
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2376
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2377
+
2378
+ # @!attribute currency
2379
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
2380
+ # price is billed.
2381
+ #
2382
+ # @return [String, nil]
2383
+ optional :currency, String, nil?: true
2384
+
2385
+ # @!attribute dimensional_price_configuration
2386
+ # For dimensional price: specifies a price group and dimension values
2387
+ #
2388
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
2389
+ optional :dimensional_price_configuration,
2390
+ -> {
2391
+ Orb::NewDimensionalPriceConfiguration
2392
+ },
2393
+ nil?: true
2394
+
2395
+ # @!attribute external_price_id
2396
+ # An alias for the price.
2397
+ #
2398
+ # @return [String, nil]
2399
+ optional :external_price_id, String, nil?: true
2400
+
2401
+ # @!attribute fixed_price_quantity
2402
+ # If the Price represents a fixed cost, this represents the quantity of units
2403
+ # applied.
2404
+ #
2405
+ # @return [Float, nil]
2406
+ optional :fixed_price_quantity, Float, nil?: true
2407
+
2408
+ # @!attribute invoice_grouping_key
2409
+ # The property used to group this price on an invoice
2410
+ #
2411
+ # @return [String, nil]
2412
+ optional :invoice_grouping_key, String, nil?: true
2413
+
2414
+ # @!attribute invoicing_cycle_configuration
2415
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
2416
+ # If unspecified, a single invoice is produced per billing cycle.
2417
+ #
2418
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2419
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2420
+
2421
+ # @!attribute license_type_id
2422
+ # The ID of the license type to associate with this price.
2423
+ #
2424
+ # @return [String, nil]
2425
+ optional :license_type_id, String, nil?: true
2426
+
2427
+ # @!attribute metadata
2428
+ # User-specified key/value pairs for the resource. Individual keys can be removed
2429
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
2430
+ # by setting `metadata` to `null`.
2431
+ #
2432
+ # @return [Hash{Symbol=>String, nil}, nil]
2433
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
2434
+
2435
+ # @!attribute reference_id
2436
+ # A transient ID that can be used to reference this price when adding adjustments
2437
+ # in the same API call.
2438
+ #
2439
+ # @return [String, nil]
2440
+ optional :reference_id, String, nil?: true
2441
+
2442
+ # @!method initialize(cadence:, item_id:, metered_allowance_config:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :metered_allowance)
2443
+ # Some parameter documentations has been truncated, see
2444
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance}
2445
+ # for more details.
2446
+ #
2447
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::Cadence] The cadence to bill for this price on.
2448
+ #
2449
+ # @param item_id [String] The id of the item the price will be associated with.
2450
+ #
2451
+ # @param metered_allowance_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::MeteredAllowanceConfig] Configuration for metered_allowance pricing
2452
+ #
2453
+ # @param name [String] The name of the price.
2454
+ #
2455
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
2456
+ #
2457
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
2458
+ #
2459
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
2460
+ #
2461
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
2462
+ #
2463
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
2464
+ #
2465
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
2466
+ #
2467
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
2468
+ #
2469
+ # @param external_price_id [String, nil] An alias for the price.
2470
+ #
2471
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
2472
+ #
2473
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
2474
+ #
2475
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
2476
+ #
2477
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
2478
+ #
2479
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
2480
+ #
2481
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2482
+ #
2483
+ # @param model_type [Symbol, :metered_allowance] The pricing model type
2484
+
2485
+ # The cadence to bill for this price on.
2486
+ #
2487
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance#cadence
2488
+ module Cadence
2489
+ extend Orb::Internal::Type::Enum
2490
+
2491
+ ANNUAL = :annual
2492
+ SEMI_ANNUAL = :semi_annual
2493
+ MONTHLY = :monthly
2494
+ QUARTERLY = :quarterly
2495
+ ONE_TIME = :one_time
2496
+ CUSTOM = :custom
2497
+
2498
+ # @!method self.values
2499
+ # @return [Array<Symbol>]
2500
+ end
2501
+
2502
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance#metered_allowance_config
2503
+ class MeteredAllowanceConfig < Orb::Internal::Type::BaseModel
2504
+ # @!attribute allowance_grouping_value
2505
+ # The grouping_key value whose summed quantity represents the allowance for this
2506
+ # period (e.g. 'storage_snapshot' emitting 3 × avg storage). Capped at consumption
2507
+ # — credit can never exceed actual usage.
2508
+ #
2509
+ # @return [String]
2510
+ required :allowance_grouping_value, String
2511
+
2512
+ # @!attribute consumption_grouping_value
2513
+ # The grouping_key value whose summed quantity represents consumption (e.g.
2514
+ # 'download'). Charged at unit_amount.
2515
+ #
2516
+ # @return [String]
2517
+ required :consumption_grouping_value, String
2518
+
2519
+ # @!attribute grouping_key
2520
+ # Event property used to partition the metric into consumption and allowance
2521
+ # quantities (e.g. 'event_name'). The metric is queried with this key and the two
2522
+ # values below select which partition is which.
2523
+ #
2524
+ # @return [String]
2525
+ required :grouping_key, String
2526
+
2527
+ # @!attribute unit_amount
2528
+ # Per-unit price applied to gross consumption and to the allowance credit.
2529
+ #
2530
+ # @return [String]
2531
+ required :unit_amount, String
2532
+
2533
+ # @!attribute allowance_display_name
2534
+ # Sub-line label for the credit row (e.g. 'Up to 3x free egress').
2535
+ #
2536
+ # @return [String, nil]
2537
+ optional :allowance_display_name, String
2538
+
2539
+ # @!attribute consumption_display_name
2540
+ # Sub-line label for the gross consumption row (e.g. 'bytes gotten').
2541
+ #
2542
+ # @return [String, nil]
2543
+ optional :consumption_display_name, String
2544
+
2545
+ # @!method initialize(allowance_grouping_value:, consumption_grouping_value:, grouping_key:, unit_amount:, allowance_display_name: nil, consumption_display_name: nil)
2546
+ # Some parameter documentations has been truncated, see
2547
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance::MeteredAllowanceConfig}
2548
+ # for more details.
2549
+ #
2550
+ # Configuration for metered_allowance pricing
2551
+ #
2552
+ # @param allowance_grouping_value [String] The grouping_key value whose summed quantity represents the allowance for this p
2553
+ #
2554
+ # @param consumption_grouping_value [String] The grouping_key value whose summed quantity represents consumption (e.g. 'downl
2555
+ #
2556
+ # @param grouping_key [String] Event property used to partition the metric into consumption and allowance quant
2557
+ #
2558
+ # @param unit_amount [String] Per-unit price applied to gross consumption and to the allowance credit.
2559
+ #
2560
+ # @param allowance_display_name [String] Sub-line label for the credit row (e.g. 'Up to 3x free egress').
2561
+ #
2562
+ # @param consumption_display_name [String] Sub-line label for the gross consumption row (e.g. 'bytes gotten').
2563
+ end
2564
+ end
2565
+
2566
+ class Percent < Orb::Internal::Type::BaseModel
2567
+ # @!attribute cadence
2568
+ # The cadence to bill for this price on.
2569
+ #
2570
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence]
2571
+ required :cadence,
2572
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence }
2573
+
2574
+ # @!attribute item_id
2575
+ # The id of the item the price will be associated with.
2576
+ #
2577
+ # @return [String]
2578
+ required :item_id, String
2579
+
2580
+ # @!attribute model_type
2581
+ # The pricing model type
2582
+ #
2583
+ # @return [Symbol, :percent]
2584
+ required :model_type, const: :percent
2585
+
2586
+ # @!attribute name
2587
+ # The name of the price.
2588
+ #
2589
+ # @return [String]
2590
+ required :name, String
2591
+
2592
+ # @!attribute percent_config
2593
+ # Configuration for percent pricing
2594
+ #
2595
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig]
2596
+ required :percent_config,
2597
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig }
2598
+
2599
+ # @!attribute billable_metric_id
2600
+ # The id of the billable metric for the price. Only needed if the price is
2601
+ # usage-based.
2602
+ #
2603
+ # @return [String, nil]
2604
+ optional :billable_metric_id, String, nil?: true
2605
+
2606
+ # @!attribute billed_in_advance
2607
+ # If the Price represents a fixed cost, the price will be billed in-advance if
2608
+ # this is true, and in-arrears if this is false.
2609
+ #
2610
+ # @return [Boolean, nil]
2611
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
2612
+
2613
+ # @!attribute billing_cycle_configuration
2614
+ # For custom cadence: specifies the duration of the billing period in days or
2615
+ # months.
2616
+ #
2617
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2618
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2619
+
2620
+ # @!attribute conversion_rate
2621
+ # The per unit conversion rate of the price currency to the invoicing currency.
2622
+ #
2623
+ # @return [Float, nil]
2624
+ optional :conversion_rate, Float, nil?: true
2625
+
2626
+ # @!attribute conversion_rate_config
2627
+ # The configuration for the rate of the price currency to the invoicing currency.
2628
+ #
2629
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2630
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2631
+
2632
+ # @!attribute currency
2633
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
2634
+ # price is billed.
2635
+ #
2636
+ # @return [String, nil]
2637
+ optional :currency, String, nil?: true
2638
+
2639
+ # @!attribute dimensional_price_configuration
2640
+ # For dimensional price: specifies a price group and dimension values
2641
+ #
2642
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
2643
+ optional :dimensional_price_configuration,
2644
+ -> {
2645
+ Orb::NewDimensionalPriceConfiguration
2646
+ },
2647
+ nil?: true
2648
+
2649
+ # @!attribute external_price_id
2650
+ # An alias for the price.
2651
+ #
2652
+ # @return [String, nil]
2653
+ optional :external_price_id, String, nil?: true
2654
+
2655
+ # @!attribute fixed_price_quantity
2656
+ # If the Price represents a fixed cost, this represents the quantity of units
2657
+ # applied.
2658
+ #
2659
+ # @return [Float, nil]
2660
+ optional :fixed_price_quantity, Float, nil?: true
2661
+
2662
+ # @!attribute invoice_grouping_key
2663
+ # The property used to group this price on an invoice
2664
+ #
2665
+ # @return [String, nil]
2666
+ optional :invoice_grouping_key, String, nil?: true
2667
+
2668
+ # @!attribute invoicing_cycle_configuration
2669
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
2670
+ # If unspecified, a single invoice is produced per billing cycle.
2671
+ #
2672
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2673
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2674
+
2675
+ # @!attribute license_type_id
2676
+ # The ID of the license type to associate with this price.
2677
+ #
2678
+ # @return [String, nil]
2679
+ optional :license_type_id, String, nil?: true
2680
+
2681
+ # @!attribute metadata
2682
+ # User-specified key/value pairs for the resource. Individual keys can be removed
2683
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
2684
+ # by setting `metadata` to `null`.
2685
+ #
2686
+ # @return [Hash{Symbol=>String, nil}, nil]
2687
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
2688
+
2689
+ # @!attribute reference_id
2690
+ # A transient ID that can be used to reference this price when adding adjustments
2691
+ # in the same API call.
2692
+ #
2693
+ # @return [String, nil]
2694
+ optional :reference_id, String, nil?: true
2695
+
2696
+ # @!method initialize(cadence:, item_id:, name:, percent_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :percent)
2697
+ # Some parameter documentations has been truncated, see
2698
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent}
2699
+ # for more details.
2700
+ #
2701
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::Cadence] The cadence to bill for this price on.
2702
+ #
2703
+ # @param item_id [String] The id of the item the price will be associated with.
2704
+ #
2705
+ # @param name [String] The name of the price.
2706
+ #
2707
+ # @param percent_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig] Configuration for percent pricing
2708
+ #
2709
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
2710
+ #
2711
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
2712
+ #
2713
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
2714
+ #
2715
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
2716
+ #
2717
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
2718
+ #
2719
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
2720
+ #
2721
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
2722
+ #
2723
+ # @param external_price_id [String, nil] An alias for the price.
2724
+ #
2725
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
2726
+ #
2727
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
2728
+ #
2729
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
2730
+ #
2731
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
2732
+ #
2733
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
2734
+ #
2735
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2736
+ #
2737
+ # @param model_type [Symbol, :percent] The pricing model type
2738
+
2739
+ # The cadence to bill for this price on.
2740
+ #
2741
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent#cadence
2742
+ module Cadence
2743
+ extend Orb::Internal::Type::Enum
2744
+
2745
+ ANNUAL = :annual
2746
+ SEMI_ANNUAL = :semi_annual
2747
+ MONTHLY = :monthly
2748
+ QUARTERLY = :quarterly
2749
+ ONE_TIME = :one_time
2750
+ CUSTOM = :custom
2751
+
2752
+ # @!method self.values
2753
+ # @return [Array<Symbol>]
2754
+ end
2755
+
2756
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent#percent_config
2757
+ class PercentConfig < Orb::Internal::Type::BaseModel
2758
+ # @!attribute percent
2759
+ # Fraction of the component subtotals to charge (0 < percent <= 1).
2760
+ #
2761
+ # @return [Float]
2762
+ required :percent, Float
2763
+
2764
+ # @!attribute maximum_amount
2765
+ # Maximum amount to charge. If unset, the fee has no upper bound.
2766
+ #
2767
+ # @return [String, nil]
2768
+ optional :maximum_amount, String, nil?: true
2769
+
2770
+ # @!attribute minimum_amount
2771
+ # Minimum amount to charge. If unset, the fee is bounded below by 0.
2772
+ #
2773
+ # @return [String, nil]
2774
+ optional :minimum_amount, String, nil?: true
2775
+
2776
+ # @!attribute prorated
2777
+ # If true, the minimum_amount is prorated based on the service period. The
2778
+ # maximum_amount is an absolute cap (never prorated), and the percent applied to
2779
+ # upstream subtotals is never prorated either.
2780
+ #
2781
+ # @return [Boolean, nil]
2782
+ optional :prorated, Orb::Internal::Type::Boolean
2783
+
2784
+ # @!method initialize(percent:, maximum_amount: nil, minimum_amount: nil, prorated: nil)
2785
+ # Some parameter documentations has been truncated, see
2786
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent::PercentConfig}
2787
+ # for more details.
2788
+ #
2789
+ # Configuration for percent pricing
2790
+ #
2791
+ # @param percent [Float] Fraction of the component subtotals to charge (0 < percent <= 1).
2792
+ #
2793
+ # @param maximum_amount [String, nil] Maximum amount to charge. If unset, the fee has no upper bound.
2794
+ #
2795
+ # @param minimum_amount [String, nil] Minimum amount to charge. If unset, the fee is bounded below by 0.
2796
+ #
2797
+ # @param prorated [Boolean] If true, the minimum_amount is prorated based on the service period. The maximum
2798
+ end
2799
+ end
2800
+
2801
+ class EventOutput < Orb::Internal::Type::BaseModel
2802
+ # @!attribute cadence
2803
+ # The cadence to bill for this price on.
2804
+ #
2805
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence]
2806
+ required :cadence,
2807
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence }
2808
+
2809
+ # @!attribute event_output_config
2810
+ # Configuration for event_output pricing
2811
+ #
2812
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig]
2813
+ required :event_output_config,
2814
+ -> { Orb::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig }
2815
+
2816
+ # @!attribute item_id
2817
+ # The id of the item the price will be associated with.
2818
+ #
2819
+ # @return [String]
2820
+ required :item_id, String
2821
+
2822
+ # @!attribute model_type
2823
+ # The pricing model type
2824
+ #
2825
+ # @return [Symbol, :event_output]
2826
+ required :model_type, const: :event_output
2827
+
2828
+ # @!attribute name
2829
+ # The name of the price.
2830
+ #
2831
+ # @return [String]
2832
+ required :name, String
2833
+
2834
+ # @!attribute billable_metric_id
2835
+ # The id of the billable metric for the price. Only needed if the price is
2836
+ # usage-based.
2837
+ #
2838
+ # @return [String, nil]
2839
+ optional :billable_metric_id, String, nil?: true
2840
+
2841
+ # @!attribute billed_in_advance
2842
+ # If the Price represents a fixed cost, the price will be billed in-advance if
2843
+ # this is true, and in-arrears if this is false.
2844
+ #
2845
+ # @return [Boolean, nil]
2846
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
2847
+
2848
+ # @!attribute billing_cycle_configuration
2849
+ # For custom cadence: specifies the duration of the billing period in days or
2850
+ # months.
2851
+ #
2852
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2853
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2854
+
2855
+ # @!attribute conversion_rate
2856
+ # The per unit conversion rate of the price currency to the invoicing currency.
2857
+ #
2858
+ # @return [Float, nil]
2859
+ optional :conversion_rate, Float, nil?: true
2860
+
2861
+ # @!attribute conversion_rate_config
2862
+ # The configuration for the rate of the price currency to the invoicing currency.
2863
+ #
2864
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2865
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2866
+
2867
+ # @!attribute currency
2868
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
2869
+ # price is billed.
2870
+ #
2871
+ # @return [String, nil]
2872
+ optional :currency, String, nil?: true
2873
+
2874
+ # @!attribute dimensional_price_configuration
2875
+ # For dimensional price: specifies a price group and dimension values
2876
+ #
2877
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
2878
+ optional :dimensional_price_configuration,
2879
+ -> {
2880
+ Orb::NewDimensionalPriceConfiguration
2881
+ },
2882
+ nil?: true
2883
+
2884
+ # @!attribute external_price_id
2885
+ # An alias for the price.
2886
+ #
2887
+ # @return [String, nil]
2888
+ optional :external_price_id, String, nil?: true
2889
+
2890
+ # @!attribute fixed_price_quantity
2891
+ # If the Price represents a fixed cost, this represents the quantity of units
2892
+ # applied.
2893
+ #
2894
+ # @return [Float, nil]
2895
+ optional :fixed_price_quantity, Float, nil?: true
2896
+
2897
+ # @!attribute invoice_grouping_key
2898
+ # The property used to group this price on an invoice
2899
+ #
2900
+ # @return [String, nil]
2901
+ optional :invoice_grouping_key, String, nil?: true
2902
+
2903
+ # @!attribute invoicing_cycle_configuration
2904
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
2905
+ # If unspecified, a single invoice is produced per billing cycle.
2906
+ #
2907
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2908
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2909
+
2910
+ # @!attribute license_type_id
2911
+ # The ID of the license type to associate with this price.
2912
+ #
2913
+ # @return [String, nil]
2914
+ optional :license_type_id, String, nil?: true
2915
+
2916
+ # @!attribute metadata
2917
+ # User-specified key/value pairs for the resource. Individual keys can be removed
2918
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
2919
+ # by setting `metadata` to `null`.
2920
+ #
2921
+ # @return [Hash{Symbol=>String, nil}, nil]
2922
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
2923
+
2924
+ # @!attribute reference_id
2925
+ # A transient ID that can be used to reference this price when adding adjustments
2926
+ # in the same API call.
2927
+ #
2928
+ # @return [String, nil]
2929
+ optional :reference_id, String, nil?: true
2930
+
2931
+ # @!method initialize(cadence:, event_output_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :event_output)
2932
+ # Some parameter documentations has been truncated, see
2933
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput}
2934
+ # for more details.
2935
+ #
2936
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::Cadence] The cadence to bill for this price on.
2937
+ #
2938
+ # @param event_output_config [Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig] Configuration for event_output pricing
2939
+ #
2940
+ # @param item_id [String] The id of the item the price will be associated with.
2941
+ #
2942
+ # @param name [String] The name of the price.
2943
+ #
2944
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
2945
+ #
2946
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
2947
+ #
2948
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
2949
+ #
2950
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
2951
+ #
2952
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
2953
+ #
2954
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
2955
+ #
2956
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
2957
+ #
2958
+ # @param external_price_id [String, nil] An alias for the price.
2959
+ #
2960
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
2961
+ #
2962
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
2963
+ #
2964
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
2965
+ #
2966
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
2967
+ #
2968
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
2969
+ #
2970
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2971
+ #
2972
+ # @param model_type [Symbol, :event_output] The pricing model type
2973
+
2974
+ # The cadence to bill for this price on.
2975
+ #
2976
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput#cadence
2977
+ module Cadence
2978
+ extend Orb::Internal::Type::Enum
2979
+
2980
+ ANNUAL = :annual
2981
+ SEMI_ANNUAL = :semi_annual
2982
+ MONTHLY = :monthly
2983
+ QUARTERLY = :quarterly
2984
+ ONE_TIME = :one_time
2985
+ CUSTOM = :custom
2986
+
2987
+ # @!method self.values
2988
+ # @return [Array<Symbol>]
2989
+ end
2990
+
2991
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput#event_output_config
2992
+ class EventOutputConfig < Orb::Internal::Type::BaseModel
2993
+ # @!attribute unit_rating_key
2994
+ # The key in the event data to extract the unit rate from.
2995
+ #
2996
+ # @return [String]
2997
+ required :unit_rating_key, String
2998
+
2999
+ # @!attribute default_unit_rate
3000
+ # If provided, this amount will be used as the unit rate when an event does not
3001
+ # have a value for the `unit_rating_key`. If not provided, events missing a unit
3002
+ # rate will be ignored.
3003
+ #
3004
+ # @return [String, nil]
3005
+ optional :default_unit_rate, String, nil?: true
3006
+
3007
+ # @!attribute grouping_key
3008
+ # An optional key in the event data to group by (e.g., event ID). All events will
3009
+ # also be grouped by their unit rate.
3010
+ #
3011
+ # @return [String, nil]
3012
+ optional :grouping_key, String, nil?: true
3013
+
3014
+ # @!method initialize(unit_rating_key:, default_unit_rate: nil, grouping_key: nil)
3015
+ # Some parameter documentations has been truncated, see
3016
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput::EventOutputConfig}
3017
+ # for more details.
3018
+ #
3019
+ # Configuration for event_output pricing
3020
+ #
3021
+ # @param unit_rating_key [String] The key in the event data to extract the unit rate from.
3022
+ #
3023
+ # @param default_unit_rate [String, nil] If provided, this amount will be used as the unit rate when an event does not ha
3024
+ #
3025
+ # @param grouping_key [String, nil] An optional key in the event data to group by (e.g., event ID). All events will
3026
+ end
3027
+ end
3028
+
3029
+ # @!method self.variants
3030
+ # @return [Array(Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::AddPrice::Price::EventOutput)]
3031
+ end
3032
+ end
3033
+
3034
+ # Reset billing periods to be aligned with the plan change's effective date or
3035
+ # start of the month. Defaults to `unchanged` which keeps subscription's existing
3036
+ # billing cycle alignment.
3037
+ module BillingCycleAlignment
3038
+ extend Orb::Internal::Type::Enum
1960
3039
 
1961
3040
  UNCHANGED = :unchanged
1962
3041
  PLAN_CHANGE_DATE = :plan_change_date
1963
3042
  START_OF_MONTH = :start_of_month
1964
3043
 
1965
- # @!method self.values
1966
- # @return [Array<Symbol>]
1967
- end
3044
+ # @!method self.values
3045
+ # @return [Array<Symbol>]
3046
+ end
3047
+
3048
+ class RemoveAdjustment < Orb::Internal::Type::BaseModel
3049
+ # @!attribute adjustment_id
3050
+ # The id of the adjustment to remove on the subscription.
3051
+ #
3052
+ # @return [String]
3053
+ required :adjustment_id, String
3054
+
3055
+ # @!method initialize(adjustment_id:)
3056
+ # @param adjustment_id [String] The id of the adjustment to remove on the subscription.
3057
+ end
3058
+
3059
+ class RemovePrice < Orb::Internal::Type::BaseModel
3060
+ # @!attribute external_price_id
3061
+ # The external price id of the price to remove on the subscription.
3062
+ #
3063
+ # @return [String, nil]
3064
+ optional :external_price_id, String, nil?: true
3065
+
3066
+ # @!attribute price_id
3067
+ # The id of the price to remove on the subscription.
3068
+ #
3069
+ # @return [String, nil]
3070
+ optional :price_id, String, nil?: true
3071
+
3072
+ # @!method initialize(external_price_id: nil, price_id: nil)
3073
+ # @param external_price_id [String, nil] The external price id of the price to remove on the subscription.
3074
+ #
3075
+ # @param price_id [String, nil] The id of the price to remove on the subscription.
3076
+ end
3077
+
3078
+ class ReplaceAdjustment < Orb::Internal::Type::BaseModel
3079
+ # @!attribute adjustment
3080
+ # The definition of a new adjustment to create and add to the subscription.
3081
+ #
3082
+ # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount]
3083
+ required :adjustment,
3084
+ union: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment }
3085
+
3086
+ # @!attribute replaces_adjustment_id
3087
+ # The id of the adjustment on the plan to replace in the subscription.
3088
+ #
3089
+ # @return [String]
3090
+ required :replaces_adjustment_id, String
3091
+
3092
+ # @!method initialize(adjustment:, replaces_adjustment_id:)
3093
+ # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount] The definition of a new adjustment to create and add to the subscription.
3094
+ #
3095
+ # @param replaces_adjustment_id [String] The id of the adjustment on the plan to replace in the subscription.
3096
+
3097
+ # The definition of a new adjustment to create and add to the subscription.
3098
+ #
3099
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment#adjustment
3100
+ module Adjustment
3101
+ extend Orb::Internal::Type::Union
3102
+
3103
+ discriminator :adjustment_type
3104
+
3105
+ variant :percentage_discount, -> { Orb::NewPercentageDiscount }
3106
+
3107
+ variant :usage_discount, -> { Orb::NewUsageDiscount }
3108
+
3109
+ variant :amount_discount, -> { Orb::NewAmountDiscount }
3110
+
3111
+ variant :minimum, -> { Orb::NewMinimum }
3112
+
3113
+ variant :maximum, -> { Orb::NewMaximum }
3114
+
3115
+ variant :tiered_percentage_discount,
3116
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount }
3117
+
3118
+ class TieredPercentageDiscount < Orb::Internal::Type::BaseModel
3119
+ # @!attribute adjustment_type
3120
+ #
3121
+ # @return [Symbol, :tiered_percentage_discount]
3122
+ required :adjustment_type, const: :tiered_percentage_discount
3123
+
3124
+ # @!attribute tiers
3125
+ #
3126
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
3127
+ required :tiers,
3128
+ -> { Orb::Internal::Type::ArrayOf[Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Tier] }
3129
+
3130
+ # @!attribute applies_to_all
3131
+ # If set, the adjustment will apply to every price on the subscription.
3132
+ #
3133
+ # @return [Boolean, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil]
3134
+ optional :applies_to_all,
3135
+ enum: -> {
3136
+ Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll
3137
+ },
3138
+ nil?: true
3139
+
3140
+ # @!attribute applies_to_item_ids
3141
+ # The set of item IDs to which this adjustment applies.
3142
+ #
3143
+ # @return [Array<String>, nil]
3144
+ optional :applies_to_item_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
3145
+
3146
+ # @!attribute applies_to_price_ids
3147
+ # The set of price IDs to which this adjustment applies.
3148
+ #
3149
+ # @return [Array<String>, nil]
3150
+ optional :applies_to_price_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
3151
+
3152
+ # @!attribute currency
3153
+ # If set, only prices in the specified currency will have the adjustment applied.
3154
+ #
3155
+ # @return [String, nil]
3156
+ optional :currency, String, nil?: true
3157
+
3158
+ # @!attribute filters
3159
+ # A list of filters that determine which prices this adjustment will apply to.
3160
+ #
3161
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil]
3162
+ optional :filters,
3163
+ -> {
3164
+ Orb::Internal::Type::ArrayOf[Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter]
3165
+ },
3166
+ nil?: true
3167
+
3168
+ # @!attribute is_invoice_level
3169
+ # When false, this adjustment will be applied to a single price. Otherwise, it
3170
+ # will be applied at the invoice level, possibly to multiple prices.
3171
+ #
3172
+ # @return [Boolean, nil]
3173
+ optional :is_invoice_level, Orb::Internal::Type::Boolean
3174
+
3175
+ # @!attribute price_type
3176
+ # If set, only prices of the specified type will have the adjustment applied.
3177
+ #
3178
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil]
3179
+ optional :price_type,
3180
+ enum: -> {
3181
+ Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::PriceType
3182
+ },
3183
+ nil?: true
3184
+
3185
+ # @!method initialize(tiers:, applies_to_all: nil, applies_to_item_ids: nil, applies_to_price_ids: nil, currency: nil, filters: nil, is_invoice_level: nil, price_type: nil, adjustment_type: :tiered_percentage_discount)
3186
+ # Some parameter documentations has been truncated, see
3187
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount}
3188
+ # for more details.
3189
+ #
3190
+ # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
3191
+ #
3192
+ # @param applies_to_all [Boolean, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil] If set, the adjustment will apply to every price on the subscription.
3193
+ #
3194
+ # @param applies_to_item_ids [Array<String>, nil] The set of item IDs to which this adjustment applies.
3195
+ #
3196
+ # @param applies_to_price_ids [Array<String>, nil] The set of price IDs to which this adjustment applies.
3197
+ #
3198
+ # @param currency [String, nil] If set, only prices in the specified currency will have the adjustment applied.
3199
+ #
3200
+ # @param filters [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil] A list of filters that determine which prices this adjustment will apply to.
3201
+ #
3202
+ # @param is_invoice_level [Boolean] When false, this adjustment will be applied to a single price. Otherwise, it wil
3203
+ #
3204
+ # @param price_type [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil] If set, only prices of the specified type will have the adjustment applied.
3205
+ #
3206
+ # @param adjustment_type [Symbol, :tiered_percentage_discount]
3207
+
3208
+ class Tier < Orb::Internal::Type::BaseModel
3209
+ # @!attribute lower_bound
3210
+ # Exclusive lower bound of cumulative spend for this tier.
3211
+ #
3212
+ # @return [Float]
3213
+ required :lower_bound, Float
3214
+
3215
+ # @!attribute percentage
3216
+ # The percentage (0-1) discounted from spend in this tier.
3217
+ #
3218
+ # @return [Float]
3219
+ required :percentage, Float
3220
+
3221
+ # @!attribute upper_bound
3222
+ # Inclusive upper bound of cumulative spend; null for the final open-ended tier.
3223
+ #
3224
+ # @return [Float, nil]
3225
+ optional :upper_bound, Float, nil?: true
3226
+
3227
+ # @!method initialize(lower_bound:, percentage:, upper_bound: nil)
3228
+ # @param lower_bound [Float] Exclusive lower bound of cumulative spend for this tier.
3229
+ #
3230
+ # @param percentage [Float] The percentage (0-1) discounted from spend in this tier.
3231
+ #
3232
+ # @param upper_bound [Float, nil] Inclusive upper bound of cumulative spend; null for the final open-ended tier.
3233
+ end
3234
+
3235
+ # If set, the adjustment will apply to every price on the subscription.
3236
+ #
3237
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount#applies_to_all
3238
+ module AppliesToAll
3239
+ extend Orb::Internal::Type::Enum
3240
+
3241
+ TRUE = true
3242
+
3243
+ # @!method self.values
3244
+ # @return [Array<Boolean>]
3245
+ end
3246
+
3247
+ class Filter < Orb::Internal::Type::BaseModel
3248
+ # @!attribute field
3249
+ # The property of the price to filter on.
3250
+ #
3251
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field]
3252
+ required :field,
3253
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field }
3254
+
3255
+ # @!attribute operator
3256
+ # Should prices that match the filter be included or excluded.
3257
+ #
3258
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator]
3259
+ required :operator,
3260
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator }
3261
+
3262
+ # @!attribute values
3263
+ # The IDs or values that match this filter.
3264
+ #
3265
+ # @return [Array<String>]
3266
+ required :values, Orb::Internal::Type::ArrayOf[String]
3267
+
3268
+ # @!method initialize(field:, operator:, values:)
3269
+ # @param field [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field] The property of the price to filter on.
3270
+ #
3271
+ # @param operator [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator] Should prices that match the filter be included or excluded.
3272
+ #
3273
+ # @param values [Array<String>] The IDs or values that match this filter.
3274
+
3275
+ # The property of the price to filter on.
3276
+ #
3277
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter#field
3278
+ module Field
3279
+ extend Orb::Internal::Type::Enum
3280
+
3281
+ PRICE_ID = :price_id
3282
+ ITEM_ID = :item_id
3283
+ PRICE_TYPE = :price_type
3284
+ CURRENCY = :currency
3285
+ PRICING_UNIT_ID = :pricing_unit_id
3286
+
3287
+ # @!method self.values
3288
+ # @return [Array<Symbol>]
3289
+ end
3290
+
3291
+ # Should prices that match the filter be included or excluded.
3292
+ #
3293
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount::Filter#operator
3294
+ module Operator
3295
+ extend Orb::Internal::Type::Enum
3296
+
3297
+ INCLUDES = :includes
3298
+ EXCLUDES = :excludes
3299
+
3300
+ # @!method self.values
3301
+ # @return [Array<Symbol>]
3302
+ end
3303
+ end
3304
+
3305
+ # If set, only prices of the specified type will have the adjustment applied.
3306
+ #
3307
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount#price_type
3308
+ module PriceType
3309
+ extend Orb::Internal::Type::Enum
3310
+
3311
+ USAGE = :usage
3312
+ FIXED_IN_ADVANCE = :fixed_in_advance
3313
+ FIXED_IN_ARREARS = :fixed_in_arrears
3314
+ FIXED = :fixed
3315
+ IN_ARREARS = :in_arrears
3316
+
3317
+ # @!method self.values
3318
+ # @return [Array<Symbol>]
3319
+ end
3320
+ end
3321
+
3322
+ # @!method self.variants
3323
+ # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment::TieredPercentageDiscount)]
3324
+ end
3325
+ end
3326
+
3327
+ class ReplacePrice < Orb::Internal::Type::BaseModel
3328
+ # @!attribute replaces_price_id
3329
+ # The id of the price on the plan to replace in the subscription.
3330
+ #
3331
+ # @return [String]
3332
+ required :replaces_price_id, String
3333
+
3334
+ # @!attribute allocation_price
3335
+ # The definition of a new allocation price to create and add to the subscription.
3336
+ #
3337
+ # @return [Orb::Models::NewAllocationPrice, nil]
3338
+ optional :allocation_price, -> { Orb::NewAllocationPrice }, nil?: true
3339
+
3340
+ # @!attribute discounts
3341
+ # @deprecated
3342
+ #
3343
+ # [DEPRECATED] Use add_adjustments instead. The subscription's discounts for the
3344
+ # replacement price.
3345
+ #
3346
+ # @return [Array<Orb::Models::DiscountOverride>, nil]
3347
+ optional :discounts, -> { Orb::Internal::Type::ArrayOf[Orb::DiscountOverride] }, nil?: true
3348
+
3349
+ # @!attribute external_price_id
3350
+ # The external price id of the price to add to the subscription.
3351
+ #
3352
+ # @return [String, nil]
3353
+ optional :external_price_id, String, nil?: true
3354
+
3355
+ # @!attribute fixed_price_quantity
3356
+ # The new quantity of the price, if the price is a fixed price.
3357
+ #
3358
+ # @return [Float, nil]
3359
+ optional :fixed_price_quantity, Float, nil?: true
3360
+
3361
+ # @!attribute maximum_amount
3362
+ # @deprecated
3363
+ #
3364
+ # [DEPRECATED] Use add_adjustments instead. The subscription's maximum amount for
3365
+ # the replacement price.
3366
+ #
3367
+ # @return [String, nil]
3368
+ optional :maximum_amount, String, nil?: true
3369
+
3370
+ # @!attribute metric_parameter_overrides
3371
+ # Override values for parameterized billable metric variables. Keys are parameter
3372
+ # names, values are the override values.
3373
+ #
3374
+ # @return [Hash{Symbol=>Object}, nil]
3375
+ optional :metric_parameter_overrides,
3376
+ Orb::Internal::Type::HashOf[Orb::Internal::Type::Unknown],
3377
+ nil?: true
3378
+
3379
+ # @!attribute minimum_amount
3380
+ # @deprecated
3381
+ #
3382
+ # [DEPRECATED] Use add_adjustments instead. The subscription's minimum amount for
3383
+ # the replacement price.
3384
+ #
3385
+ # @return [String, nil]
3386
+ optional :minimum_amount, String, nil?: true
3387
+
3388
+ # @!attribute price
3389
+ # New subscription price request body params.
3390
+ #
3391
+ # @return [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput, nil]
3392
+ optional :price,
3393
+ union: -> {
3394
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price
3395
+ },
3396
+ nil?: true
3397
+
3398
+ # @!attribute price_id
3399
+ # The id of the price to add to the subscription.
3400
+ #
3401
+ # @return [String, nil]
3402
+ optional :price_id, String, nil?: true
3403
+
3404
+ # @!method initialize(replaces_price_id:, allocation_price: nil, discounts: nil, external_price_id: nil, fixed_price_quantity: nil, maximum_amount: nil, metric_parameter_overrides: nil, minimum_amount: nil, price: nil, price_id: nil)
3405
+ # Some parameter documentations has been truncated, see
3406
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice} for more
3407
+ # details.
3408
+ #
3409
+ # @param replaces_price_id [String] The id of the price on the plan to replace in the subscription.
3410
+ #
3411
+ # @param allocation_price [Orb::Models::NewAllocationPrice, nil] The definition of a new allocation price to create and add to the subscription.
3412
+ #
3413
+ # @param discounts [Array<Orb::Models::DiscountOverride>, nil] [DEPRECATED] Use add_adjustments instead. The subscription's discounts for the r
3414
+ #
3415
+ # @param external_price_id [String, nil] The external price id of the price to add to the subscription.
3416
+ #
3417
+ # @param fixed_price_quantity [Float, nil] The new quantity of the price, if the price is a fixed price.
3418
+ #
3419
+ # @param maximum_amount [String, nil] [DEPRECATED] Use add_adjustments instead. The subscription's maximum amount for
3420
+ #
3421
+ # @param metric_parameter_overrides [Hash{Symbol=>Object}, nil] Override values for parameterized billable metric variables. Keys are parameter
3422
+ #
3423
+ # @param minimum_amount [String, nil] [DEPRECATED] Use add_adjustments instead. The subscription's minimum amount for
3424
+ #
3425
+ # @param price [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput, nil] New subscription price request body params.
3426
+ #
3427
+ # @param price_id [String, nil] The id of the price to add to the subscription.
3428
+
3429
+ # New subscription price request body params.
3430
+ #
3431
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice#price
3432
+ module Price
3433
+ extend Orb::Internal::Type::Union
3434
+
3435
+ discriminator :model_type
3436
+
3437
+ variant :unit, -> { Orb::NewSubscriptionUnitPrice }
3438
+
3439
+ variant :tiered, -> { Orb::NewSubscriptionTieredPrice }
3440
+
3441
+ variant :bulk, -> { Orb::NewSubscriptionBulkPrice }
3442
+
3443
+ variant :bulk_with_filters,
3444
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters }
3445
+
3446
+ variant :package, -> { Orb::NewSubscriptionPackagePrice }
3447
+
3448
+ variant :matrix, -> { Orb::NewSubscriptionMatrixPrice }
3449
+
3450
+ variant :threshold_total_amount, -> { Orb::NewSubscriptionThresholdTotalAmountPrice }
3451
+
3452
+ variant :tiered_package, -> { Orb::NewSubscriptionTieredPackagePrice }
3453
+
3454
+ variant :tiered_with_minimum, -> { Orb::NewSubscriptionTieredWithMinimumPrice }
3455
+
3456
+ variant :grouped_tiered, -> { Orb::NewSubscriptionGroupedTieredPrice }
3457
+
3458
+ variant :tiered_package_with_minimum, -> { Orb::NewSubscriptionTieredPackageWithMinimumPrice }
3459
+
3460
+ variant :package_with_allocation, -> { Orb::NewSubscriptionPackageWithAllocationPrice }
3461
+
3462
+ variant :unit_with_percent, -> { Orb::NewSubscriptionUnitWithPercentPrice }
3463
+
3464
+ variant :matrix_with_allocation, -> { Orb::NewSubscriptionMatrixWithAllocationPrice }
3465
+
3466
+ variant :matrix_with_threshold_discounts,
3467
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts }
3468
+
3469
+ variant :tiered_with_proration,
3470
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration }
3471
+
3472
+ variant :unit_with_proration, -> { Orb::NewSubscriptionUnitWithProrationPrice }
3473
+
3474
+ variant :grouped_allocation, -> { Orb::NewSubscriptionGroupedAllocationPrice }
3475
+
3476
+ variant :bulk_with_proration, -> { Orb::NewSubscriptionBulkWithProrationPrice }
3477
+
3478
+ variant :grouped_with_prorated_minimum, -> { Orb::NewSubscriptionGroupedWithProratedMinimumPrice }
3479
+
3480
+ variant :grouped_with_metered_minimum, -> { Orb::NewSubscriptionGroupedWithMeteredMinimumPrice }
3481
+
3482
+ variant :grouped_with_min_max_thresholds,
3483
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds }
3484
+
3485
+ variant :matrix_with_display_name, -> { Orb::NewSubscriptionMatrixWithDisplayNamePrice }
3486
+
3487
+ variant :grouped_tiered_package, -> { Orb::NewSubscriptionGroupedTieredPackagePrice }
3488
+
3489
+ variant :max_group_tiered_package, -> { Orb::NewSubscriptionMaxGroupTieredPackagePrice }
3490
+
3491
+ variant :scalable_matrix_with_unit_pricing, -> { Orb::NewSubscriptionScalableMatrixWithUnitPricingPrice }
3492
+
3493
+ variant :scalable_matrix_with_tiered_pricing,
3494
+ -> { Orb::NewSubscriptionScalableMatrixWithTieredPricingPrice }
3495
+
3496
+ variant :cumulative_grouped_bulk, -> { Orb::NewSubscriptionCumulativeGroupedBulkPrice }
3497
+
3498
+ variant :cumulative_grouped_allocation,
3499
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation }
3500
+
3501
+ variant :daily_credit_allowance,
3502
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance }
3503
+
3504
+ variant :metered_allowance,
3505
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance }
3506
+
3507
+ variant :minimum_composite, -> { Orb::NewSubscriptionMinimumCompositePrice }
3508
+
3509
+ variant :percent, -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent }
3510
+
3511
+ variant :event_output, -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput }
3512
+
3513
+ class BulkWithFilters < Orb::Internal::Type::BaseModel
3514
+ # @!attribute bulk_with_filters_config
3515
+ # Configuration for bulk_with_filters pricing
3516
+ #
3517
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig]
3518
+ required :bulk_with_filters_config,
3519
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig }
3520
+
3521
+ # @!attribute cadence
3522
+ # The cadence to bill for this price on.
3523
+ #
3524
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence]
3525
+ required :cadence,
3526
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence }
3527
+
3528
+ # @!attribute item_id
3529
+ # The id of the item the price will be associated with.
3530
+ #
3531
+ # @return [String]
3532
+ required :item_id, String
3533
+
3534
+ # @!attribute model_type
3535
+ # The pricing model type
3536
+ #
3537
+ # @return [Symbol, :bulk_with_filters]
3538
+ required :model_type, const: :bulk_with_filters
3539
+
3540
+ # @!attribute name
3541
+ # The name of the price.
3542
+ #
3543
+ # @return [String]
3544
+ required :name, String
3545
+
3546
+ # @!attribute billable_metric_id
3547
+ # The id of the billable metric for the price. Only needed if the price is
3548
+ # usage-based.
3549
+ #
3550
+ # @return [String, nil]
3551
+ optional :billable_metric_id, String, nil?: true
3552
+
3553
+ # @!attribute billed_in_advance
3554
+ # If the Price represents a fixed cost, the price will be billed in-advance if
3555
+ # this is true, and in-arrears if this is false.
3556
+ #
3557
+ # @return [Boolean, nil]
3558
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
3559
+
3560
+ # @!attribute billing_cycle_configuration
3561
+ # For custom cadence: specifies the duration of the billing period in days or
3562
+ # months.
3563
+ #
3564
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
3565
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
3566
+
3567
+ # @!attribute conversion_rate
3568
+ # The per unit conversion rate of the price currency to the invoicing currency.
3569
+ #
3570
+ # @return [Float, nil]
3571
+ optional :conversion_rate, Float, nil?: true
3572
+
3573
+ # @!attribute conversion_rate_config
3574
+ # The configuration for the rate of the price currency to the invoicing currency.
3575
+ #
3576
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
3577
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
3578
+
3579
+ # @!attribute currency
3580
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
3581
+ # price is billed.
3582
+ #
3583
+ # @return [String, nil]
3584
+ optional :currency, String, nil?: true
3585
+
3586
+ # @!attribute dimensional_price_configuration
3587
+ # For dimensional price: specifies a price group and dimension values
3588
+ #
3589
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
3590
+ optional :dimensional_price_configuration,
3591
+ -> {
3592
+ Orb::NewDimensionalPriceConfiguration
3593
+ },
3594
+ nil?: true
3595
+
3596
+ # @!attribute external_price_id
3597
+ # An alias for the price.
3598
+ #
3599
+ # @return [String, nil]
3600
+ optional :external_price_id, String, nil?: true
3601
+
3602
+ # @!attribute fixed_price_quantity
3603
+ # If the Price represents a fixed cost, this represents the quantity of units
3604
+ # applied.
3605
+ #
3606
+ # @return [Float, nil]
3607
+ optional :fixed_price_quantity, Float, nil?: true
3608
+
3609
+ # @!attribute invoice_grouping_key
3610
+ # The property used to group this price on an invoice
3611
+ #
3612
+ # @return [String, nil]
3613
+ optional :invoice_grouping_key, String, nil?: true
3614
+
3615
+ # @!attribute invoicing_cycle_configuration
3616
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
3617
+ # If unspecified, a single invoice is produced per billing cycle.
3618
+ #
3619
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
3620
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
3621
+
3622
+ # @!attribute license_type_id
3623
+ # The ID of the license type to associate with this price.
3624
+ #
3625
+ # @return [String, nil]
3626
+ optional :license_type_id, String, nil?: true
3627
+
3628
+ # @!attribute metadata
3629
+ # User-specified key/value pairs for the resource. Individual keys can be removed
3630
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
3631
+ # by setting `metadata` to `null`.
3632
+ #
3633
+ # @return [Hash{Symbol=>String, nil}, nil]
3634
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
3635
+
3636
+ # @!attribute reference_id
3637
+ # A transient ID that can be used to reference this price when adding adjustments
3638
+ # in the same API call.
3639
+ #
3640
+ # @return [String, nil]
3641
+ optional :reference_id, String, nil?: true
3642
+
3643
+ # @!method initialize(bulk_with_filters_config:, cadence:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :bulk_with_filters)
3644
+ # Some parameter documentations has been truncated, see
3645
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters}
3646
+ # for more details.
3647
+ #
3648
+ # @param bulk_with_filters_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig] Configuration for bulk_with_filters pricing
3649
+ #
3650
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence] The cadence to bill for this price on.
3651
+ #
3652
+ # @param item_id [String] The id of the item the price will be associated with.
3653
+ #
3654
+ # @param name [String] The name of the price.
3655
+ #
3656
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
3657
+ #
3658
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
3659
+ #
3660
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
3661
+ #
3662
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
3663
+ #
3664
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
3665
+ #
3666
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
3667
+ #
3668
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
3669
+ #
3670
+ # @param external_price_id [String, nil] An alias for the price.
3671
+ #
3672
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
3673
+ #
3674
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
3675
+ #
3676
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
3677
+ #
3678
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
3679
+ #
3680
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
3681
+ #
3682
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
3683
+ #
3684
+ # @param model_type [Symbol, :bulk_with_filters] The pricing model type
3685
+
3686
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters#bulk_with_filters_config
3687
+ class BulkWithFiltersConfig < Orb::Internal::Type::BaseModel
3688
+ # @!attribute filters
3689
+ # Property filters to apply (all must match)
3690
+ #
3691
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter>]
3692
+ required :filters,
3693
+ -> do
3694
+ Orb::Internal::Type::ArrayOf[
3695
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter
3696
+ ]
3697
+ end
3698
+
3699
+ # @!attribute tiers
3700
+ # Bulk tiers for rating based on total usage volume
3701
+ #
3702
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier>]
3703
+ required :tiers,
3704
+ -> do
3705
+ Orb::Internal::Type::ArrayOf[
3706
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier
3707
+ ]
3708
+ end
3709
+
3710
+ # @!method initialize(filters:, tiers:)
3711
+ # Configuration for bulk_with_filters pricing
3712
+ #
3713
+ # @param filters [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter>] Property filters to apply (all must match)
3714
+ #
3715
+ # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier>] Bulk tiers for rating based on total usage volume
3716
+
3717
+ class Filter < Orb::Internal::Type::BaseModel
3718
+ # @!attribute property_key
3719
+ # Event property key to filter on
3720
+ #
3721
+ # @return [String]
3722
+ required :property_key, String
3723
+
3724
+ # @!attribute property_value
3725
+ # Event property value to match
3726
+ #
3727
+ # @return [String]
3728
+ required :property_value, String
3729
+
3730
+ # @!method initialize(property_key:, property_value:)
3731
+ # Configuration for a single property filter
3732
+ #
3733
+ # @param property_key [String] Event property key to filter on
3734
+ #
3735
+ # @param property_value [String] Event property value to match
3736
+ end
3737
+
3738
+ class Tier < Orb::Internal::Type::BaseModel
3739
+ # @!attribute unit_amount
3740
+ # Amount per unit
3741
+ #
3742
+ # @return [String]
3743
+ required :unit_amount, String
3744
+
3745
+ # @!attribute tier_lower_bound
3746
+ # The lower bound for this tier
3747
+ #
3748
+ # @return [String, nil]
3749
+ optional :tier_lower_bound, String, nil?: true
1968
3750
 
1969
- class RemoveAdjustment < Orb::Internal::Type::BaseModel
1970
- # @!attribute adjustment_id
1971
- # The id of the adjustment to remove on the subscription.
1972
- #
1973
- # @return [String]
1974
- required :adjustment_id, String
3751
+ # @!method initialize(unit_amount:, tier_lower_bound: nil)
3752
+ # Configuration for a single bulk pricing tier
3753
+ #
3754
+ # @param unit_amount [String] Amount per unit
3755
+ #
3756
+ # @param tier_lower_bound [String, nil] The lower bound for this tier
3757
+ end
3758
+ end
1975
3759
 
1976
- # @!method initialize(adjustment_id:)
1977
- # @param adjustment_id [String] The id of the adjustment to remove on the subscription.
1978
- end
3760
+ # The cadence to bill for this price on.
3761
+ #
3762
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters#cadence
3763
+ module Cadence
3764
+ extend Orb::Internal::Type::Enum
1979
3765
 
1980
- class RemovePrice < Orb::Internal::Type::BaseModel
1981
- # @!attribute external_price_id
1982
- # The external price id of the price to remove on the subscription.
1983
- #
1984
- # @return [String, nil]
1985
- optional :external_price_id, String, nil?: true
3766
+ ANNUAL = :annual
3767
+ SEMI_ANNUAL = :semi_annual
3768
+ MONTHLY = :monthly
3769
+ QUARTERLY = :quarterly
3770
+ ONE_TIME = :one_time
3771
+ CUSTOM = :custom
1986
3772
 
1987
- # @!attribute price_id
1988
- # The id of the price to remove on the subscription.
1989
- #
1990
- # @return [String, nil]
1991
- optional :price_id, String, nil?: true
3773
+ # @!method self.values
3774
+ # @return [Array<Symbol>]
3775
+ end
3776
+ end
1992
3777
 
1993
- # @!method initialize(external_price_id: nil, price_id: nil)
1994
- # @param external_price_id [String, nil] The external price id of the price to remove on the subscription.
1995
- #
1996
- # @param price_id [String, nil] The id of the price to remove on the subscription.
1997
- end
3778
+ class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
3779
+ # @!attribute cadence
3780
+ # The cadence to bill for this price on.
3781
+ #
3782
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::Cadence]
3783
+ required :cadence,
3784
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::Cadence }
1998
3785
 
1999
- class ReplaceAdjustment < Orb::Internal::Type::BaseModel
2000
- # @!attribute adjustment
2001
- # The definition of a new adjustment to create and add to the subscription.
2002
- #
2003
- # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum]
2004
- required :adjustment,
2005
- union: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment::Adjustment }
3786
+ # @!attribute item_id
3787
+ # The id of the item the price will be associated with.
3788
+ #
3789
+ # @return [String]
3790
+ required :item_id, String
2006
3791
 
2007
- # @!attribute replaces_adjustment_id
2008
- # The id of the adjustment on the plan to replace in the subscription.
2009
- #
2010
- # @return [String]
2011
- required :replaces_adjustment_id, String
3792
+ # @!attribute matrix_with_threshold_discounts_config
3793
+ # Configuration for matrix_with_threshold_discounts pricing
3794
+ #
3795
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig]
3796
+ required :matrix_with_threshold_discounts_config,
3797
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig }
2012
3798
 
2013
- # @!method initialize(adjustment:, replaces_adjustment_id:)
2014
- # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum] The definition of a new adjustment to create and add to the subscription.
2015
- #
2016
- # @param replaces_adjustment_id [String] The id of the adjustment on the plan to replace in the subscription.
3799
+ # @!attribute model_type
3800
+ # The pricing model type
3801
+ #
3802
+ # @return [Symbol, :matrix_with_threshold_discounts]
3803
+ required :model_type, const: :matrix_with_threshold_discounts
2017
3804
 
2018
- # The definition of a new adjustment to create and add to the subscription.
2019
- #
2020
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplaceAdjustment#adjustment
2021
- module Adjustment
2022
- extend Orb::Internal::Type::Union
3805
+ # @!attribute name
3806
+ # The name of the price.
3807
+ #
3808
+ # @return [String]
3809
+ required :name, String
2023
3810
 
2024
- discriminator :adjustment_type
3811
+ # @!attribute billable_metric_id
3812
+ # The id of the billable metric for the price. Only needed if the price is
3813
+ # usage-based.
3814
+ #
3815
+ # @return [String, nil]
3816
+ optional :billable_metric_id, String, nil?: true
2025
3817
 
2026
- variant :percentage_discount, -> { Orb::NewPercentageDiscount }
3818
+ # @!attribute billed_in_advance
3819
+ # If the Price represents a fixed cost, the price will be billed in-advance if
3820
+ # this is true, and in-arrears if this is false.
3821
+ #
3822
+ # @return [Boolean, nil]
3823
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
2027
3824
 
2028
- variant :usage_discount, -> { Orb::NewUsageDiscount }
3825
+ # @!attribute billing_cycle_configuration
3826
+ # For custom cadence: specifies the duration of the billing period in days or
3827
+ # months.
3828
+ #
3829
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
3830
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2029
3831
 
2030
- variant :amount_discount, -> { Orb::NewAmountDiscount }
3832
+ # @!attribute conversion_rate
3833
+ # The per unit conversion rate of the price currency to the invoicing currency.
3834
+ #
3835
+ # @return [Float, nil]
3836
+ optional :conversion_rate, Float, nil?: true
2031
3837
 
2032
- variant :minimum, -> { Orb::NewMinimum }
3838
+ # @!attribute conversion_rate_config
3839
+ # The configuration for the rate of the price currency to the invoicing currency.
3840
+ #
3841
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
3842
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2033
3843
 
2034
- variant :maximum, -> { Orb::NewMaximum }
3844
+ # @!attribute currency
3845
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
3846
+ # price is billed.
3847
+ #
3848
+ # @return [String, nil]
3849
+ optional :currency, String, nil?: true
2035
3850
 
2036
- # @!method self.variants
2037
- # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum)]
2038
- end
2039
- end
3851
+ # @!attribute dimensional_price_configuration
3852
+ # For dimensional price: specifies a price group and dimension values
3853
+ #
3854
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
3855
+ optional :dimensional_price_configuration,
3856
+ -> {
3857
+ Orb::NewDimensionalPriceConfiguration
3858
+ },
3859
+ nil?: true
2040
3860
 
2041
- class ReplacePrice < Orb::Internal::Type::BaseModel
2042
- # @!attribute replaces_price_id
2043
- # The id of the price on the plan to replace in the subscription.
2044
- #
2045
- # @return [String]
2046
- required :replaces_price_id, String
3861
+ # @!attribute external_price_id
3862
+ # An alias for the price.
3863
+ #
3864
+ # @return [String, nil]
3865
+ optional :external_price_id, String, nil?: true
2047
3866
 
2048
- # @!attribute allocation_price
2049
- # The definition of a new allocation price to create and add to the subscription.
2050
- #
2051
- # @return [Orb::Models::NewAllocationPrice, nil]
2052
- optional :allocation_price, -> { Orb::NewAllocationPrice }, nil?: true
3867
+ # @!attribute fixed_price_quantity
3868
+ # If the Price represents a fixed cost, this represents the quantity of units
3869
+ # applied.
3870
+ #
3871
+ # @return [Float, nil]
3872
+ optional :fixed_price_quantity, Float, nil?: true
3873
+
3874
+ # @!attribute invoice_grouping_key
3875
+ # The property used to group this price on an invoice
3876
+ #
3877
+ # @return [String, nil]
3878
+ optional :invoice_grouping_key, String, nil?: true
3879
+
3880
+ # @!attribute invoicing_cycle_configuration
3881
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
3882
+ # If unspecified, a single invoice is produced per billing cycle.
3883
+ #
3884
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
3885
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
3886
+
3887
+ # @!attribute license_type_id
3888
+ # The ID of the license type to associate with this price.
3889
+ #
3890
+ # @return [String, nil]
3891
+ optional :license_type_id, String, nil?: true
3892
+
3893
+ # @!attribute metadata
3894
+ # User-specified key/value pairs for the resource. Individual keys can be removed
3895
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
3896
+ # by setting `metadata` to `null`.
3897
+ #
3898
+ # @return [Hash{Symbol=>String, nil}, nil]
3899
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
3900
+
3901
+ # @!attribute reference_id
3902
+ # A transient ID that can be used to reference this price when adding adjustments
3903
+ # in the same API call.
3904
+ #
3905
+ # @return [String, nil]
3906
+ optional :reference_id, String, nil?: true
3907
+
3908
+ # @!method initialize(cadence:, item_id:, matrix_with_threshold_discounts_config:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :matrix_with_threshold_discounts)
3909
+ # Some parameter documentations has been truncated, see
3910
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts}
3911
+ # for more details.
3912
+ #
3913
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::Cadence] The cadence to bill for this price on.
3914
+ #
3915
+ # @param item_id [String] The id of the item the price will be associated with.
3916
+ #
3917
+ # @param matrix_with_threshold_discounts_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig] Configuration for matrix_with_threshold_discounts pricing
3918
+ #
3919
+ # @param name [String] The name of the price.
3920
+ #
3921
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
3922
+ #
3923
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
3924
+ #
3925
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
3926
+ #
3927
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
3928
+ #
3929
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
3930
+ #
3931
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
3932
+ #
3933
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
3934
+ #
3935
+ # @param external_price_id [String, nil] An alias for the price.
3936
+ #
3937
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
3938
+ #
3939
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
3940
+ #
3941
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
3942
+ #
3943
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
3944
+ #
3945
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
3946
+ #
3947
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
3948
+ #
3949
+ # @param model_type [Symbol, :matrix_with_threshold_discounts] The pricing model type
3950
+
3951
+ # The cadence to bill for this price on.
3952
+ #
3953
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts#cadence
3954
+ module Cadence
3955
+ extend Orb::Internal::Type::Enum
3956
+
3957
+ ANNUAL = :annual
3958
+ SEMI_ANNUAL = :semi_annual
3959
+ MONTHLY = :monthly
3960
+ QUARTERLY = :quarterly
3961
+ ONE_TIME = :one_time
3962
+ CUSTOM = :custom
3963
+
3964
+ # @!method self.values
3965
+ # @return [Array<Symbol>]
3966
+ end
2053
3967
 
2054
- # @!attribute discounts
2055
- # @deprecated
2056
- #
2057
- # [DEPRECATED] Use add_adjustments instead. The subscription's discounts for the
2058
- # replacement price.
2059
- #
2060
- # @return [Array<Orb::Models::DiscountOverride>, nil]
2061
- optional :discounts, -> { Orb::Internal::Type::ArrayOf[Orb::DiscountOverride] }, nil?: true
3968
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts#matrix_with_threshold_discounts_config
3969
+ class MatrixWithThresholdDiscountsConfig < Orb::Internal::Type::BaseModel
3970
+ # @!attribute default_unit_amount
3971
+ # Unit price used for usage that does not match any defined matrix cell.
3972
+ #
3973
+ # @return [String]
3974
+ required :default_unit_amount, String
2062
3975
 
2063
- # @!attribute external_price_id
2064
- # The external price id of the price to add to the subscription.
2065
- #
2066
- # @return [String, nil]
2067
- optional :external_price_id, String, nil?: true
3976
+ # @!attribute first_dimension
3977
+ # First matrix dimension key.
3978
+ #
3979
+ # @return [String]
3980
+ required :first_dimension, String
2068
3981
 
2069
- # @!attribute fixed_price_quantity
2070
- # The new quantity of the price, if the price is a fixed price.
2071
- #
2072
- # @return [Float, nil]
2073
- optional :fixed_price_quantity, Float, nil?: true
3982
+ # @!attribute matrix_values
3983
+ # Per-cell unit prices.
3984
+ #
3985
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>]
3986
+ required :matrix_values,
3987
+ -> do
3988
+ Orb::Internal::Type::ArrayOf[
3989
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue
3990
+ ]
3991
+ end
2074
3992
 
2075
- # @!attribute maximum_amount
2076
- # @deprecated
2077
- #
2078
- # [DEPRECATED] Use add_adjustments instead. The subscription's maximum amount for
2079
- # the replacement price.
2080
- #
2081
- # @return [String, nil]
2082
- optional :maximum_amount, String, nil?: true
3993
+ # @!attribute second_dimension
3994
+ # Optional second matrix dimension key.
3995
+ #
3996
+ # @return [String, nil]
3997
+ optional :second_dimension, String, nil?: true
2083
3998
 
2084
- # @!attribute metric_parameter_overrides
2085
- # Override values for parameterized billable metric variables. Keys are parameter
2086
- # names, values are the override values.
2087
- #
2088
- # @return [Hash{Symbol=>Object}, nil]
2089
- optional :metric_parameter_overrides,
2090
- Orb::Internal::Type::HashOf[Orb::Internal::Type::Unknown],
2091
- nil?: true
3999
+ # @!attribute threshold_discount_groups
4000
+ #
4001
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>, nil]
4002
+ optional :threshold_discount_groups,
4003
+ -> do
4004
+ Orb::Internal::Type::ArrayOf[
4005
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup
4006
+ ]
4007
+ end
2092
4008
 
2093
- # @!attribute minimum_amount
2094
- # @deprecated
2095
- #
2096
- # [DEPRECATED] Use add_adjustments instead. The subscription's minimum amount for
2097
- # the replacement price.
2098
- #
2099
- # @return [String, nil]
2100
- optional :minimum_amount, String, nil?: true
4009
+ # @!method initialize(default_unit_amount:, first_dimension:, matrix_values:, second_dimension: nil, threshold_discount_groups: nil)
4010
+ # Configuration for matrix_with_threshold_discounts pricing
4011
+ #
4012
+ # @param default_unit_amount [String] Unit price used for usage that does not match any defined matrix cell.
4013
+ #
4014
+ # @param first_dimension [String] First matrix dimension key.
4015
+ #
4016
+ # @param matrix_values [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>] Per-cell unit prices.
4017
+ #
4018
+ # @param second_dimension [String, nil] Optional second matrix dimension key.
4019
+ #
4020
+ # @param threshold_discount_groups [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>]
2101
4021
 
2102
- # @!attribute price
2103
- # New subscription price request body params.
2104
- #
2105
- # @return [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput, nil]
2106
- optional :price,
2107
- union: -> {
2108
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price
2109
- },
2110
- nil?: true
4022
+ class MatrixValue < Orb::Internal::Type::BaseModel
4023
+ # @!attribute first_dimension_value
4024
+ #
4025
+ # @return [String]
4026
+ required :first_dimension_value, String
2111
4027
 
2112
- # @!attribute price_id
2113
- # The id of the price to add to the subscription.
2114
- #
2115
- # @return [String, nil]
2116
- optional :price_id, String, nil?: true
4028
+ # @!attribute unit_amount
4029
+ #
4030
+ # @return [String]
4031
+ required :unit_amount, String
2117
4032
 
2118
- # @!method initialize(replaces_price_id:, allocation_price: nil, discounts: nil, external_price_id: nil, fixed_price_quantity: nil, maximum_amount: nil, metric_parameter_overrides: nil, minimum_amount: nil, price: nil, price_id: nil)
2119
- # Some parameter documentations has been truncated, see
2120
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice} for more
2121
- # details.
2122
- #
2123
- # @param replaces_price_id [String] The id of the price on the plan to replace in the subscription.
2124
- #
2125
- # @param allocation_price [Orb::Models::NewAllocationPrice, nil] The definition of a new allocation price to create and add to the subscription.
2126
- #
2127
- # @param discounts [Array<Orb::Models::DiscountOverride>, nil] [DEPRECATED] Use add_adjustments instead. The subscription's discounts for the r
2128
- #
2129
- # @param external_price_id [String, nil] The external price id of the price to add to the subscription.
2130
- #
2131
- # @param fixed_price_quantity [Float, nil] The new quantity of the price, if the price is a fixed price.
2132
- #
2133
- # @param maximum_amount [String, nil] [DEPRECATED] Use add_adjustments instead. The subscription's maximum amount for
2134
- #
2135
- # @param metric_parameter_overrides [Hash{Symbol=>Object}, nil] Override values for parameterized billable metric variables. Keys are parameter
2136
- #
2137
- # @param minimum_amount [String, nil] [DEPRECATED] Use add_adjustments instead. The subscription's minimum amount for
2138
- #
2139
- # @param price [Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput, nil] New subscription price request body params.
2140
- #
2141
- # @param price_id [String, nil] The id of the price to add to the subscription.
4033
+ # @!attribute second_dimension_value
4034
+ #
4035
+ # @return [String, nil]
4036
+ optional :second_dimension_value, String, nil?: true
2142
4037
 
2143
- # New subscription price request body params.
2144
- #
2145
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice#price
2146
- module Price
2147
- extend Orb::Internal::Type::Union
4038
+ # @!method initialize(first_dimension_value:, unit_amount:, second_dimension_value: nil)
4039
+ # @param first_dimension_value [String]
4040
+ # @param unit_amount [String]
4041
+ # @param second_dimension_value [String, nil]
4042
+ end
2148
4043
 
2149
- discriminator :model_type
4044
+ class ThresholdDiscountGroup < Orb::Internal::Type::BaseModel
4045
+ # @!attribute above_threshold_discount_percentage
4046
+ # Discount rate applied to spend above the threshold.
4047
+ #
4048
+ # @return [String]
4049
+ required :above_threshold_discount_percentage, String
2150
4050
 
2151
- variant :unit, -> { Orb::NewSubscriptionUnitPrice }
4051
+ # @!attribute below_threshold_discount_percentage
4052
+ # Discount rate applied to spend at or below the threshold. Set to 0 for no
4053
+ # baseline discount.
4054
+ #
4055
+ # @return [String]
4056
+ required :below_threshold_discount_percentage, String
2152
4057
 
2153
- variant :tiered, -> { Orb::NewSubscriptionTieredPrice }
4058
+ # @!attribute cell_coordinates
4059
+ # Semicolon-separated list of matrix cell coordinates targeted by this group. Each
4060
+ # coordinate is `first,second` when the matrix has two dimensions, or just `first`
4061
+ # for a single-dimension matrix. Example: `blue,circle;green,triangle`.
4062
+ #
4063
+ # @return [String]
4064
+ required :cell_coordinates, String
2154
4065
 
2155
- variant :bulk, -> { Orb::NewSubscriptionBulkPrice }
4066
+ # @!attribute threshold_amount
4067
+ #
4068
+ # @return [String]
4069
+ required :threshold_amount, String
2156
4070
 
2157
- variant :bulk_with_filters,
2158
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters }
4071
+ # @!attribute description
4072
+ #
4073
+ # @return [String, nil]
4074
+ optional :description, String, nil?: true
2159
4075
 
2160
- variant :package, -> { Orb::NewSubscriptionPackagePrice }
4076
+ # @!method initialize(above_threshold_discount_percentage:, below_threshold_discount_percentage:, cell_coordinates:, threshold_amount:, description: nil)
4077
+ # Some parameter documentations has been truncated, see
4078
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup}
4079
+ # for more details.
4080
+ #
4081
+ # @param above_threshold_discount_percentage [String] Discount rate applied to spend above the threshold.
4082
+ #
4083
+ # @param below_threshold_discount_percentage [String] Discount rate applied to spend at or below the threshold. Set to 0 for no baseli
4084
+ #
4085
+ # @param cell_coordinates [String] Semicolon-separated list of matrix cell coordinates targeted by this group. Each
4086
+ #
4087
+ # @param threshold_amount [String]
4088
+ #
4089
+ # @param description [String, nil]
4090
+ end
4091
+ end
4092
+ end
2161
4093
 
2162
- variant :matrix, -> { Orb::NewSubscriptionMatrixPrice }
4094
+ class TieredWithProration < Orb::Internal::Type::BaseModel
4095
+ # @!attribute cadence
4096
+ # The cadence to bill for this price on.
4097
+ #
4098
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence]
4099
+ required :cadence,
4100
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence }
2163
4101
 
2164
- variant :threshold_total_amount, -> { Orb::NewSubscriptionThresholdTotalAmountPrice }
4102
+ # @!attribute item_id
4103
+ # The id of the item the price will be associated with.
4104
+ #
4105
+ # @return [String]
4106
+ required :item_id, String
2165
4107
 
2166
- variant :tiered_package, -> { Orb::NewSubscriptionTieredPackagePrice }
4108
+ # @!attribute model_type
4109
+ # The pricing model type
4110
+ #
4111
+ # @return [Symbol, :tiered_with_proration]
4112
+ required :model_type, const: :tiered_with_proration
2167
4113
 
2168
- variant :tiered_with_minimum, -> { Orb::NewSubscriptionTieredWithMinimumPrice }
4114
+ # @!attribute name
4115
+ # The name of the price.
4116
+ #
4117
+ # @return [String]
4118
+ required :name, String
2169
4119
 
2170
- variant :grouped_tiered, -> { Orb::NewSubscriptionGroupedTieredPrice }
4120
+ # @!attribute tiered_with_proration_config
4121
+ # Configuration for tiered_with_proration pricing
4122
+ #
4123
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig]
4124
+ required :tiered_with_proration_config,
4125
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig }
2171
4126
 
2172
- variant :tiered_package_with_minimum, -> { Orb::NewSubscriptionTieredPackageWithMinimumPrice }
4127
+ # @!attribute billable_metric_id
4128
+ # The id of the billable metric for the price. Only needed if the price is
4129
+ # usage-based.
4130
+ #
4131
+ # @return [String, nil]
4132
+ optional :billable_metric_id, String, nil?: true
2173
4133
 
2174
- variant :package_with_allocation, -> { Orb::NewSubscriptionPackageWithAllocationPrice }
4134
+ # @!attribute billed_in_advance
4135
+ # If the Price represents a fixed cost, the price will be billed in-advance if
4136
+ # this is true, and in-arrears if this is false.
4137
+ #
4138
+ # @return [Boolean, nil]
4139
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
2175
4140
 
2176
- variant :unit_with_percent, -> { Orb::NewSubscriptionUnitWithPercentPrice }
4141
+ # @!attribute billing_cycle_configuration
4142
+ # For custom cadence: specifies the duration of the billing period in days or
4143
+ # months.
4144
+ #
4145
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
4146
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2177
4147
 
2178
- variant :matrix_with_allocation, -> { Orb::NewSubscriptionMatrixWithAllocationPrice }
4148
+ # @!attribute conversion_rate
4149
+ # The per unit conversion rate of the price currency to the invoicing currency.
4150
+ #
4151
+ # @return [Float, nil]
4152
+ optional :conversion_rate, Float, nil?: true
2179
4153
 
2180
- variant :tiered_with_proration,
2181
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration }
4154
+ # @!attribute conversion_rate_config
4155
+ # The configuration for the rate of the price currency to the invoicing currency.
4156
+ #
4157
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
4158
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2182
4159
 
2183
- variant :unit_with_proration, -> { Orb::NewSubscriptionUnitWithProrationPrice }
4160
+ # @!attribute currency
4161
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
4162
+ # price is billed.
4163
+ #
4164
+ # @return [String, nil]
4165
+ optional :currency, String, nil?: true
2184
4166
 
2185
- variant :grouped_allocation, -> { Orb::NewSubscriptionGroupedAllocationPrice }
4167
+ # @!attribute dimensional_price_configuration
4168
+ # For dimensional price: specifies a price group and dimension values
4169
+ #
4170
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
4171
+ optional :dimensional_price_configuration,
4172
+ -> {
4173
+ Orb::NewDimensionalPriceConfiguration
4174
+ },
4175
+ nil?: true
2186
4176
 
2187
- variant :bulk_with_proration, -> { Orb::NewSubscriptionBulkWithProrationPrice }
4177
+ # @!attribute external_price_id
4178
+ # An alias for the price.
4179
+ #
4180
+ # @return [String, nil]
4181
+ optional :external_price_id, String, nil?: true
2188
4182
 
2189
- variant :grouped_with_prorated_minimum, -> { Orb::NewSubscriptionGroupedWithProratedMinimumPrice }
4183
+ # @!attribute fixed_price_quantity
4184
+ # If the Price represents a fixed cost, this represents the quantity of units
4185
+ # applied.
4186
+ #
4187
+ # @return [Float, nil]
4188
+ optional :fixed_price_quantity, Float, nil?: true
2190
4189
 
2191
- variant :grouped_with_metered_minimum, -> { Orb::NewSubscriptionGroupedWithMeteredMinimumPrice }
4190
+ # @!attribute invoice_grouping_key
4191
+ # The property used to group this price on an invoice
4192
+ #
4193
+ # @return [String, nil]
4194
+ optional :invoice_grouping_key, String, nil?: true
2192
4195
 
2193
- variant :grouped_with_min_max_thresholds,
2194
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds }
4196
+ # @!attribute invoicing_cycle_configuration
4197
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
4198
+ # If unspecified, a single invoice is produced per billing cycle.
4199
+ #
4200
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
4201
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
4202
+
4203
+ # @!attribute license_type_id
4204
+ # The ID of the license type to associate with this price.
4205
+ #
4206
+ # @return [String, nil]
4207
+ optional :license_type_id, String, nil?: true
2195
4208
 
2196
- variant :matrix_with_display_name, -> { Orb::NewSubscriptionMatrixWithDisplayNamePrice }
4209
+ # @!attribute metadata
4210
+ # User-specified key/value pairs for the resource. Individual keys can be removed
4211
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
4212
+ # by setting `metadata` to `null`.
4213
+ #
4214
+ # @return [Hash{Symbol=>String, nil}, nil]
4215
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
2197
4216
 
2198
- variant :grouped_tiered_package, -> { Orb::NewSubscriptionGroupedTieredPackagePrice }
4217
+ # @!attribute reference_id
4218
+ # A transient ID that can be used to reference this price when adding adjustments
4219
+ # in the same API call.
4220
+ #
4221
+ # @return [String, nil]
4222
+ optional :reference_id, String, nil?: true
2199
4223
 
2200
- variant :max_group_tiered_package, -> { Orb::NewSubscriptionMaxGroupTieredPackagePrice }
4224
+ # @!method initialize(cadence:, item_id:, name:, tiered_with_proration_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_with_proration)
4225
+ # Some parameter documentations has been truncated, see
4226
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration}
4227
+ # for more details.
4228
+ #
4229
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence] The cadence to bill for this price on.
4230
+ #
4231
+ # @param item_id [String] The id of the item the price will be associated with.
4232
+ #
4233
+ # @param name [String] The name of the price.
4234
+ #
4235
+ # @param tiered_with_proration_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig] Configuration for tiered_with_proration pricing
4236
+ #
4237
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
4238
+ #
4239
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
4240
+ #
4241
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
4242
+ #
4243
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
4244
+ #
4245
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
4246
+ #
4247
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
4248
+ #
4249
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
4250
+ #
4251
+ # @param external_price_id [String, nil] An alias for the price.
4252
+ #
4253
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
4254
+ #
4255
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
4256
+ #
4257
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
4258
+ #
4259
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
4260
+ #
4261
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
4262
+ #
4263
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
4264
+ #
4265
+ # @param model_type [Symbol, :tiered_with_proration] The pricing model type
2201
4266
 
2202
- variant :scalable_matrix_with_unit_pricing, -> { Orb::NewSubscriptionScalableMatrixWithUnitPricingPrice }
4267
+ # The cadence to bill for this price on.
4268
+ #
4269
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration#cadence
4270
+ module Cadence
4271
+ extend Orb::Internal::Type::Enum
2203
4272
 
2204
- variant :scalable_matrix_with_tiered_pricing,
2205
- -> { Orb::NewSubscriptionScalableMatrixWithTieredPricingPrice }
4273
+ ANNUAL = :annual
4274
+ SEMI_ANNUAL = :semi_annual
4275
+ MONTHLY = :monthly
4276
+ QUARTERLY = :quarterly
4277
+ ONE_TIME = :one_time
4278
+ CUSTOM = :custom
2206
4279
 
2207
- variant :cumulative_grouped_bulk, -> { Orb::NewSubscriptionCumulativeGroupedBulkPrice }
4280
+ # @!method self.values
4281
+ # @return [Array<Symbol>]
4282
+ end
2208
4283
 
2209
- variant :cumulative_grouped_allocation,
2210
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation }
4284
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration#tiered_with_proration_config
4285
+ class TieredWithProrationConfig < Orb::Internal::Type::BaseModel
4286
+ # @!attribute tiers
4287
+ # Tiers for rating based on total usage quantities into the specified tier with
4288
+ # proration
4289
+ #
4290
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>]
4291
+ required :tiers,
4292
+ -> do
4293
+ Orb::Internal::Type::ArrayOf[
4294
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier
4295
+ ]
4296
+ end
2211
4297
 
2212
- variant :minimum_composite, -> { Orb::NewSubscriptionMinimumCompositePrice }
4298
+ # @!method initialize(tiers:)
4299
+ # Some parameter documentations has been truncated, see
4300
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig}
4301
+ # for more details.
4302
+ #
4303
+ # Configuration for tiered_with_proration pricing
4304
+ #
4305
+ # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>] Tiers for rating based on total usage quantities into the specified tier with pr
2213
4306
 
2214
- variant :percent, -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent }
4307
+ class Tier < Orb::Internal::Type::BaseModel
4308
+ # @!attribute tier_lower_bound
4309
+ # Inclusive tier starting value
4310
+ #
4311
+ # @return [String]
4312
+ required :tier_lower_bound, String
2215
4313
 
2216
- variant :event_output, -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput }
4314
+ # @!attribute unit_amount
4315
+ # Amount per unit
4316
+ #
4317
+ # @return [String]
4318
+ required :unit_amount, String
2217
4319
 
2218
- class BulkWithFilters < Orb::Internal::Type::BaseModel
2219
- # @!attribute bulk_with_filters_config
2220
- # Configuration for bulk_with_filters pricing
2221
- #
2222
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig]
2223
- required :bulk_with_filters_config,
2224
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig }
4320
+ # @!method initialize(tier_lower_bound:, unit_amount:)
4321
+ # Configuration for a single tiered with proration tier
4322
+ #
4323
+ # @param tier_lower_bound [String] Inclusive tier starting value
4324
+ #
4325
+ # @param unit_amount [String] Amount per unit
4326
+ end
4327
+ end
4328
+ end
2225
4329
 
4330
+ class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
2226
4331
  # @!attribute cadence
2227
4332
  # The cadence to bill for this price on.
2228
4333
  #
2229
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence]
4334
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence]
2230
4335
  required :cadence,
2231
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence }
4336
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence }
4337
+
4338
+ # @!attribute grouped_with_min_max_thresholds_config
4339
+ # Configuration for grouped_with_min_max_thresholds pricing
4340
+ #
4341
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig]
4342
+ required :grouped_with_min_max_thresholds_config,
4343
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig }
2232
4344
 
2233
4345
  # @!attribute item_id
2234
4346
  # The id of the item the price will be associated with.
@@ -2239,8 +4351,8 @@ module Orb
2239
4351
  # @!attribute model_type
2240
4352
  # The pricing model type
2241
4353
  #
2242
- # @return [Symbol, :bulk_with_filters]
2243
- required :model_type, const: :bulk_with_filters
4354
+ # @return [Symbol, :grouped_with_min_max_thresholds]
4355
+ required :model_type, const: :grouped_with_min_max_thresholds
2244
4356
 
2245
4357
  # @!attribute name
2246
4358
  # The name of the price.
@@ -2279,11 +4391,7 @@ module Orb
2279
4391
  # The configuration for the rate of the price currency to the invoicing currency.
2280
4392
  #
2281
4393
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2282
- optional :conversion_rate_config,
2283
- union: -> {
2284
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::ConversionRateConfig
2285
- },
2286
- nil?: true
4394
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2287
4395
 
2288
4396
  # @!attribute currency
2289
4397
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -2349,14 +4457,14 @@ module Orb
2349
4457
  # @return [String, nil]
2350
4458
  optional :reference_id, String, nil?: true
2351
4459
 
2352
- # @!method initialize(bulk_with_filters_config:, cadence:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :bulk_with_filters)
4460
+ # @!method initialize(cadence:, grouped_with_min_max_thresholds_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :grouped_with_min_max_thresholds)
2353
4461
  # Some parameter documentations has been truncated, see
2354
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters}
4462
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds}
2355
4463
  # for more details.
2356
4464
  #
2357
- # @param bulk_with_filters_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig] Configuration for bulk_with_filters pricing
4465
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence] The cadence to bill for this price on.
2358
4466
  #
2359
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::Cadence] The cadence to bill for this price on.
4467
+ # @param grouped_with_min_max_thresholds_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig] Configuration for grouped_with_min_max_thresholds pricing
2360
4468
  #
2361
4469
  # @param item_id [String] The id of the item the price will be associated with.
2362
4470
  #
@@ -2390,85 +4498,11 @@ module Orb
2390
4498
  #
2391
4499
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2392
4500
  #
2393
- # @param model_type [Symbol, :bulk_with_filters] The pricing model type
2394
-
2395
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters#bulk_with_filters_config
2396
- class BulkWithFiltersConfig < Orb::Internal::Type::BaseModel
2397
- # @!attribute filters
2398
- # Property filters to apply (all must match)
2399
- #
2400
- # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter>]
2401
- required :filters,
2402
- -> do
2403
- Orb::Internal::Type::ArrayOf[
2404
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter
2405
- ]
2406
- end
2407
-
2408
- # @!attribute tiers
2409
- # Bulk tiers for rating based on total usage volume
2410
- #
2411
- # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier>]
2412
- required :tiers,
2413
- -> do
2414
- Orb::Internal::Type::ArrayOf[
2415
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier
2416
- ]
2417
- end
2418
-
2419
- # @!method initialize(filters:, tiers:)
2420
- # Configuration for bulk_with_filters pricing
2421
- #
2422
- # @param filters [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Filter>] Property filters to apply (all must match)
2423
- #
2424
- # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters::BulkWithFiltersConfig::Tier>] Bulk tiers for rating based on total usage volume
2425
-
2426
- class Filter < Orb::Internal::Type::BaseModel
2427
- # @!attribute property_key
2428
- # Event property key to filter on
2429
- #
2430
- # @return [String]
2431
- required :property_key, String
2432
-
2433
- # @!attribute property_value
2434
- # Event property value to match
2435
- #
2436
- # @return [String]
2437
- required :property_value, String
2438
-
2439
- # @!method initialize(property_key:, property_value:)
2440
- # Configuration for a single property filter
2441
- #
2442
- # @param property_key [String] Event property key to filter on
2443
- #
2444
- # @param property_value [String] Event property value to match
2445
- end
2446
-
2447
- class Tier < Orb::Internal::Type::BaseModel
2448
- # @!attribute unit_amount
2449
- # Amount per unit
2450
- #
2451
- # @return [String]
2452
- required :unit_amount, String
2453
-
2454
- # @!attribute tier_lower_bound
2455
- # The lower bound for this tier
2456
- #
2457
- # @return [String, nil]
2458
- optional :tier_lower_bound, String, nil?: true
2459
-
2460
- # @!method initialize(unit_amount:, tier_lower_bound: nil)
2461
- # Configuration for a single bulk pricing tier
2462
- #
2463
- # @param unit_amount [String] Amount per unit
2464
- #
2465
- # @param tier_lower_bound [String, nil] The lower bound for this tier
2466
- end
2467
- end
4501
+ # @param model_type [Symbol, :grouped_with_min_max_thresholds] The pricing model type
2468
4502
 
2469
4503
  # The cadence to bill for this price on.
2470
4504
  #
2471
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters#cadence
4505
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds#cadence
2472
4506
  module Cadence
2473
4507
  extend Orb::Internal::Type::Enum
2474
4508
 
@@ -2479,18 +4513,63 @@ module Orb
2479
4513
  ONE_TIME = :one_time
2480
4514
  CUSTOM = :custom
2481
4515
 
2482
- # @!method self.values
2483
- # @return [Array<Symbol>]
4516
+ # @!method self.values
4517
+ # @return [Array<Symbol>]
4518
+ end
4519
+
4520
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds#grouped_with_min_max_thresholds_config
4521
+ class GroupedWithMinMaxThresholdsConfig < Orb::Internal::Type::BaseModel
4522
+ # @!attribute grouping_key
4523
+ # The event property used to group before applying thresholds
4524
+ #
4525
+ # @return [String]
4526
+ required :grouping_key, String
4527
+
4528
+ # @!attribute maximum_charge
4529
+ # The maximum amount to charge each group
4530
+ #
4531
+ # @return [String]
4532
+ required :maximum_charge, String
4533
+
4534
+ # @!attribute minimum_charge
4535
+ # The minimum amount to charge each group, regardless of usage
4536
+ #
4537
+ # @return [String]
4538
+ required :minimum_charge, String
4539
+
4540
+ # @!attribute per_unit_rate
4541
+ # The base price charged per group
4542
+ #
4543
+ # @return [String]
4544
+ required :per_unit_rate, String
4545
+
4546
+ # @!method initialize(grouping_key:, maximum_charge:, minimum_charge:, per_unit_rate:)
4547
+ # Configuration for grouped_with_min_max_thresholds pricing
4548
+ #
4549
+ # @param grouping_key [String] The event property used to group before applying thresholds
4550
+ #
4551
+ # @param maximum_charge [String] The maximum amount to charge each group
4552
+ #
4553
+ # @param minimum_charge [String] The minimum amount to charge each group, regardless of usage
4554
+ #
4555
+ # @param per_unit_rate [String] The base price charged per group
2484
4556
  end
2485
4557
  end
2486
4558
 
2487
- class TieredWithProration < Orb::Internal::Type::BaseModel
4559
+ class CumulativeGroupedAllocation < Orb::Internal::Type::BaseModel
2488
4560
  # @!attribute cadence
2489
4561
  # The cadence to bill for this price on.
2490
4562
  #
2491
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence]
4563
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence]
2492
4564
  required :cadence,
2493
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence }
4565
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence }
4566
+
4567
+ # @!attribute cumulative_grouped_allocation_config
4568
+ # Configuration for cumulative_grouped_allocation pricing
4569
+ #
4570
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig]
4571
+ required :cumulative_grouped_allocation_config,
4572
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig }
2494
4573
 
2495
4574
  # @!attribute item_id
2496
4575
  # The id of the item the price will be associated with.
@@ -2501,8 +4580,8 @@ module Orb
2501
4580
  # @!attribute model_type
2502
4581
  # The pricing model type
2503
4582
  #
2504
- # @return [Symbol, :tiered_with_proration]
2505
- required :model_type, const: :tiered_with_proration
4583
+ # @return [Symbol, :cumulative_grouped_allocation]
4584
+ required :model_type, const: :cumulative_grouped_allocation
2506
4585
 
2507
4586
  # @!attribute name
2508
4587
  # The name of the price.
@@ -2510,13 +4589,6 @@ module Orb
2510
4589
  # @return [String]
2511
4590
  required :name, String
2512
4591
 
2513
- # @!attribute tiered_with_proration_config
2514
- # Configuration for tiered_with_proration pricing
2515
- #
2516
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig]
2517
- required :tiered_with_proration_config,
2518
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig }
2519
-
2520
4592
  # @!attribute billable_metric_id
2521
4593
  # The id of the billable metric for the price. Only needed if the price is
2522
4594
  # usage-based.
@@ -2548,11 +4620,7 @@ module Orb
2548
4620
  # The configuration for the rate of the price currency to the invoicing currency.
2549
4621
  #
2550
4622
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2551
- optional :conversion_rate_config,
2552
- union: -> {
2553
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::ConversionRateConfig
2554
- },
2555
- nil?: true
4623
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2556
4624
 
2557
4625
  # @!attribute currency
2558
4626
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -2618,19 +4686,19 @@ module Orb
2618
4686
  # @return [String, nil]
2619
4687
  optional :reference_id, String, nil?: true
2620
4688
 
2621
- # @!method initialize(cadence:, item_id:, name:, tiered_with_proration_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_with_proration)
4689
+ # @!method initialize(cadence:, cumulative_grouped_allocation_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :cumulative_grouped_allocation)
2622
4690
  # Some parameter documentations has been truncated, see
2623
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration}
4691
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation}
2624
4692
  # for more details.
2625
4693
  #
2626
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::Cadence] The cadence to bill for this price on.
4694
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence] The cadence to bill for this price on.
4695
+ #
4696
+ # @param cumulative_grouped_allocation_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig] Configuration for cumulative_grouped_allocation pricing
2627
4697
  #
2628
4698
  # @param item_id [String] The id of the item the price will be associated with.
2629
4699
  #
2630
4700
  # @param name [String] The name of the price.
2631
4701
  #
2632
- # @param tiered_with_proration_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig] Configuration for tiered_with_proration pricing
2633
- #
2634
4702
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
2635
4703
  #
2636
4704
  # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
@@ -2659,11 +4727,11 @@ module Orb
2659
4727
  #
2660
4728
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2661
4729
  #
2662
- # @param model_type [Symbol, :tiered_with_proration] The pricing model type
4730
+ # @param model_type [Symbol, :cumulative_grouped_allocation] The pricing model type
2663
4731
 
2664
4732
  # The cadence to bill for this price on.
2665
4733
  #
2666
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration#cadence
4734
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation#cadence
2667
4735
  module Cadence
2668
4736
  extend Orb::Internal::Type::Enum
2669
4737
 
@@ -2678,66 +4746,59 @@ module Orb
2678
4746
  # @return [Array<Symbol>]
2679
4747
  end
2680
4748
 
2681
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration#tiered_with_proration_config
2682
- class TieredWithProrationConfig < Orb::Internal::Type::BaseModel
2683
- # @!attribute tiers
2684
- # Tiers for rating based on total usage quantities into the specified tier with
2685
- # proration
4749
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation#cumulative_grouped_allocation_config
4750
+ class CumulativeGroupedAllocationConfig < Orb::Internal::Type::BaseModel
4751
+ # @!attribute cumulative_allocation
4752
+ # The overall allocation across all groups
2686
4753
  #
2687
- # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>]
2688
- required :tiers,
2689
- -> do
2690
- Orb::Internal::Type::ArrayOf[
2691
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier
2692
- ]
2693
- end
4754
+ # @return [String]
4755
+ required :cumulative_allocation, String
2694
4756
 
2695
- # @!method initialize(tiers:)
2696
- # Some parameter documentations has been truncated, see
2697
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig}
2698
- # for more details.
2699
- #
2700
- # Configuration for tiered_with_proration pricing
4757
+ # @!attribute group_allocation
4758
+ # The allocation per individual group
2701
4759
  #
2702
- # @param tiers [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration::TieredWithProrationConfig::Tier>] Tiers for rating based on total usage quantities into the specified tier with pr
4760
+ # @return [String]
4761
+ required :group_allocation, String
2703
4762
 
2704
- class Tier < Orb::Internal::Type::BaseModel
2705
- # @!attribute tier_lower_bound
2706
- # Inclusive tier starting value
2707
- #
2708
- # @return [String]
2709
- required :tier_lower_bound, String
4763
+ # @!attribute grouping_key
4764
+ # The event property used to group usage before applying allocations
4765
+ #
4766
+ # @return [String]
4767
+ required :grouping_key, String
2710
4768
 
2711
- # @!attribute unit_amount
2712
- # Amount per unit
2713
- #
2714
- # @return [String]
2715
- required :unit_amount, String
4769
+ # @!attribute unit_amount
4770
+ # The amount to charge for each unit outside of the allocation
4771
+ #
4772
+ # @return [String]
4773
+ required :unit_amount, String
2716
4774
 
2717
- # @!method initialize(tier_lower_bound:, unit_amount:)
2718
- # Configuration for a single tiered with proration tier
2719
- #
2720
- # @param tier_lower_bound [String] Inclusive tier starting value
2721
- #
2722
- # @param unit_amount [String] Amount per unit
2723
- end
4775
+ # @!method initialize(cumulative_allocation:, group_allocation:, grouping_key:, unit_amount:)
4776
+ # Configuration for cumulative_grouped_allocation pricing
4777
+ #
4778
+ # @param cumulative_allocation [String] The overall allocation across all groups
4779
+ #
4780
+ # @param group_allocation [String] The allocation per individual group
4781
+ #
4782
+ # @param grouping_key [String] The event property used to group usage before applying allocations
4783
+ #
4784
+ # @param unit_amount [String] The amount to charge for each unit outside of the allocation
2724
4785
  end
2725
4786
  end
2726
4787
 
2727
- class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
4788
+ class DailyCreditAllowance < Orb::Internal::Type::BaseModel
2728
4789
  # @!attribute cadence
2729
4790
  # The cadence to bill for this price on.
2730
4791
  #
2731
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence]
4792
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::Cadence]
2732
4793
  required :cadence,
2733
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence }
4794
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::Cadence }
2734
4795
 
2735
- # @!attribute grouped_with_min_max_thresholds_config
2736
- # Configuration for grouped_with_min_max_thresholds pricing
4796
+ # @!attribute daily_credit_allowance_config
4797
+ # Configuration for daily_credit_allowance pricing
2737
4798
  #
2738
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig]
2739
- required :grouped_with_min_max_thresholds_config,
2740
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig }
4799
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig]
4800
+ required :daily_credit_allowance_config,
4801
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig }
2741
4802
 
2742
4803
  # @!attribute item_id
2743
4804
  # The id of the item the price will be associated with.
@@ -2748,8 +4809,8 @@ module Orb
2748
4809
  # @!attribute model_type
2749
4810
  # The pricing model type
2750
4811
  #
2751
- # @return [Symbol, :grouped_with_min_max_thresholds]
2752
- required :model_type, const: :grouped_with_min_max_thresholds
4812
+ # @return [Symbol, :daily_credit_allowance]
4813
+ required :model_type, const: :daily_credit_allowance
2753
4814
 
2754
4815
  # @!attribute name
2755
4816
  # The name of the price.
@@ -2788,11 +4849,7 @@ module Orb
2788
4849
  # The configuration for the rate of the price currency to the invoicing currency.
2789
4850
  #
2790
4851
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
2791
- optional :conversion_rate_config,
2792
- union: -> {
2793
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::ConversionRateConfig
2794
- },
2795
- nil?: true
4852
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
2796
4853
 
2797
4854
  # @!attribute currency
2798
4855
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -2858,14 +4915,14 @@ module Orb
2858
4915
  # @return [String, nil]
2859
4916
  optional :reference_id, String, nil?: true
2860
4917
 
2861
- # @!method initialize(cadence:, grouped_with_min_max_thresholds_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :grouped_with_min_max_thresholds)
4918
+ # @!method initialize(cadence:, daily_credit_allowance_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :daily_credit_allowance)
2862
4919
  # Some parameter documentations has been truncated, see
2863
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds}
4920
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance}
2864
4921
  # for more details.
2865
4922
  #
2866
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::Cadence] The cadence to bill for this price on.
4923
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::Cadence] The cadence to bill for this price on.
2867
4924
  #
2868
- # @param grouped_with_min_max_thresholds_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds::GroupedWithMinMaxThresholdsConfig] Configuration for grouped_with_min_max_thresholds pricing
4925
+ # @param daily_credit_allowance_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig] Configuration for daily_credit_allowance pricing
2869
4926
  #
2870
4927
  # @param item_id [String] The id of the item the price will be associated with.
2871
4928
  #
@@ -2899,11 +4956,11 @@ module Orb
2899
4956
  #
2900
4957
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
2901
4958
  #
2902
- # @param model_type [Symbol, :grouped_with_min_max_thresholds] The pricing model type
4959
+ # @param model_type [Symbol, :daily_credit_allowance] The pricing model type
2903
4960
 
2904
4961
  # The cadence to bill for this price on.
2905
4962
  #
2906
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds#cadence
4963
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance#cadence
2907
4964
  module Cadence
2908
4965
  extend Orb::Internal::Type::Enum
2909
4966
 
@@ -2918,59 +4975,99 @@ module Orb
2918
4975
  # @return [Array<Symbol>]
2919
4976
  end
2920
4977
 
2921
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds#grouped_with_min_max_thresholds_config
2922
- class GroupedWithMinMaxThresholdsConfig < Orb::Internal::Type::BaseModel
2923
- # @!attribute grouping_key
2924
- # The event property used to group before applying thresholds
4978
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance#daily_credit_allowance_config
4979
+ class DailyCreditAllowanceConfig < Orb::Internal::Type::BaseModel
4980
+ # @!attribute daily_allowance
4981
+ # Credits granted per day. Lose-it-or-use-it; does not roll over.
2925
4982
  #
2926
4983
  # @return [String]
2927
- required :grouping_key, String
4984
+ required :daily_allowance, String
2928
4985
 
2929
- # @!attribute maximum_charge
2930
- # The maximum amount to charge each group
4986
+ # @!attribute default_unit_amount
4987
+ # Default per-unit credit rate for any usage not bucketed into a specified
4988
+ # matrix_value
2931
4989
  #
2932
4990
  # @return [String]
2933
- required :maximum_charge, String
4991
+ required :default_unit_amount, String
2934
4992
 
2935
- # @!attribute minimum_charge
2936
- # The minimum amount to charge each group, regardless of usage
4993
+ # @!attribute dimensions
4994
+ # One or two event property values to evaluate matrix groups by
2937
4995
  #
2938
- # @return [String]
2939
- required :minimum_charge, String
4996
+ # @return [Array<String, nil>]
4997
+ required :dimensions, Orb::Internal::Type::ArrayOf[String, nil?: true]
2940
4998
 
2941
- # @!attribute per_unit_rate
2942
- # The base price charged per group
4999
+ # @!attribute event_day_property
5000
+ # Event property whose value identifies the day bucket the event belongs to (e.g.
5001
+ # 'event_day' set to an ISO date string in the customer's timezone). The allowance
5002
+ # resets per distinct value of this property.
2943
5003
  #
2944
5004
  # @return [String]
2945
- required :per_unit_rate, String
5005
+ required :event_day_property, String
2946
5006
 
2947
- # @!method initialize(grouping_key:, maximum_charge:, minimum_charge:, per_unit_rate:)
2948
- # Configuration for grouped_with_min_max_thresholds pricing
5007
+ # @!attribute matrix_values
5008
+ # Per-dimension credit rates
2949
5009
  #
2950
- # @param grouping_key [String] The event property used to group before applying thresholds
5010
+ # @return [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>]
5011
+ required :matrix_values,
5012
+ -> do
5013
+ Orb::Internal::Type::ArrayOf[
5014
+ Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue
5015
+ ]
5016
+ end
5017
+
5018
+ # @!method initialize(daily_allowance:, default_unit_amount:, dimensions:, event_day_property:, matrix_values:)
5019
+ # Some parameter documentations has been truncated, see
5020
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig}
5021
+ # for more details.
2951
5022
  #
2952
- # @param maximum_charge [String] The maximum amount to charge each group
5023
+ # Configuration for daily_credit_allowance pricing
2953
5024
  #
2954
- # @param minimum_charge [String] The minimum amount to charge each group, regardless of usage
5025
+ # @param daily_allowance [String] Credits granted per day. Lose-it-or-use-it; does not roll over.
2955
5026
  #
2956
- # @param per_unit_rate [String] The base price charged per group
5027
+ # @param default_unit_amount [String] Default per-unit credit rate for any usage not bucketed into a specified
5028
+ # matrix\_
5029
+ #
5030
+ # @param dimensions [Array<String, nil>] One or two event property values to evaluate matrix groups by
5031
+ #
5032
+ # @param event_day_property [String] Event property whose value identifies the day bucket the event belongs to (e.g.
5033
+ #
5034
+ # @param matrix_values [Array<Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>] Per-dimension credit rates
5035
+
5036
+ class MatrixValue < Orb::Internal::Type::BaseModel
5037
+ # @!attribute dimension_values
5038
+ # One or two matrix keys to filter usage to this value by. For example, ["model"]
5039
+ # could be used to apply a different credit rate to each AI model.
5040
+ #
5041
+ # @return [Array<String, nil>]
5042
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String, nil?: true]
5043
+
5044
+ # @!attribute unit_amount
5045
+ # Credits charged per unit of usage matching the specified dimension_values
5046
+ #
5047
+ # @return [String]
5048
+ required :unit_amount, String
5049
+
5050
+ # @!method initialize(dimension_values:, unit_amount:)
5051
+ # Some parameter documentations has been truncated, see
5052
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue}
5053
+ # for more details.
5054
+ #
5055
+ # Per-dimension credit price for the daily credit allowance model.
5056
+ #
5057
+ # @param dimension_values [Array<String, nil>] One or two matrix keys to filter usage to this value by. For example, ["model"]
5058
+ #
5059
+ # @param unit_amount [String] Credits charged per unit of usage matching the specified dimension_values
5060
+ end
2957
5061
  end
2958
5062
  end
2959
5063
 
2960
- class CumulativeGroupedAllocation < Orb::Internal::Type::BaseModel
5064
+ class MeteredAllowance < Orb::Internal::Type::BaseModel
2961
5065
  # @!attribute cadence
2962
5066
  # The cadence to bill for this price on.
2963
5067
  #
2964
- # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence]
5068
+ # @return [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::Cadence]
2965
5069
  required :cadence,
2966
- enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence }
2967
-
2968
- # @!attribute cumulative_grouped_allocation_config
2969
- # Configuration for cumulative_grouped_allocation pricing
2970
- #
2971
- # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig]
2972
- required :cumulative_grouped_allocation_config,
2973
- -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig }
5070
+ enum: -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::Cadence }
2974
5071
 
2975
5072
  # @!attribute item_id
2976
5073
  # The id of the item the price will be associated with.
@@ -2978,11 +5075,18 @@ module Orb
2978
5075
  # @return [String]
2979
5076
  required :item_id, String
2980
5077
 
5078
+ # @!attribute metered_allowance_config
5079
+ # Configuration for metered_allowance pricing
5080
+ #
5081
+ # @return [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::MeteredAllowanceConfig]
5082
+ required :metered_allowance_config,
5083
+ -> { Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::MeteredAllowanceConfig }
5084
+
2981
5085
  # @!attribute model_type
2982
5086
  # The pricing model type
2983
5087
  #
2984
- # @return [Symbol, :cumulative_grouped_allocation]
2985
- required :model_type, const: :cumulative_grouped_allocation
5088
+ # @return [Symbol, :metered_allowance]
5089
+ required :model_type, const: :metered_allowance
2986
5090
 
2987
5091
  # @!attribute name
2988
5092
  # The name of the price.
@@ -3021,11 +5125,7 @@ module Orb
3021
5125
  # The configuration for the rate of the price currency to the invoicing currency.
3022
5126
  #
3023
5127
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
3024
- optional :conversion_rate_config,
3025
- union: -> {
3026
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::ConversionRateConfig
3027
- },
3028
- nil?: true
5128
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
3029
5129
 
3030
5130
  # @!attribute currency
3031
5131
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -3091,17 +5191,17 @@ module Orb
3091
5191
  # @return [String, nil]
3092
5192
  optional :reference_id, String, nil?: true
3093
5193
 
3094
- # @!method initialize(cadence:, cumulative_grouped_allocation_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :cumulative_grouped_allocation)
5194
+ # @!method initialize(cadence:, item_id:, metered_allowance_config:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :metered_allowance)
3095
5195
  # Some parameter documentations has been truncated, see
3096
- # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation}
5196
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance}
3097
5197
  # for more details.
3098
5198
  #
3099
- # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::Cadence] The cadence to bill for this price on.
3100
- #
3101
- # @param cumulative_grouped_allocation_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation::CumulativeGroupedAllocationConfig] Configuration for cumulative_grouped_allocation pricing
5199
+ # @param cadence [Symbol, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::Cadence] The cadence to bill for this price on.
3102
5200
  #
3103
5201
  # @param item_id [String] The id of the item the price will be associated with.
3104
5202
  #
5203
+ # @param metered_allowance_config [Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::MeteredAllowanceConfig] Configuration for metered_allowance pricing
5204
+ #
3105
5205
  # @param name [String] The name of the price.
3106
5206
  #
3107
5207
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
@@ -3132,11 +5232,11 @@ module Orb
3132
5232
  #
3133
5233
  # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
3134
5234
  #
3135
- # @param model_type [Symbol, :cumulative_grouped_allocation] The pricing model type
5235
+ # @param model_type [Symbol, :metered_allowance] The pricing model type
3136
5236
 
3137
5237
  # The cadence to bill for this price on.
3138
5238
  #
3139
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation#cadence
5239
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance#cadence
3140
5240
  module Cadence
3141
5241
  extend Orb::Internal::Type::Enum
3142
5242
 
@@ -3151,42 +5251,67 @@ module Orb
3151
5251
  # @return [Array<Symbol>]
3152
5252
  end
3153
5253
 
3154
- # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation#cumulative_grouped_allocation_config
3155
- class CumulativeGroupedAllocationConfig < Orb::Internal::Type::BaseModel
3156
- # @!attribute cumulative_allocation
3157
- # The overall allocation across all groups
5254
+ # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance#metered_allowance_config
5255
+ class MeteredAllowanceConfig < Orb::Internal::Type::BaseModel
5256
+ # @!attribute allowance_grouping_value
5257
+ # The grouping_key value whose summed quantity represents the allowance for this
5258
+ # period (e.g. 'storage_snapshot' emitting 3 × avg storage). Capped at consumption
5259
+ # — credit can never exceed actual usage.
3158
5260
  #
3159
5261
  # @return [String]
3160
- required :cumulative_allocation, String
5262
+ required :allowance_grouping_value, String
3161
5263
 
3162
- # @!attribute group_allocation
3163
- # The allocation per individual group
5264
+ # @!attribute consumption_grouping_value
5265
+ # The grouping_key value whose summed quantity represents consumption (e.g.
5266
+ # 'download'). Charged at unit_amount.
3164
5267
  #
3165
5268
  # @return [String]
3166
- required :group_allocation, String
5269
+ required :consumption_grouping_value, String
3167
5270
 
3168
5271
  # @!attribute grouping_key
3169
- # The event property used to group usage before applying allocations
5272
+ # Event property used to partition the metric into consumption and allowance
5273
+ # quantities (e.g. 'event_name'). The metric is queried with this key and the two
5274
+ # values below select which partition is which.
3170
5275
  #
3171
5276
  # @return [String]
3172
5277
  required :grouping_key, String
3173
5278
 
3174
5279
  # @!attribute unit_amount
3175
- # The amount to charge for each unit outside of the allocation
5280
+ # Per-unit price applied to gross consumption and to the allowance credit.
3176
5281
  #
3177
5282
  # @return [String]
3178
5283
  required :unit_amount, String
3179
5284
 
3180
- # @!method initialize(cumulative_allocation:, group_allocation:, grouping_key:, unit_amount:)
3181
- # Configuration for cumulative_grouped_allocation pricing
5285
+ # @!attribute allowance_display_name
5286
+ # Sub-line label for the credit row (e.g. 'Up to 3x free egress').
3182
5287
  #
3183
- # @param cumulative_allocation [String] The overall allocation across all groups
5288
+ # @return [String, nil]
5289
+ optional :allowance_display_name, String
5290
+
5291
+ # @!attribute consumption_display_name
5292
+ # Sub-line label for the gross consumption row (e.g. 'bytes gotten').
3184
5293
  #
3185
- # @param group_allocation [String] The allocation per individual group
5294
+ # @return [String, nil]
5295
+ optional :consumption_display_name, String
5296
+
5297
+ # @!method initialize(allowance_grouping_value:, consumption_grouping_value:, grouping_key:, unit_amount:, allowance_display_name: nil, consumption_display_name: nil)
5298
+ # Some parameter documentations has been truncated, see
5299
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance::MeteredAllowanceConfig}
5300
+ # for more details.
3186
5301
  #
3187
- # @param grouping_key [String] The event property used to group usage before applying allocations
5302
+ # Configuration for metered_allowance pricing
3188
5303
  #
3189
- # @param unit_amount [String] The amount to charge for each unit outside of the allocation
5304
+ # @param allowance_grouping_value [String] The grouping_key value whose summed quantity represents the allowance for this p
5305
+ #
5306
+ # @param consumption_grouping_value [String] The grouping_key value whose summed quantity represents consumption (e.g. 'downl
5307
+ #
5308
+ # @param grouping_key [String] Event property used to partition the metric into consumption and allowance quant
5309
+ #
5310
+ # @param unit_amount [String] Per-unit price applied to gross consumption and to the allowance credit.
5311
+ #
5312
+ # @param allowance_display_name [String] Sub-line label for the credit row (e.g. 'Up to 3x free egress').
5313
+ #
5314
+ # @param consumption_display_name [String] Sub-line label for the gross consumption row (e.g. 'bytes gotten').
3190
5315
  end
3191
5316
  end
3192
5317
 
@@ -3254,11 +5379,7 @@ module Orb
3254
5379
  # The configuration for the rate of the price currency to the invoicing currency.
3255
5380
  #
3256
5381
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
3257
- optional :conversion_rate_config,
3258
- union: -> {
3259
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent::ConversionRateConfig
3260
- },
3261
- nil?: true
5382
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
3262
5383
 
3263
5384
  # @!attribute currency
3264
5385
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -3387,15 +5508,45 @@ module Orb
3387
5508
  # @see Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent#percent_config
3388
5509
  class PercentConfig < Orb::Internal::Type::BaseModel
3389
5510
  # @!attribute percent
3390
- # What percent of the component subtotals to charge
5511
+ # Fraction of the component subtotals to charge (0 < percent <= 1).
3391
5512
  #
3392
5513
  # @return [Float]
3393
5514
  required :percent, Float
3394
5515
 
3395
- # @!method initialize(percent:)
5516
+ # @!attribute maximum_amount
5517
+ # Maximum amount to charge. If unset, the fee has no upper bound.
5518
+ #
5519
+ # @return [String, nil]
5520
+ optional :maximum_amount, String, nil?: true
5521
+
5522
+ # @!attribute minimum_amount
5523
+ # Minimum amount to charge. If unset, the fee is bounded below by 0.
5524
+ #
5525
+ # @return [String, nil]
5526
+ optional :minimum_amount, String, nil?: true
5527
+
5528
+ # @!attribute prorated
5529
+ # If true, the minimum_amount is prorated based on the service period. The
5530
+ # maximum_amount is an absolute cap (never prorated), and the percent applied to
5531
+ # upstream subtotals is never prorated either.
5532
+ #
5533
+ # @return [Boolean, nil]
5534
+ optional :prorated, Orb::Internal::Type::Boolean
5535
+
5536
+ # @!method initialize(percent:, maximum_amount: nil, minimum_amount: nil, prorated: nil)
5537
+ # Some parameter documentations has been truncated, see
5538
+ # {Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent::PercentConfig}
5539
+ # for more details.
5540
+ #
3396
5541
  # Configuration for percent pricing
3397
5542
  #
3398
- # @param percent [Float] What percent of the component subtotals to charge
5543
+ # @param percent [Float] Fraction of the component subtotals to charge (0 < percent <= 1).
5544
+ #
5545
+ # @param maximum_amount [String, nil] Maximum amount to charge. If unset, the fee has no upper bound.
5546
+ #
5547
+ # @param minimum_amount [String, nil] Minimum amount to charge. If unset, the fee is bounded below by 0.
5548
+ #
5549
+ # @param prorated [Boolean] If true, the minimum_amount is prorated based on the service period. The maximum
3399
5550
  end
3400
5551
  end
3401
5552
 
@@ -3463,11 +5614,7 @@ module Orb
3463
5614
  # The configuration for the rate of the price currency to the invoicing currency.
3464
5615
  #
3465
5616
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
3466
- optional :conversion_rate_config,
3467
- union: -> {
3468
- Orb::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput::ConversionRateConfig
3469
- },
3470
- nil?: true
5617
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
3471
5618
 
3472
5619
  # @!attribute currency
3473
5620
  # An ISO 4217 currency string, or custom pricing unit identifier, in which this
@@ -3632,7 +5779,7 @@ module Orb
3632
5779
  end
3633
5780
 
3634
5781
  # @!method self.variants
3635
- # @return [Array(Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput)]
5782
+ # @return [Array(Orb::Models::NewSubscriptionUnitPrice, Orb::Models::NewSubscriptionTieredPrice, Orb::Models::NewSubscriptionBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewSubscriptionPackagePrice, Orb::Models::NewSubscriptionMatrixPrice, Orb::Models::NewSubscriptionThresholdTotalAmountPrice, Orb::Models::NewSubscriptionTieredPackagePrice, Orb::Models::NewSubscriptionTieredWithMinimumPrice, Orb::Models::NewSubscriptionGroupedTieredPrice, Orb::Models::NewSubscriptionTieredPackageWithMinimumPrice, Orb::Models::NewSubscriptionPackageWithAllocationPrice, Orb::Models::NewSubscriptionUnitWithPercentPrice, Orb::Models::NewSubscriptionMatrixWithAllocationPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewSubscriptionUnitWithProrationPrice, Orb::Models::NewSubscriptionGroupedAllocationPrice, Orb::Models::NewSubscriptionBulkWithProrationPrice, Orb::Models::NewSubscriptionGroupedWithProratedMinimumPrice, Orb::Models::NewSubscriptionGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewSubscriptionMatrixWithDisplayNamePrice, Orb::Models::NewSubscriptionGroupedTieredPackagePrice, Orb::Models::NewSubscriptionMaxGroupTieredPackagePrice, Orb::Models::NewSubscriptionScalableMatrixWithUnitPricingPrice, Orb::Models::NewSubscriptionScalableMatrixWithTieredPricingPrice, Orb::Models::NewSubscriptionCumulativeGroupedBulkPrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewSubscriptionMinimumCompositePrice, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::Percent, Orb::Models::SubscriptionSchedulePlanChangeParams::ReplacePrice::Price::EventOutput)]
3636
5783
  end
3637
5784
  end
3638
5785
  end