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
@@ -163,7 +163,7 @@ module Orb
163
163
  # @!attribute price
164
164
  # New floating price request body params.
165
165
  #
166
- # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput, nil]
166
+ # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput, nil]
167
167
  optional :price, union: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price }, nil?: true
168
168
 
169
169
  # @!attribute price_id
@@ -209,7 +209,7 @@ module Orb
209
209
  #
210
210
  # @param minimum_amount [Float, nil] The minimum amount that will be billed for this price interval for a given billi
211
211
  #
212
- # @param price [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput, nil] New floating price request body params.
212
+ # @param price [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput, nil] New floating price request body params.
213
213
  #
214
214
  # @param price_id [String, nil] The id of the price to add to the subscription.
215
215
  #
@@ -379,6 +379,9 @@ module Orb
379
379
 
380
380
  variant :matrix_with_allocation, -> { Orb::NewFloatingMatrixWithAllocationPrice }
381
381
 
382
+ variant :matrix_with_threshold_discounts,
383
+ -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts }
384
+
382
385
  variant :tiered_with_proration, -> { Orb::NewFloatingTieredWithProrationPrice }
383
386
 
384
387
  variant :unit_with_proration, -> { Orb::NewFloatingUnitWithProrationPrice }
@@ -409,6 +412,11 @@ module Orb
409
412
  variant :cumulative_grouped_allocation,
410
413
  -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation }
411
414
 
415
+ variant :daily_credit_allowance,
416
+ -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance }
417
+
418
+ variant :metered_allowance, -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance }
419
+
412
420
  variant :minimum_composite, -> { Orb::NewFloatingMinimumCompositePrice }
413
421
 
414
422
  variant :percent, -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent }
@@ -485,11 +493,7 @@ module Orb
485
493
  # The configuration for the rate of the price currency to the invoicing currency.
486
494
  #
487
495
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
488
- optional :conversion_rate_config,
489
- union: -> {
490
- Orb::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters::ConversionRateConfig
491
- },
492
- nil?: true
496
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
493
497
 
494
498
  # @!attribute dimensional_price_configuration
495
499
  # For dimensional price: specifies a price group and dimension values
@@ -666,6 +670,312 @@ module Orb
666
670
  end
667
671
  end
668
672
 
673
+ class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
674
+ # @!attribute cadence
675
+ # The cadence to bill for this price on.
676
+ #
677
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::Cadence]
678
+ required :cadence,
679
+ enum: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::Cadence }
680
+
681
+ # @!attribute currency
682
+ # An ISO 4217 currency string for which this price is billed in.
683
+ #
684
+ # @return [String]
685
+ required :currency, String
686
+
687
+ # @!attribute item_id
688
+ # The id of the item the price will be associated with.
689
+ #
690
+ # @return [String]
691
+ required :item_id, String
692
+
693
+ # @!attribute matrix_with_threshold_discounts_config
694
+ # Configuration for matrix_with_threshold_discounts pricing
695
+ #
696
+ # @return [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig]
697
+ required :matrix_with_threshold_discounts_config,
698
+ -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig }
699
+
700
+ # @!attribute model_type
701
+ # The pricing model type
702
+ #
703
+ # @return [Symbol, :matrix_with_threshold_discounts]
704
+ required :model_type, const: :matrix_with_threshold_discounts
705
+
706
+ # @!attribute name
707
+ # The name of the price.
708
+ #
709
+ # @return [String]
710
+ required :name, String
711
+
712
+ # @!attribute billable_metric_id
713
+ # The id of the billable metric for the price. Only needed if the price is
714
+ # usage-based.
715
+ #
716
+ # @return [String, nil]
717
+ optional :billable_metric_id, String, nil?: true
718
+
719
+ # @!attribute billed_in_advance
720
+ # If the Price represents a fixed cost, the price will be billed in-advance if
721
+ # this is true, and in-arrears if this is false.
722
+ #
723
+ # @return [Boolean, nil]
724
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
725
+
726
+ # @!attribute billing_cycle_configuration
727
+ # For custom cadence: specifies the duration of the billing period in days or
728
+ # months.
729
+ #
730
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
731
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
732
+
733
+ # @!attribute conversion_rate
734
+ # The per unit conversion rate of the price currency to the invoicing currency.
735
+ #
736
+ # @return [Float, nil]
737
+ optional :conversion_rate, Float, nil?: true
738
+
739
+ # @!attribute conversion_rate_config
740
+ # The configuration for the rate of the price currency to the invoicing currency.
741
+ #
742
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
743
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
744
+
745
+ # @!attribute dimensional_price_configuration
746
+ # For dimensional price: specifies a price group and dimension values
747
+ #
748
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
749
+ optional :dimensional_price_configuration,
750
+ -> {
751
+ Orb::NewDimensionalPriceConfiguration
752
+ },
753
+ nil?: true
754
+
755
+ # @!attribute external_price_id
756
+ # An alias for the price.
757
+ #
758
+ # @return [String, nil]
759
+ optional :external_price_id, String, nil?: true
760
+
761
+ # @!attribute fixed_price_quantity
762
+ # If the Price represents a fixed cost, this represents the quantity of units
763
+ # applied.
764
+ #
765
+ # @return [Float, nil]
766
+ optional :fixed_price_quantity, Float, nil?: true
767
+
768
+ # @!attribute invoice_grouping_key
769
+ # The property used to group this price on an invoice
770
+ #
771
+ # @return [String, nil]
772
+ optional :invoice_grouping_key, String, nil?: true
773
+
774
+ # @!attribute invoicing_cycle_configuration
775
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
776
+ # If unspecified, a single invoice is produced per billing cycle.
777
+ #
778
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
779
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
780
+
781
+ # @!attribute license_type_id
782
+ # The ID of the license type to associate with this price.
783
+ #
784
+ # @return [String, nil]
785
+ optional :license_type_id, String, nil?: true
786
+
787
+ # @!attribute metadata
788
+ # User-specified key/value pairs for the resource. Individual keys can be removed
789
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
790
+ # by setting `metadata` to `null`.
791
+ #
792
+ # @return [Hash{Symbol=>String, nil}, nil]
793
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
794
+
795
+ # @!method initialize(cadence:, currency:, 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, 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, model_type: :matrix_with_threshold_discounts)
796
+ # Some parameter documentations has been truncated, see
797
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts}
798
+ # for more details.
799
+ #
800
+ # @param cadence [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::Cadence] The cadence to bill for this price on.
801
+ #
802
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
803
+ #
804
+ # @param item_id [String] The id of the item the price will be associated with.
805
+ #
806
+ # @param matrix_with_threshold_discounts_config [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig] Configuration for matrix_with_threshold_discounts pricing
807
+ #
808
+ # @param name [String] The name of the price.
809
+ #
810
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
811
+ #
812
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
813
+ #
814
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
815
+ #
816
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
817
+ #
818
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
819
+ #
820
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
821
+ #
822
+ # @param external_price_id [String, nil] An alias for the price.
823
+ #
824
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
825
+ #
826
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
827
+ #
828
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
829
+ #
830
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
831
+ #
832
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
833
+ #
834
+ # @param model_type [Symbol, :matrix_with_threshold_discounts] The pricing model type
835
+
836
+ # The cadence to bill for this price on.
837
+ #
838
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts#cadence
839
+ module Cadence
840
+ extend Orb::Internal::Type::Enum
841
+
842
+ ANNUAL = :annual
843
+ SEMI_ANNUAL = :semi_annual
844
+ MONTHLY = :monthly
845
+ QUARTERLY = :quarterly
846
+ ONE_TIME = :one_time
847
+ CUSTOM = :custom
848
+
849
+ # @!method self.values
850
+ # @return [Array<Symbol>]
851
+ end
852
+
853
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts#matrix_with_threshold_discounts_config
854
+ class MatrixWithThresholdDiscountsConfig < Orb::Internal::Type::BaseModel
855
+ # @!attribute default_unit_amount
856
+ # Unit price used for usage that does not match any defined matrix cell.
857
+ #
858
+ # @return [String]
859
+ required :default_unit_amount, String
860
+
861
+ # @!attribute first_dimension
862
+ # First matrix dimension key.
863
+ #
864
+ # @return [String]
865
+ required :first_dimension, String
866
+
867
+ # @!attribute matrix_values
868
+ # Per-cell unit prices.
869
+ #
870
+ # @return [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>]
871
+ required :matrix_values,
872
+ -> do
873
+ Orb::Internal::Type::ArrayOf[
874
+ Orb::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue
875
+ ]
876
+ end
877
+
878
+ # @!attribute second_dimension
879
+ # Optional second matrix dimension key.
880
+ #
881
+ # @return [String, nil]
882
+ optional :second_dimension, String, nil?: true
883
+
884
+ # @!attribute threshold_discount_groups
885
+ #
886
+ # @return [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>, nil]
887
+ optional :threshold_discount_groups,
888
+ -> do
889
+ Orb::Internal::Type::ArrayOf[
890
+ Orb::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup
891
+ ]
892
+ end
893
+
894
+ # @!method initialize(default_unit_amount:, first_dimension:, matrix_values:, second_dimension: nil, threshold_discount_groups: nil)
895
+ # Configuration for matrix_with_threshold_discounts pricing
896
+ #
897
+ # @param default_unit_amount [String] Unit price used for usage that does not match any defined matrix cell.
898
+ #
899
+ # @param first_dimension [String] First matrix dimension key.
900
+ #
901
+ # @param matrix_values [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::MatrixValue>] Per-cell unit prices.
902
+ #
903
+ # @param second_dimension [String, nil] Optional second matrix dimension key.
904
+ #
905
+ # @param threshold_discount_groups [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup>]
906
+
907
+ class MatrixValue < Orb::Internal::Type::BaseModel
908
+ # @!attribute first_dimension_value
909
+ #
910
+ # @return [String]
911
+ required :first_dimension_value, String
912
+
913
+ # @!attribute unit_amount
914
+ #
915
+ # @return [String]
916
+ required :unit_amount, String
917
+
918
+ # @!attribute second_dimension_value
919
+ #
920
+ # @return [String, nil]
921
+ optional :second_dimension_value, String, nil?: true
922
+
923
+ # @!method initialize(first_dimension_value:, unit_amount:, second_dimension_value: nil)
924
+ # @param first_dimension_value [String]
925
+ # @param unit_amount [String]
926
+ # @param second_dimension_value [String, nil]
927
+ end
928
+
929
+ class ThresholdDiscountGroup < Orb::Internal::Type::BaseModel
930
+ # @!attribute above_threshold_discount_percentage
931
+ # Discount rate applied to spend above the threshold.
932
+ #
933
+ # @return [String]
934
+ required :above_threshold_discount_percentage, String
935
+
936
+ # @!attribute below_threshold_discount_percentage
937
+ # Discount rate applied to spend at or below the threshold. Set to 0 for no
938
+ # baseline discount.
939
+ #
940
+ # @return [String]
941
+ required :below_threshold_discount_percentage, String
942
+
943
+ # @!attribute cell_coordinates
944
+ # Semicolon-separated list of matrix cell coordinates targeted by this group. Each
945
+ # coordinate is `first,second` when the matrix has two dimensions, or just `first`
946
+ # for a single-dimension matrix. Example: `blue,circle;green,triangle`.
947
+ #
948
+ # @return [String]
949
+ required :cell_coordinates, String
950
+
951
+ # @!attribute threshold_amount
952
+ #
953
+ # @return [String]
954
+ required :threshold_amount, String
955
+
956
+ # @!attribute description
957
+ #
958
+ # @return [String, nil]
959
+ optional :description, String, nil?: true
960
+
961
+ # @!method initialize(above_threshold_discount_percentage:, below_threshold_discount_percentage:, cell_coordinates:, threshold_amount:, description: nil)
962
+ # Some parameter documentations has been truncated, see
963
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts::MatrixWithThresholdDiscountsConfig::ThresholdDiscountGroup}
964
+ # for more details.
965
+ #
966
+ # @param above_threshold_discount_percentage [String] Discount rate applied to spend above the threshold.
967
+ #
968
+ # @param below_threshold_discount_percentage [String] Discount rate applied to spend at or below the threshold. Set to 0 for no baseli
969
+ #
970
+ # @param cell_coordinates [String] Semicolon-separated list of matrix cell coordinates targeted by this group. Each
971
+ #
972
+ # @param threshold_amount [String]
973
+ #
974
+ # @param description [String, nil]
975
+ end
976
+ end
977
+ end
978
+
669
979
  class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
670
980
  # @!attribute cadence
671
981
  # The cadence to bill for this price on.
@@ -736,11 +1046,7 @@ module Orb
736
1046
  # The configuration for the rate of the price currency to the invoicing currency.
737
1047
  #
738
1048
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
739
- optional :conversion_rate_config,
740
- union: -> {
741
- Orb::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds::ConversionRateConfig
742
- },
743
- nil?: true
1049
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
744
1050
 
745
1051
  # @!attribute dimensional_price_configuration
746
1052
  # For dimensional price: specifies a price group and dimension values
@@ -959,11 +1265,7 @@ module Orb
959
1265
  # The configuration for the rate of the price currency to the invoicing currency.
960
1266
  #
961
1267
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
962
- optional :conversion_rate_config,
963
- union: -> {
964
- Orb::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation::ConversionRateConfig
965
- },
966
- nil?: true
1268
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
967
1269
 
968
1270
  # @!attribute dimensional_price_configuration
969
1271
  # For dimensional price: specifies a price group and dimension values
@@ -1112,12 +1414,13 @@ module Orb
1112
1414
  end
1113
1415
  end
1114
1416
 
1115
- class Percent < Orb::Internal::Type::BaseModel
1417
+ class DailyCreditAllowance < Orb::Internal::Type::BaseModel
1116
1418
  # @!attribute cadence
1117
1419
  # The cadence to bill for this price on.
1118
1420
  #
1119
- # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence]
1120
- required :cadence, enum: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence }
1421
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::Cadence]
1422
+ required :cadence,
1423
+ enum: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::Cadence }
1121
1424
 
1122
1425
  # @!attribute currency
1123
1426
  # An ISO 4217 currency string for which this price is billed in.
@@ -1125,6 +1428,13 @@ module Orb
1125
1428
  # @return [String]
1126
1429
  required :currency, String
1127
1430
 
1431
+ # @!attribute daily_credit_allowance_config
1432
+ # Configuration for daily_credit_allowance pricing
1433
+ #
1434
+ # @return [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig]
1435
+ required :daily_credit_allowance_config,
1436
+ -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig }
1437
+
1128
1438
  # @!attribute item_id
1129
1439
  # The id of the item the price will be associated with.
1130
1440
  #
@@ -1134,8 +1444,8 @@ module Orb
1134
1444
  # @!attribute model_type
1135
1445
  # The pricing model type
1136
1446
  #
1137
- # @return [Symbol, :percent]
1138
- required :model_type, const: :percent
1447
+ # @return [Symbol, :daily_credit_allowance]
1448
+ required :model_type, const: :daily_credit_allowance
1139
1449
 
1140
1450
  # @!attribute name
1141
1451
  # The name of the price.
@@ -1143,12 +1453,6 @@ module Orb
1143
1453
  # @return [String]
1144
1454
  required :name, String
1145
1455
 
1146
- # @!attribute percent_config
1147
- # Configuration for percent pricing
1148
- #
1149
- # @return [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig]
1150
- required :percent_config, -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig }
1151
-
1152
1456
  # @!attribute billable_metric_id
1153
1457
  # The id of the billable metric for the price. Only needed if the price is
1154
1458
  # usage-based.
@@ -1180,11 +1484,7 @@ module Orb
1180
1484
  # The configuration for the rate of the price currency to the invoicing currency.
1181
1485
  #
1182
1486
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1183
- optional :conversion_rate_config,
1184
- union: -> {
1185
- Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent::ConversionRateConfig
1186
- },
1187
- nil?: true
1487
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1188
1488
 
1189
1489
  # @!attribute dimensional_price_configuration
1190
1490
  # For dimensional price: specifies a price group and dimension values
@@ -1236,21 +1536,21 @@ module Orb
1236
1536
  # @return [Hash{Symbol=>String, nil}, nil]
1237
1537
  optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
1238
1538
 
1239
- # @!method initialize(cadence:, currency:, item_id:, name:, percent_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: 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, model_type: :percent)
1539
+ # @!method initialize(cadence:, currency:, 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, 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, model_type: :daily_credit_allowance)
1240
1540
  # Some parameter documentations has been truncated, see
1241
- # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent} for more
1242
- # details.
1541
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance}
1542
+ # for more details.
1243
1543
  #
1244
- # @param cadence [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence] The cadence to bill for this price on.
1544
+ # @param cadence [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::Cadence] The cadence to bill for this price on.
1245
1545
  #
1246
1546
  # @param currency [String] An ISO 4217 currency string for which this price is billed in.
1247
1547
  #
1548
+ # @param daily_credit_allowance_config [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig] Configuration for daily_credit_allowance pricing
1549
+ #
1248
1550
  # @param item_id [String] The id of the item the price will be associated with.
1249
1551
  #
1250
1552
  # @param name [String] The name of the price.
1251
1553
  #
1252
- # @param percent_config [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig] Configuration for percent pricing
1253
- #
1254
1554
  # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
1255
1555
  #
1256
1556
  # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
@@ -1275,11 +1575,11 @@ module Orb
1275
1575
  #
1276
1576
  # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
1277
1577
  #
1278
- # @param model_type [Symbol, :percent] The pricing model type
1578
+ # @param model_type [Symbol, :daily_credit_allowance] The pricing model type
1279
1579
 
1280
1580
  # The cadence to bill for this price on.
1281
1581
  #
1282
- # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent#cadence
1582
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance#cadence
1283
1583
  module Cadence
1284
1584
  extend Orb::Internal::Type::Enum
1285
1585
 
@@ -1294,18 +1594,556 @@ module Orb
1294
1594
  # @return [Array<Symbol>]
1295
1595
  end
1296
1596
 
1297
- # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent#percent_config
1298
- class PercentConfig < Orb::Internal::Type::BaseModel
1299
- # @!attribute percent
1300
- # What percent of the component subtotals to charge
1597
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance#daily_credit_allowance_config
1598
+ class DailyCreditAllowanceConfig < Orb::Internal::Type::BaseModel
1599
+ # @!attribute daily_allowance
1600
+ # Credits granted per day. Lose-it-or-use-it; does not roll over.
1301
1601
  #
1302
- # @return [Float]
1602
+ # @return [String]
1603
+ required :daily_allowance, String
1604
+
1605
+ # @!attribute default_unit_amount
1606
+ # Default per-unit credit rate for any usage not bucketed into a specified
1607
+ # matrix_value
1608
+ #
1609
+ # @return [String]
1610
+ required :default_unit_amount, String
1611
+
1612
+ # @!attribute dimensions
1613
+ # One or two event property values to evaluate matrix groups by
1614
+ #
1615
+ # @return [Array<String, nil>]
1616
+ required :dimensions, Orb::Internal::Type::ArrayOf[String, nil?: true]
1617
+
1618
+ # @!attribute event_day_property
1619
+ # Event property whose value identifies the day bucket the event belongs to (e.g.
1620
+ # 'event_day' set to an ISO date string in the customer's timezone). The allowance
1621
+ # resets per distinct value of this property.
1622
+ #
1623
+ # @return [String]
1624
+ required :event_day_property, String
1625
+
1626
+ # @!attribute matrix_values
1627
+ # Per-dimension credit rates
1628
+ #
1629
+ # @return [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>]
1630
+ required :matrix_values,
1631
+ -> do
1632
+ Orb::Internal::Type::ArrayOf[
1633
+ Orb::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue
1634
+ ]
1635
+ end
1636
+
1637
+ # @!method initialize(daily_allowance:, default_unit_amount:, dimensions:, event_day_property:, matrix_values:)
1638
+ # Some parameter documentations has been truncated, see
1639
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig}
1640
+ # for more details.
1641
+ #
1642
+ # Configuration for daily_credit_allowance pricing
1643
+ #
1644
+ # @param daily_allowance [String] Credits granted per day. Lose-it-or-use-it; does not roll over.
1645
+ #
1646
+ # @param default_unit_amount [String] Default per-unit credit rate for any usage not bucketed into a specified
1647
+ # matrix\_
1648
+ #
1649
+ # @param dimensions [Array<String, nil>] One or two event property values to evaluate matrix groups by
1650
+ #
1651
+ # @param event_day_property [String] Event property whose value identifies the day bucket the event belongs to (e.g.
1652
+ #
1653
+ # @param matrix_values [Array<Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue>] Per-dimension credit rates
1654
+
1655
+ class MatrixValue < Orb::Internal::Type::BaseModel
1656
+ # @!attribute dimension_values
1657
+ # One or two matrix keys to filter usage to this value by. For example, ["model"]
1658
+ # could be used to apply a different credit rate to each AI model.
1659
+ #
1660
+ # @return [Array<String, nil>]
1661
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String, nil?: true]
1662
+
1663
+ # @!attribute unit_amount
1664
+ # Credits charged per unit of usage matching the specified dimension_values
1665
+ #
1666
+ # @return [String]
1667
+ required :unit_amount, String
1668
+
1669
+ # @!method initialize(dimension_values:, unit_amount:)
1670
+ # Some parameter documentations has been truncated, see
1671
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance::DailyCreditAllowanceConfig::MatrixValue}
1672
+ # for more details.
1673
+ #
1674
+ # Per-dimension credit price for the daily credit allowance model.
1675
+ #
1676
+ # @param dimension_values [Array<String, nil>] One or two matrix keys to filter usage to this value by. For example, ["model"]
1677
+ #
1678
+ # @param unit_amount [String] Credits charged per unit of usage matching the specified dimension_values
1679
+ end
1680
+ end
1681
+ end
1682
+
1683
+ class MeteredAllowance < Orb::Internal::Type::BaseModel
1684
+ # @!attribute cadence
1685
+ # The cadence to bill for this price on.
1686
+ #
1687
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::Cadence]
1688
+ required :cadence,
1689
+ enum: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::Cadence }
1690
+
1691
+ # @!attribute currency
1692
+ # An ISO 4217 currency string for which this price is billed in.
1693
+ #
1694
+ # @return [String]
1695
+ required :currency, String
1696
+
1697
+ # @!attribute item_id
1698
+ # The id of the item the price will be associated with.
1699
+ #
1700
+ # @return [String]
1701
+ required :item_id, String
1702
+
1703
+ # @!attribute metered_allowance_config
1704
+ # Configuration for metered_allowance pricing
1705
+ #
1706
+ # @return [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::MeteredAllowanceConfig]
1707
+ required :metered_allowance_config,
1708
+ -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::MeteredAllowanceConfig }
1709
+
1710
+ # @!attribute model_type
1711
+ # The pricing model type
1712
+ #
1713
+ # @return [Symbol, :metered_allowance]
1714
+ required :model_type, const: :metered_allowance
1715
+
1716
+ # @!attribute name
1717
+ # The name of the price.
1718
+ #
1719
+ # @return [String]
1720
+ required :name, String
1721
+
1722
+ # @!attribute billable_metric_id
1723
+ # The id of the billable metric for the price. Only needed if the price is
1724
+ # usage-based.
1725
+ #
1726
+ # @return [String, nil]
1727
+ optional :billable_metric_id, String, nil?: true
1728
+
1729
+ # @!attribute billed_in_advance
1730
+ # If the Price represents a fixed cost, the price will be billed in-advance if
1731
+ # this is true, and in-arrears if this is false.
1732
+ #
1733
+ # @return [Boolean, nil]
1734
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
1735
+
1736
+ # @!attribute billing_cycle_configuration
1737
+ # For custom cadence: specifies the duration of the billing period in days or
1738
+ # months.
1739
+ #
1740
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
1741
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
1742
+
1743
+ # @!attribute conversion_rate
1744
+ # The per unit conversion rate of the price currency to the invoicing currency.
1745
+ #
1746
+ # @return [Float, nil]
1747
+ optional :conversion_rate, Float, nil?: true
1748
+
1749
+ # @!attribute conversion_rate_config
1750
+ # The configuration for the rate of the price currency to the invoicing currency.
1751
+ #
1752
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1753
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1754
+
1755
+ # @!attribute dimensional_price_configuration
1756
+ # For dimensional price: specifies a price group and dimension values
1757
+ #
1758
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
1759
+ optional :dimensional_price_configuration,
1760
+ -> {
1761
+ Orb::NewDimensionalPriceConfiguration
1762
+ },
1763
+ nil?: true
1764
+
1765
+ # @!attribute external_price_id
1766
+ # An alias for the price.
1767
+ #
1768
+ # @return [String, nil]
1769
+ optional :external_price_id, String, nil?: true
1770
+
1771
+ # @!attribute fixed_price_quantity
1772
+ # If the Price represents a fixed cost, this represents the quantity of units
1773
+ # applied.
1774
+ #
1775
+ # @return [Float, nil]
1776
+ optional :fixed_price_quantity, Float, nil?: true
1777
+
1778
+ # @!attribute invoice_grouping_key
1779
+ # The property used to group this price on an invoice
1780
+ #
1781
+ # @return [String, nil]
1782
+ optional :invoice_grouping_key, String, nil?: true
1783
+
1784
+ # @!attribute invoicing_cycle_configuration
1785
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
1786
+ # If unspecified, a single invoice is produced per billing cycle.
1787
+ #
1788
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
1789
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
1790
+
1791
+ # @!attribute license_type_id
1792
+ # The ID of the license type to associate with this price.
1793
+ #
1794
+ # @return [String, nil]
1795
+ optional :license_type_id, String, nil?: true
1796
+
1797
+ # @!attribute metadata
1798
+ # User-specified key/value pairs for the resource. Individual keys can be removed
1799
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
1800
+ # by setting `metadata` to `null`.
1801
+ #
1802
+ # @return [Hash{Symbol=>String, nil}, nil]
1803
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
1804
+
1805
+ # @!method initialize(cadence:, currency:, 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, 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, model_type: :metered_allowance)
1806
+ # Some parameter documentations has been truncated, see
1807
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance}
1808
+ # for more details.
1809
+ #
1810
+ # @param cadence [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::Cadence] The cadence to bill for this price on.
1811
+ #
1812
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
1813
+ #
1814
+ # @param item_id [String] The id of the item the price will be associated with.
1815
+ #
1816
+ # @param metered_allowance_config [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::MeteredAllowanceConfig] Configuration for metered_allowance pricing
1817
+ #
1818
+ # @param name [String] The name of the price.
1819
+ #
1820
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
1821
+ #
1822
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
1823
+ #
1824
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
1825
+ #
1826
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
1827
+ #
1828
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
1829
+ #
1830
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
1831
+ #
1832
+ # @param external_price_id [String, nil] An alias for the price.
1833
+ #
1834
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
1835
+ #
1836
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
1837
+ #
1838
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
1839
+ #
1840
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
1841
+ #
1842
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
1843
+ #
1844
+ # @param model_type [Symbol, :metered_allowance] The pricing model type
1845
+
1846
+ # The cadence to bill for this price on.
1847
+ #
1848
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance#cadence
1849
+ module Cadence
1850
+ extend Orb::Internal::Type::Enum
1851
+
1852
+ ANNUAL = :annual
1853
+ SEMI_ANNUAL = :semi_annual
1854
+ MONTHLY = :monthly
1855
+ QUARTERLY = :quarterly
1856
+ ONE_TIME = :one_time
1857
+ CUSTOM = :custom
1858
+
1859
+ # @!method self.values
1860
+ # @return [Array<Symbol>]
1861
+ end
1862
+
1863
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance#metered_allowance_config
1864
+ class MeteredAllowanceConfig < Orb::Internal::Type::BaseModel
1865
+ # @!attribute allowance_grouping_value
1866
+ # The grouping_key value whose summed quantity represents the allowance for this
1867
+ # period (e.g. 'storage_snapshot' emitting 3 × avg storage). Capped at consumption
1868
+ # — credit can never exceed actual usage.
1869
+ #
1870
+ # @return [String]
1871
+ required :allowance_grouping_value, String
1872
+
1873
+ # @!attribute consumption_grouping_value
1874
+ # The grouping_key value whose summed quantity represents consumption (e.g.
1875
+ # 'download'). Charged at unit_amount.
1876
+ #
1877
+ # @return [String]
1878
+ required :consumption_grouping_value, String
1879
+
1880
+ # @!attribute grouping_key
1881
+ # Event property used to partition the metric into consumption and allowance
1882
+ # quantities (e.g. 'event_name'). The metric is queried with this key and the two
1883
+ # values below select which partition is which.
1884
+ #
1885
+ # @return [String]
1886
+ required :grouping_key, String
1887
+
1888
+ # @!attribute unit_amount
1889
+ # Per-unit price applied to gross consumption and to the allowance credit.
1890
+ #
1891
+ # @return [String]
1892
+ required :unit_amount, String
1893
+
1894
+ # @!attribute allowance_display_name
1895
+ # Sub-line label for the credit row (e.g. 'Up to 3x free egress').
1896
+ #
1897
+ # @return [String, nil]
1898
+ optional :allowance_display_name, String
1899
+
1900
+ # @!attribute consumption_display_name
1901
+ # Sub-line label for the gross consumption row (e.g. 'bytes gotten').
1902
+ #
1903
+ # @return [String, nil]
1904
+ optional :consumption_display_name, String
1905
+
1906
+ # @!method initialize(allowance_grouping_value:, consumption_grouping_value:, grouping_key:, unit_amount:, allowance_display_name: nil, consumption_display_name: nil)
1907
+ # Some parameter documentations has been truncated, see
1908
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance::MeteredAllowanceConfig}
1909
+ # for more details.
1910
+ #
1911
+ # Configuration for metered_allowance pricing
1912
+ #
1913
+ # @param allowance_grouping_value [String] The grouping_key value whose summed quantity represents the allowance for this p
1914
+ #
1915
+ # @param consumption_grouping_value [String] The grouping_key value whose summed quantity represents consumption (e.g. 'downl
1916
+ #
1917
+ # @param grouping_key [String] Event property used to partition the metric into consumption and allowance quant
1918
+ #
1919
+ # @param unit_amount [String] Per-unit price applied to gross consumption and to the allowance credit.
1920
+ #
1921
+ # @param allowance_display_name [String] Sub-line label for the credit row (e.g. 'Up to 3x free egress').
1922
+ #
1923
+ # @param consumption_display_name [String] Sub-line label for the gross consumption row (e.g. 'bytes gotten').
1924
+ end
1925
+ end
1926
+
1927
+ class Percent < Orb::Internal::Type::BaseModel
1928
+ # @!attribute cadence
1929
+ # The cadence to bill for this price on.
1930
+ #
1931
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence]
1932
+ required :cadence, enum: -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence }
1933
+
1934
+ # @!attribute currency
1935
+ # An ISO 4217 currency string for which this price is billed in.
1936
+ #
1937
+ # @return [String]
1938
+ required :currency, String
1939
+
1940
+ # @!attribute item_id
1941
+ # The id of the item the price will be associated with.
1942
+ #
1943
+ # @return [String]
1944
+ required :item_id, String
1945
+
1946
+ # @!attribute model_type
1947
+ # The pricing model type
1948
+ #
1949
+ # @return [Symbol, :percent]
1950
+ required :model_type, const: :percent
1951
+
1952
+ # @!attribute name
1953
+ # The name of the price.
1954
+ #
1955
+ # @return [String]
1956
+ required :name, String
1957
+
1958
+ # @!attribute percent_config
1959
+ # Configuration for percent pricing
1960
+ #
1961
+ # @return [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig]
1962
+ required :percent_config, -> { Orb::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig }
1963
+
1964
+ # @!attribute billable_metric_id
1965
+ # The id of the billable metric for the price. Only needed if the price is
1966
+ # usage-based.
1967
+ #
1968
+ # @return [String, nil]
1969
+ optional :billable_metric_id, String, nil?: true
1970
+
1971
+ # @!attribute billed_in_advance
1972
+ # If the Price represents a fixed cost, the price will be billed in-advance if
1973
+ # this is true, and in-arrears if this is false.
1974
+ #
1975
+ # @return [Boolean, nil]
1976
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
1977
+
1978
+ # @!attribute billing_cycle_configuration
1979
+ # For custom cadence: specifies the duration of the billing period in days or
1980
+ # months.
1981
+ #
1982
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
1983
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
1984
+
1985
+ # @!attribute conversion_rate
1986
+ # The per unit conversion rate of the price currency to the invoicing currency.
1987
+ #
1988
+ # @return [Float, nil]
1989
+ optional :conversion_rate, Float, nil?: true
1990
+
1991
+ # @!attribute conversion_rate_config
1992
+ # The configuration for the rate of the price currency to the invoicing currency.
1993
+ #
1994
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1995
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1996
+
1997
+ # @!attribute dimensional_price_configuration
1998
+ # For dimensional price: specifies a price group and dimension values
1999
+ #
2000
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
2001
+ optional :dimensional_price_configuration,
2002
+ -> {
2003
+ Orb::NewDimensionalPriceConfiguration
2004
+ },
2005
+ nil?: true
2006
+
2007
+ # @!attribute external_price_id
2008
+ # An alias for the price.
2009
+ #
2010
+ # @return [String, nil]
2011
+ optional :external_price_id, String, nil?: true
2012
+
2013
+ # @!attribute fixed_price_quantity
2014
+ # If the Price represents a fixed cost, this represents the quantity of units
2015
+ # applied.
2016
+ #
2017
+ # @return [Float, nil]
2018
+ optional :fixed_price_quantity, Float, nil?: true
2019
+
2020
+ # @!attribute invoice_grouping_key
2021
+ # The property used to group this price on an invoice
2022
+ #
2023
+ # @return [String, nil]
2024
+ optional :invoice_grouping_key, String, nil?: true
2025
+
2026
+ # @!attribute invoicing_cycle_configuration
2027
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
2028
+ # If unspecified, a single invoice is produced per billing cycle.
2029
+ #
2030
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
2031
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
2032
+
2033
+ # @!attribute license_type_id
2034
+ # The ID of the license type to associate with this price.
2035
+ #
2036
+ # @return [String, nil]
2037
+ optional :license_type_id, String, nil?: true
2038
+
2039
+ # @!attribute metadata
2040
+ # User-specified key/value pairs for the resource. Individual keys can be removed
2041
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
2042
+ # by setting `metadata` to `null`.
2043
+ #
2044
+ # @return [Hash{Symbol=>String, nil}, nil]
2045
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
2046
+
2047
+ # @!method initialize(cadence:, currency:, item_id:, name:, percent_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: 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, model_type: :percent)
2048
+ # Some parameter documentations has been truncated, see
2049
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent} for more
2050
+ # details.
2051
+ #
2052
+ # @param cadence [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::Cadence] The cadence to bill for this price on.
2053
+ #
2054
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
2055
+ #
2056
+ # @param item_id [String] The id of the item the price will be associated with.
2057
+ #
2058
+ # @param name [String] The name of the price.
2059
+ #
2060
+ # @param percent_config [Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig] Configuration for percent pricing
2061
+ #
2062
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
2063
+ #
2064
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
2065
+ #
2066
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
2067
+ #
2068
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
2069
+ #
2070
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
2071
+ #
2072
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
2073
+ #
2074
+ # @param external_price_id [String, nil] An alias for the price.
2075
+ #
2076
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
2077
+ #
2078
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
2079
+ #
2080
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
2081
+ #
2082
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
2083
+ #
2084
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
2085
+ #
2086
+ # @param model_type [Symbol, :percent] The pricing model type
2087
+
2088
+ # The cadence to bill for this price on.
2089
+ #
2090
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent#cadence
2091
+ module Cadence
2092
+ extend Orb::Internal::Type::Enum
2093
+
2094
+ ANNUAL = :annual
2095
+ SEMI_ANNUAL = :semi_annual
2096
+ MONTHLY = :monthly
2097
+ QUARTERLY = :quarterly
2098
+ ONE_TIME = :one_time
2099
+ CUSTOM = :custom
2100
+
2101
+ # @!method self.values
2102
+ # @return [Array<Symbol>]
2103
+ end
2104
+
2105
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent#percent_config
2106
+ class PercentConfig < Orb::Internal::Type::BaseModel
2107
+ # @!attribute percent
2108
+ # Fraction of the component subtotals to charge (0 < percent <= 1).
2109
+ #
2110
+ # @return [Float]
1303
2111
  required :percent, Float
1304
2112
 
1305
- # @!method initialize(percent:)
2113
+ # @!attribute maximum_amount
2114
+ # Maximum amount to charge. If unset, the fee has no upper bound.
2115
+ #
2116
+ # @return [String, nil]
2117
+ optional :maximum_amount, String, nil?: true
2118
+
2119
+ # @!attribute minimum_amount
2120
+ # Minimum amount to charge. If unset, the fee is bounded below by 0.
2121
+ #
2122
+ # @return [String, nil]
2123
+ optional :minimum_amount, String, nil?: true
2124
+
2125
+ # @!attribute prorated
2126
+ # If true, the minimum_amount is prorated based on the service period. The
2127
+ # maximum_amount is an absolute cap (never prorated), and the percent applied to
2128
+ # upstream subtotals is never prorated either.
2129
+ #
2130
+ # @return [Boolean, nil]
2131
+ optional :prorated, Orb::Internal::Type::Boolean
2132
+
2133
+ # @!method initialize(percent:, maximum_amount: nil, minimum_amount: nil, prorated: nil)
2134
+ # Some parameter documentations has been truncated, see
2135
+ # {Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent::PercentConfig}
2136
+ # for more details.
2137
+ #
1306
2138
  # Configuration for percent pricing
1307
2139
  #
1308
- # @param percent [Float] What percent of the component subtotals to charge
2140
+ # @param percent [Float] Fraction of the component subtotals to charge (0 < percent <= 1).
2141
+ #
2142
+ # @param maximum_amount [String, nil] Maximum amount to charge. If unset, the fee has no upper bound.
2143
+ #
2144
+ # @param minimum_amount [String, nil] Minimum amount to charge. If unset, the fee is bounded below by 0.
2145
+ #
2146
+ # @param prorated [Boolean] If true, the minimum_amount is prorated based on the service period. The maximum
1309
2147
  end
1310
2148
  end
1311
2149
 
@@ -1378,11 +2216,7 @@ module Orb
1378
2216
  # The configuration for the rate of the price currency to the invoicing currency.
1379
2217
  #
1380
2218
  # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1381
- optional :conversion_rate_config,
1382
- union: -> {
1383
- Orb::SubscriptionPriceIntervalsParams::Add::Price::EventOutput::ConversionRateConfig
1384
- },
1385
- nil?: true
2219
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1386
2220
 
1387
2221
  # @!attribute dimensional_price_configuration
1388
2222
  # For dimensional price: specifies a price group and dimension values
@@ -1531,7 +2365,7 @@ module Orb
1531
2365
  end
1532
2366
 
1533
2367
  # @!method self.variants
1534
- # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput)]
2368
+ # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::CumulativeGroupedAllocation, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::DailyCreditAllowance, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::Percent, Orb::Models::SubscriptionPriceIntervalsParams::Add::Price::EventOutput)]
1535
2369
  end
1536
2370
  end
1537
2371
 
@@ -1548,7 +2382,7 @@ module Orb
1548
2382
  # @!attribute adjustment
1549
2383
  # The definition of a new adjustment to create and add to the subscription.
1550
2384
  #
1551
- # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, nil]
2385
+ # @return [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount, nil]
1552
2386
  optional :adjustment,
1553
2387
  union: -> { Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment },
1554
2388
  nil?: true
@@ -1578,7 +2412,7 @@ module Orb
1578
2412
  #
1579
2413
  # @param start_date [Time, Symbol, Orb::Models::BillingCycleRelativeDate] The start date of the adjustment interval. This is the date that the adjustment
1580
2414
  #
1581
- # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, nil] The definition of a new adjustment to create and add to the subscription.
2415
+ # @param adjustment [Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount, nil] The definition of a new adjustment to create and add to the subscription.
1582
2416
  #
1583
2417
  # @param adjustment_id [String, nil] The ID of the adjustment to add to the subscription. Adjustment IDs can be re-us
1584
2418
  #
@@ -1619,8 +2453,215 @@ module Orb
1619
2453
 
1620
2454
  variant :maximum, -> { Orb::NewMaximum }
1621
2455
 
2456
+ variant :tiered_percentage_discount,
2457
+ -> { Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount }
2458
+
2459
+ class TieredPercentageDiscount < Orb::Internal::Type::BaseModel
2460
+ # @!attribute adjustment_type
2461
+ #
2462
+ # @return [Symbol, :tiered_percentage_discount]
2463
+ required :adjustment_type, const: :tiered_percentage_discount
2464
+
2465
+ # @!attribute tiers
2466
+ #
2467
+ # @return [Array<Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
2468
+ required :tiers,
2469
+ -> { Orb::Internal::Type::ArrayOf[Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier] }
2470
+
2471
+ # @!attribute applies_to_all
2472
+ # If set, the adjustment will apply to every price on the subscription.
2473
+ #
2474
+ # @return [Boolean, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil]
2475
+ optional :applies_to_all,
2476
+ enum: -> {
2477
+ Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll
2478
+ },
2479
+ nil?: true
2480
+
2481
+ # @!attribute applies_to_item_ids
2482
+ # The set of item IDs to which this adjustment applies.
2483
+ #
2484
+ # @return [Array<String>, nil]
2485
+ optional :applies_to_item_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
2486
+
2487
+ # @!attribute applies_to_price_ids
2488
+ # The set of price IDs to which this adjustment applies.
2489
+ #
2490
+ # @return [Array<String>, nil]
2491
+ optional :applies_to_price_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
2492
+
2493
+ # @!attribute currency
2494
+ # If set, only prices in the specified currency will have the adjustment applied.
2495
+ #
2496
+ # @return [String, nil]
2497
+ optional :currency, String, nil?: true
2498
+
2499
+ # @!attribute filters
2500
+ # A list of filters that determine which prices this adjustment will apply to.
2501
+ #
2502
+ # @return [Array<Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil]
2503
+ optional :filters,
2504
+ -> {
2505
+ Orb::Internal::Type::ArrayOf[Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter]
2506
+ },
2507
+ nil?: true
2508
+
2509
+ # @!attribute is_invoice_level
2510
+ # When false, this adjustment will be applied to a single price. Otherwise, it
2511
+ # will be applied at the invoice level, possibly to multiple prices.
2512
+ #
2513
+ # @return [Boolean, nil]
2514
+ optional :is_invoice_level, Orb::Internal::Type::Boolean
2515
+
2516
+ # @!attribute price_type
2517
+ # If set, only prices of the specified type will have the adjustment applied.
2518
+ #
2519
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil]
2520
+ optional :price_type,
2521
+ enum: -> {
2522
+ Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType
2523
+ },
2524
+ nil?: true
2525
+
2526
+ # @!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)
2527
+ # Some parameter documentations has been truncated, see
2528
+ # {Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount}
2529
+ # for more details.
2530
+ #
2531
+ # @param tiers [Array<Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Tier>]
2532
+ #
2533
+ # @param applies_to_all [Boolean, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::AppliesToAll, nil] If set, the adjustment will apply to every price on the subscription.
2534
+ #
2535
+ # @param applies_to_item_ids [Array<String>, nil] The set of item IDs to which this adjustment applies.
2536
+ #
2537
+ # @param applies_to_price_ids [Array<String>, nil] The set of price IDs to which this adjustment applies.
2538
+ #
2539
+ # @param currency [String, nil] If set, only prices in the specified currency will have the adjustment applied.
2540
+ #
2541
+ # @param filters [Array<Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter>, nil] A list of filters that determine which prices this adjustment will apply to.
2542
+ #
2543
+ # @param is_invoice_level [Boolean] When false, this adjustment will be applied to a single price. Otherwise, it wil
2544
+ #
2545
+ # @param price_type [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::PriceType, nil] If set, only prices of the specified type will have the adjustment applied.
2546
+ #
2547
+ # @param adjustment_type [Symbol, :tiered_percentage_discount]
2548
+
2549
+ class Tier < Orb::Internal::Type::BaseModel
2550
+ # @!attribute lower_bound
2551
+ # Exclusive lower bound of cumulative spend for this tier.
2552
+ #
2553
+ # @return [Float]
2554
+ required :lower_bound, Float
2555
+
2556
+ # @!attribute percentage
2557
+ # The percentage (0-1) discounted from spend in this tier.
2558
+ #
2559
+ # @return [Float]
2560
+ required :percentage, Float
2561
+
2562
+ # @!attribute upper_bound
2563
+ # Inclusive upper bound of cumulative spend; null for the final open-ended tier.
2564
+ #
2565
+ # @return [Float, nil]
2566
+ optional :upper_bound, Float, nil?: true
2567
+
2568
+ # @!method initialize(lower_bound:, percentage:, upper_bound: nil)
2569
+ # @param lower_bound [Float] Exclusive lower bound of cumulative spend for this tier.
2570
+ #
2571
+ # @param percentage [Float] The percentage (0-1) discounted from spend in this tier.
2572
+ #
2573
+ # @param upper_bound [Float, nil] Inclusive upper bound of cumulative spend; null for the final open-ended tier.
2574
+ end
2575
+
2576
+ # If set, the adjustment will apply to every price on the subscription.
2577
+ #
2578
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount#applies_to_all
2579
+ module AppliesToAll
2580
+ extend Orb::Internal::Type::Enum
2581
+
2582
+ TRUE = true
2583
+
2584
+ # @!method self.values
2585
+ # @return [Array<Boolean>]
2586
+ end
2587
+
2588
+ class Filter < Orb::Internal::Type::BaseModel
2589
+ # @!attribute field
2590
+ # The property of the price to filter on.
2591
+ #
2592
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field]
2593
+ required :field,
2594
+ enum: -> { Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field }
2595
+
2596
+ # @!attribute operator
2597
+ # Should prices that match the filter be included or excluded.
2598
+ #
2599
+ # @return [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator]
2600
+ required :operator,
2601
+ enum: -> { Orb::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator }
2602
+
2603
+ # @!attribute values
2604
+ # The IDs or values that match this filter.
2605
+ #
2606
+ # @return [Array<String>]
2607
+ required :values, Orb::Internal::Type::ArrayOf[String]
2608
+
2609
+ # @!method initialize(field:, operator:, values:)
2610
+ # @param field [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Field] The property of the price to filter on.
2611
+ #
2612
+ # @param operator [Symbol, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter::Operator] Should prices that match the filter be included or excluded.
2613
+ #
2614
+ # @param values [Array<String>] The IDs or values that match this filter.
2615
+
2616
+ # The property of the price to filter on.
2617
+ #
2618
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter#field
2619
+ module Field
2620
+ extend Orb::Internal::Type::Enum
2621
+
2622
+ PRICE_ID = :price_id
2623
+ ITEM_ID = :item_id
2624
+ PRICE_TYPE = :price_type
2625
+ CURRENCY = :currency
2626
+ PRICING_UNIT_ID = :pricing_unit_id
2627
+
2628
+ # @!method self.values
2629
+ # @return [Array<Symbol>]
2630
+ end
2631
+
2632
+ # Should prices that match the filter be included or excluded.
2633
+ #
2634
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount::Filter#operator
2635
+ module Operator
2636
+ extend Orb::Internal::Type::Enum
2637
+
2638
+ INCLUDES = :includes
2639
+ EXCLUDES = :excludes
2640
+
2641
+ # @!method self.values
2642
+ # @return [Array<Symbol>]
2643
+ end
2644
+ end
2645
+
2646
+ # If set, only prices of the specified type will have the adjustment applied.
2647
+ #
2648
+ # @see Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount#price_type
2649
+ module PriceType
2650
+ extend Orb::Internal::Type::Enum
2651
+
2652
+ USAGE = :usage
2653
+ FIXED_IN_ADVANCE = :fixed_in_advance
2654
+ FIXED_IN_ARREARS = :fixed_in_arrears
2655
+ FIXED = :fixed
2656
+ IN_ARREARS = :in_arrears
2657
+
2658
+ # @!method self.values
2659
+ # @return [Array<Symbol>]
2660
+ end
2661
+ end
2662
+
1622
2663
  # @!method self.variants
1623
- # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum)]
2664
+ # @return [Array(Orb::Models::NewPercentageDiscount, Orb::Models::NewUsageDiscount, Orb::Models::NewAmountDiscount, Orb::Models::NewMinimum, Orb::Models::NewMaximum, Orb::Models::SubscriptionPriceIntervalsParams::AddAdjustment::Adjustment::TieredPercentageDiscount)]
1624
2665
  end
1625
2666
 
1626
2667
  # The end date of the adjustment interval. This is the date that the adjustment