orb-billing 1.14.0 → 1.16.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 (351) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/lib/orb/client.rb +14 -0
  5. data/lib/orb/internal/transport/base_client.rb +5 -0
  6. data/lib/orb/internal/type/union.rb +13 -27
  7. data/lib/orb/models/accounting_provider_config.rb +14 -3
  8. data/lib/orb/models/adjustment_interval.rb +185 -3
  9. data/lib/orb/models/alert.rb +105 -1
  10. data/lib/orb/models/alert_create_for_subscription_params.rb +120 -7
  11. data/lib/orb/models/alert_update_params.rb +113 -1
  12. data/lib/orb/models/beta/external_plan_id_create_plan_version_params.rb +2419 -17109
  13. data/lib/orb/models/beta_create_plan_version_params.rb +2361 -16947
  14. data/lib/orb/models/billable_metric.rb +10 -1
  15. data/lib/orb/models/changed_subscription_resources.rb +200 -10
  16. data/lib/orb/models/conversion_rate_config.rb +18 -0
  17. data/lib/orb/models/credit_block_list_invoices_response.rb +192 -1
  18. data/lib/orb/models/credit_block_retrieve_response.rb +185 -1
  19. data/lib/orb/models/customer.rb +111 -4
  20. data/lib/orb/models/customer_create_params.rb +6 -1
  21. data/lib/orb/models/customer_tax_id.rb +15 -1
  22. data/lib/orb/models/customer_update_by_external_id_params.rb +16 -2
  23. data/lib/orb/models/customer_update_params.rb +16 -2
  24. data/lib/orb/models/customers/credit_list_by_external_id_response.rb +192 -1
  25. data/lib/orb/models/customers/credit_list_response.rb +189 -1
  26. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +4 -4
  27. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +4 -4
  28. data/lib/orb/models/dimensional_price_group.rb +1 -1
  29. data/lib/orb/models/discount.rb +145 -1
  30. data/lib/orb/models/event_ingest_params.rb +5 -2
  31. data/lib/orb/models/invoice.rb +198 -10
  32. data/lib/orb/models/invoice_create_params.rb +6 -5
  33. data/lib/orb/models/invoice_fetch_upcoming_response.rb +200 -10
  34. data/lib/orb/models/invoice_issue_summary_response.rb +9 -3
  35. data/lib/orb/models/invoice_level_discount.rb +145 -1
  36. data/lib/orb/models/invoice_line_item_create_response.rb +189 -5
  37. data/lib/orb/models/invoice_list_summary_response.rb +9 -3
  38. data/lib/orb/models/licenses/external_license_get_usage_params.rb +3 -3
  39. data/lib/orb/models/licenses/usage_get_all_usage_params.rb +3 -3
  40. data/lib/orb/models/licenses/usage_get_usage_params.rb +3 -3
  41. data/lib/orb/models/mutated_subscription.rb +169 -4
  42. data/lib/orb/models/new_allocation_price.rb +11 -1
  43. data/lib/orb/models/new_floating_bulk_price.rb +1 -3
  44. data/lib/orb/models/new_floating_bulk_with_proration_price.rb +1 -3
  45. data/lib/orb/models/new_floating_cumulative_grouped_bulk_price.rb +1 -3
  46. data/lib/orb/models/new_floating_grouped_allocation_price.rb +1 -3
  47. data/lib/orb/models/new_floating_grouped_tiered_package_price.rb +1 -3
  48. data/lib/orb/models/new_floating_grouped_tiered_price.rb +1 -3
  49. data/lib/orb/models/new_floating_grouped_with_metered_minimum_price.rb +1 -3
  50. data/lib/orb/models/new_floating_grouped_with_prorated_minimum_price.rb +1 -3
  51. data/lib/orb/models/new_floating_matrix_price.rb +1 -3
  52. data/lib/orb/models/new_floating_matrix_with_allocation_price.rb +1 -3
  53. data/lib/orb/models/new_floating_matrix_with_display_name_price.rb +1 -3
  54. data/lib/orb/models/new_floating_max_group_tiered_package_price.rb +1 -3
  55. data/lib/orb/models/new_floating_minimum_composite_price.rb +1 -3
  56. data/lib/orb/models/new_floating_package_price.rb +1 -3
  57. data/lib/orb/models/new_floating_package_with_allocation_price.rb +1 -3
  58. data/lib/orb/models/new_floating_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  59. data/lib/orb/models/new_floating_scalable_matrix_with_unit_pricing_price.rb +1 -3
  60. data/lib/orb/models/new_floating_threshold_total_amount_price.rb +1 -3
  61. data/lib/orb/models/new_floating_tiered_package_price.rb +1 -3
  62. data/lib/orb/models/new_floating_tiered_package_with_minimum_price.rb +1 -3
  63. data/lib/orb/models/new_floating_tiered_price.rb +1 -3
  64. data/lib/orb/models/new_floating_tiered_with_minimum_price.rb +1 -3
  65. data/lib/orb/models/new_floating_tiered_with_proration_price.rb +1 -3
  66. data/lib/orb/models/new_floating_unit_price.rb +1 -3
  67. data/lib/orb/models/new_floating_unit_with_percent_price.rb +1 -3
  68. data/lib/orb/models/new_floating_unit_with_proration_price.rb +1 -3
  69. data/lib/orb/models/new_plan_bulk_price.rb +1 -1
  70. data/lib/orb/models/new_plan_bulk_with_proration_price.rb +1 -3
  71. data/lib/orb/models/new_plan_cumulative_grouped_bulk_price.rb +1 -3
  72. data/lib/orb/models/new_plan_grouped_allocation_price.rb +1 -3
  73. data/lib/orb/models/new_plan_grouped_tiered_package_price.rb +1 -3
  74. data/lib/orb/models/new_plan_grouped_tiered_price.rb +1 -3
  75. data/lib/orb/models/new_plan_grouped_with_metered_minimum_price.rb +1 -3
  76. data/lib/orb/models/new_plan_grouped_with_prorated_minimum_price.rb +1 -3
  77. data/lib/orb/models/new_plan_matrix_price.rb +1 -5
  78. data/lib/orb/models/new_plan_matrix_with_allocation_price.rb +1 -3
  79. data/lib/orb/models/new_plan_matrix_with_display_name_price.rb +1 -3
  80. data/lib/orb/models/new_plan_max_group_tiered_package_price.rb +1 -3
  81. data/lib/orb/models/new_plan_minimum_composite_price.rb +1 -3
  82. data/lib/orb/models/new_plan_package_price.rb +1 -5
  83. data/lib/orb/models/new_plan_package_with_allocation_price.rb +1 -3
  84. data/lib/orb/models/new_plan_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  85. data/lib/orb/models/new_plan_scalable_matrix_with_unit_pricing_price.rb +1 -3
  86. data/lib/orb/models/new_plan_threshold_total_amount_price.rb +1 -3
  87. data/lib/orb/models/new_plan_tiered_package_price.rb +1 -3
  88. data/lib/orb/models/new_plan_tiered_package_with_minimum_price.rb +1 -3
  89. data/lib/orb/models/new_plan_tiered_price.rb +1 -5
  90. data/lib/orb/models/new_plan_tiered_with_minimum_price.rb +1 -3
  91. data/lib/orb/models/new_plan_unit_price.rb +1 -1
  92. data/lib/orb/models/new_plan_unit_with_percent_price.rb +1 -3
  93. data/lib/orb/models/new_plan_unit_with_proration_price.rb +1 -3
  94. data/lib/orb/models/new_subscription_bulk_price.rb +1 -3
  95. data/lib/orb/models/new_subscription_bulk_with_proration_price.rb +1 -3
  96. data/lib/orb/models/new_subscription_cumulative_grouped_bulk_price.rb +1 -3
  97. data/lib/orb/models/new_subscription_grouped_allocation_price.rb +1 -3
  98. data/lib/orb/models/new_subscription_grouped_tiered_package_price.rb +1 -3
  99. data/lib/orb/models/new_subscription_grouped_tiered_price.rb +1 -3
  100. data/lib/orb/models/new_subscription_grouped_with_metered_minimum_price.rb +1 -3
  101. data/lib/orb/models/new_subscription_grouped_with_prorated_minimum_price.rb +1 -3
  102. data/lib/orb/models/new_subscription_matrix_price.rb +1 -3
  103. data/lib/orb/models/new_subscription_matrix_with_allocation_price.rb +1 -3
  104. data/lib/orb/models/new_subscription_matrix_with_display_name_price.rb +1 -3
  105. data/lib/orb/models/new_subscription_max_group_tiered_package_price.rb +1 -3
  106. data/lib/orb/models/new_subscription_minimum_composite_price.rb +1 -3
  107. data/lib/orb/models/new_subscription_package_price.rb +1 -3
  108. data/lib/orb/models/new_subscription_package_with_allocation_price.rb +1 -3
  109. data/lib/orb/models/new_subscription_scalable_matrix_with_tiered_pricing_price.rb +1 -3
  110. data/lib/orb/models/new_subscription_scalable_matrix_with_unit_pricing_price.rb +1 -3
  111. data/lib/orb/models/new_subscription_threshold_total_amount_price.rb +1 -3
  112. data/lib/orb/models/new_subscription_tiered_package_price.rb +1 -3
  113. data/lib/orb/models/new_subscription_tiered_package_with_minimum_price.rb +1 -3
  114. data/lib/orb/models/new_subscription_tiered_price.rb +1 -3
  115. data/lib/orb/models/new_subscription_tiered_with_minimum_price.rb +1 -3
  116. data/lib/orb/models/new_subscription_unit_price.rb +1 -3
  117. data/lib/orb/models/new_subscription_unit_with_percent_price.rb +1 -3
  118. data/lib/orb/models/new_subscription_unit_with_proration_price.rb +1 -3
  119. data/lib/orb/models/per_price_cost.rb +2 -2
  120. data/lib/orb/models/plan.rb +189 -9
  121. data/lib/orb/models/plan_create_params.rb +1047 -8228
  122. data/lib/orb/models/plan_update_params.rb +9 -1
  123. data/lib/orb/models/plan_version.rb +186 -5
  124. data/lib/orb/models/plans/external_plan_id_update_params.rb +9 -1
  125. data/lib/orb/models/plans/migration_cancel_response.rb +22 -4
  126. data/lib/orb/models/plans/migration_list_response.rb +22 -4
  127. data/lib/orb/models/plans/migration_retrieve_response.rb +22 -4
  128. data/lib/orb/models/price.rb +2614 -1268
  129. data/lib/orb/models/price_create_params.rb +866 -49
  130. data/lib/orb/models/price_evaluate_multiple_params.rb +889 -54
  131. data/lib/orb/models/price_evaluate_preview_events_params.rb +881 -46
  132. data/lib/orb/models/price_interval.rb +2 -2
  133. data/lib/orb/models/subscription.rb +168 -4
  134. data/lib/orb/models/subscription_create_params.rb +2818 -674
  135. data/lib/orb/models/subscription_price_intervals_params.rb +1098 -57
  136. data/lib/orb/models/subscription_schedule_plan_change_params.rb +2834 -687
  137. data/lib/orb/models/subscription_update_params.rb +12 -1
  138. data/lib/orb/models.rb +2 -0
  139. data/lib/orb/resources/alerts.rb +14 -3
  140. data/lib/orb/resources/customers/credits/ledger.rb +28 -14
  141. data/lib/orb/resources/customers.rb +6 -2
  142. data/lib/orb/resources/events.rb +7 -34
  143. data/lib/orb/resources/invoices.rb +6 -2
  144. data/lib/orb/resources/licenses/external_licenses.rb +1 -1
  145. data/lib/orb/resources/licenses/usage.rb +2 -2
  146. data/lib/orb/resources/metrics.rb +5 -5
  147. data/lib/orb/resources/plans/external_plan_id.rb +5 -3
  148. data/lib/orb/resources/plans.rb +9 -5
  149. data/lib/orb/resources/prices/external_price_id.rb +2 -2
  150. data/lib/orb/resources/prices.rb +5 -5
  151. data/lib/orb/resources/subscriptions.rb +20 -3
  152. data/lib/orb/version.rb +1 -1
  153. data/lib/orb.rb +1 -0
  154. data/rbi/orb/models/accounting_provider_config.rbi +38 -5
  155. data/rbi/orb/models/adjustment_interval.rbi +336 -0
  156. data/rbi/orb/models/alert.rbi +172 -3
  157. data/rbi/orb/models/alert_create_for_subscription_params.rbi +268 -9
  158. data/rbi/orb/models/alert_update_params.rbi +208 -0
  159. data/rbi/orb/models/beta/external_plan_id_create_plan_version_params.rbi +3833 -28395
  160. data/rbi/orb/models/beta_create_plan_version_params.rbi +3833 -28363
  161. data/rbi/orb/models/billable_metric.rbi +10 -0
  162. data/rbi/orb/models/changed_subscription_resources.rbi +360 -5
  163. data/rbi/orb/models/conversion_rate_config.rbi +18 -0
  164. data/rbi/orb/models/credit_block_list_invoices_response.rbi +425 -3
  165. data/rbi/orb/models/credit_block_retrieve_response.rbi +421 -3
  166. data/rbi/orb/models/customer.rbi +190 -10
  167. data/rbi/orb/models/customer_create_params.rbi +12 -2
  168. data/rbi/orb/models/customer_tax_id.rbi +15 -1
  169. data/rbi/orb/models/customer_update_by_external_id_params.rbi +22 -2
  170. data/rbi/orb/models/customer_update_params.rbi +22 -2
  171. data/rbi/orb/models/customers/credit_list_by_external_id_response.rbi +425 -3
  172. data/rbi/orb/models/customers/credit_list_response.rbi +426 -3
  173. data/rbi/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +6 -6
  174. data/rbi/orb/models/customers/credits/ledger_create_entry_params.rbi +6 -6
  175. data/rbi/orb/models/dimensional_price_group.rbi +1 -1
  176. data/rbi/orb/models/discount.rbi +269 -1
  177. data/rbi/orb/models/event_ingest_params.rbi +4 -2
  178. data/rbi/orb/models/invoice.rbi +360 -5
  179. data/rbi/orb/models/invoice_create_params.rbi +12 -7
  180. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +360 -5
  181. data/rbi/orb/models/invoice_issue_summary_response.rbi +19 -4
  182. data/rbi/orb/models/invoice_level_discount.rbi +298 -1
  183. data/rbi/orb/models/invoice_line_item_create_response.rbi +339 -0
  184. data/rbi/orb/models/invoice_list_summary_response.rbi +19 -4
  185. data/rbi/orb/models/licenses/external_license_get_usage_params.rbi +3 -3
  186. data/rbi/orb/models/licenses/usage_get_all_usage_params.rbi +3 -3
  187. data/rbi/orb/models/licenses/usage_get_usage_params.rbi +3 -3
  188. data/rbi/orb/models/mutated_subscription.rbi +324 -2
  189. data/rbi/orb/models/new_allocation_price.rbi +12 -0
  190. data/rbi/orb/models/per_price_cost.rbi +3 -0
  191. data/rbi/orb/models/plan.rbi +339 -2
  192. data/rbi/orb/models/plan_create_params.rbi +1877 -14138
  193. data/rbi/orb/models/plan_update_params.rbi +8 -0
  194. data/rbi/orb/models/plan_version.rbi +339 -0
  195. data/rbi/orb/models/plans/external_plan_id_update_params.rbi +8 -0
  196. data/rbi/orb/models/plans/migration_cancel_response.rbi +22 -1
  197. data/rbi/orb/models/plans/migration_list_response.rbi +22 -1
  198. data/rbi/orb/models/plans/migration_retrieve_response.rbi +22 -1
  199. data/rbi/orb/models/price.rbi +4552 -2285
  200. data/rbi/orb/models/price_create_params.rbi +1540 -114
  201. data/rbi/orb/models/price_evaluate_multiple_params.rbi +1540 -114
  202. data/rbi/orb/models/price_evaluate_preview_events_params.rbi +1540 -114
  203. data/rbi/orb/models/price_interval.rbi +3 -0
  204. data/rbi/orb/models/subscription.rbi +324 -2
  205. data/rbi/orb/models/subscription_create_params.rbi +4998 -1186
  206. data/rbi/orb/models/subscription_price_intervals_params.rbi +2127 -264
  207. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +4997 -1185
  208. data/rbi/orb/models/subscription_update_params.rbi +14 -0
  209. data/rbi/orb/models.rbi +2 -0
  210. data/rbi/orb/resources/alerts.rbi +39 -4
  211. data/rbi/orb/resources/customers/credits/ledger.rbi +28 -14
  212. data/rbi/orb/resources/customers.rbi +23 -0
  213. data/rbi/orb/resources/events.rbi +8 -35
  214. data/rbi/orb/resources/invoices.rbi +9 -3
  215. data/rbi/orb/resources/licenses/external_licenses.rbi +1 -1
  216. data/rbi/orb/resources/licenses/usage.rbi +2 -2
  217. data/rbi/orb/resources/metrics.rbi +5 -5
  218. data/rbi/orb/resources/plans/external_plan_id.rbi +5 -2
  219. data/rbi/orb/resources/plans.rbi +9 -3
  220. data/rbi/orb/resources/prices.rbi +3 -0
  221. data/rbi/orb/resources/subscriptions.rbi +29 -0
  222. data/sig/orb/models/accounting_provider_config.rbs +21 -4
  223. data/sig/orb/models/adjustment_interval.rbs +134 -0
  224. data/sig/orb/models/alert.rbs +85 -3
  225. data/sig/orb/models/alert_create_for_subscription_params.rbs +86 -4
  226. data/sig/orb/models/alert_update_params.rbs +86 -1
  227. data/sig/orb/models/beta/external_plan_id_create_plan_version_params.rbs +1803 -11601
  228. data/sig/orb/models/beta_create_plan_version_params.rbs +1747 -11541
  229. data/sig/orb/models/billable_metric.rbs +5 -0
  230. data/sig/orb/models/changed_subscription_resources.rbs +140 -1
  231. data/sig/orb/models/conversion_rate_config.rbs +12 -0
  232. data/sig/orb/models/credit_block_list_invoices_response.rbs +142 -3
  233. data/sig/orb/models/credit_block_retrieve_response.rbs +142 -3
  234. data/sig/orb/models/customer.rbs +70 -4
  235. data/sig/orb/models/customer_create_params.rbs +2 -2
  236. data/sig/orb/models/customer_tax_id.rbs +20 -2
  237. data/sig/orb/models/customer_update_by_external_id_params.rbs +7 -2
  238. data/sig/orb/models/customer_update_params.rbs +7 -2
  239. data/sig/orb/models/customers/credit_list_by_external_id_response.rbs +142 -3
  240. data/sig/orb/models/customers/credit_list_response.rbs +142 -3
  241. data/sig/orb/models/discount.rbs +114 -0
  242. data/sig/orb/models/invoice.rbs +140 -1
  243. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +140 -1
  244. data/sig/orb/models/invoice_issue_summary_response.rbs +2 -1
  245. data/sig/orb/models/invoice_level_discount.rbs +117 -1
  246. data/sig/orb/models/invoice_line_item_create_response.rbs +134 -0
  247. data/sig/orb/models/invoice_list_summary_response.rbs +2 -1
  248. data/sig/orb/models/licenses/external_license_get_usage_params.rbs +4 -4
  249. data/sig/orb/models/licenses/usage_get_all_usage_params.rbs +4 -4
  250. data/sig/orb/models/licenses/usage_get_usage_params.rbs +4 -4
  251. data/sig/orb/models/mutated_subscription.rbs +124 -0
  252. data/sig/orb/models/new_allocation_price.rbs +5 -0
  253. data/sig/orb/models/new_floating_bulk_price.rbs +4 -4
  254. data/sig/orb/models/new_floating_bulk_with_proration_price.rbs +4 -4
  255. data/sig/orb/models/new_floating_cumulative_grouped_bulk_price.rbs +4 -4
  256. data/sig/orb/models/new_floating_grouped_allocation_price.rbs +4 -4
  257. data/sig/orb/models/new_floating_grouped_tiered_package_price.rbs +4 -4
  258. data/sig/orb/models/new_floating_grouped_tiered_price.rbs +4 -4
  259. data/sig/orb/models/new_floating_grouped_with_metered_minimum_price.rbs +4 -4
  260. data/sig/orb/models/new_floating_grouped_with_prorated_minimum_price.rbs +4 -4
  261. data/sig/orb/models/new_floating_matrix_price.rbs +4 -4
  262. data/sig/orb/models/new_floating_matrix_with_allocation_price.rbs +4 -4
  263. data/sig/orb/models/new_floating_matrix_with_display_name_price.rbs +4 -4
  264. data/sig/orb/models/new_floating_max_group_tiered_package_price.rbs +4 -4
  265. data/sig/orb/models/new_floating_minimum_composite_price.rbs +4 -4
  266. data/sig/orb/models/new_floating_package_price.rbs +4 -4
  267. data/sig/orb/models/new_floating_package_with_allocation_price.rbs +4 -4
  268. data/sig/orb/models/new_floating_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  269. data/sig/orb/models/new_floating_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  270. data/sig/orb/models/new_floating_threshold_total_amount_price.rbs +4 -4
  271. data/sig/orb/models/new_floating_tiered_package_price.rbs +4 -4
  272. data/sig/orb/models/new_floating_tiered_package_with_minimum_price.rbs +4 -4
  273. data/sig/orb/models/new_floating_tiered_price.rbs +4 -4
  274. data/sig/orb/models/new_floating_tiered_with_minimum_price.rbs +4 -4
  275. data/sig/orb/models/new_floating_tiered_with_proration_price.rbs +4 -4
  276. data/sig/orb/models/new_floating_unit_price.rbs +4 -4
  277. data/sig/orb/models/new_floating_unit_with_percent_price.rbs +4 -4
  278. data/sig/orb/models/new_floating_unit_with_proration_price.rbs +4 -4
  279. data/sig/orb/models/new_plan_bulk_price.rbs +4 -4
  280. data/sig/orb/models/new_plan_bulk_with_proration_price.rbs +4 -4
  281. data/sig/orb/models/new_plan_cumulative_grouped_bulk_price.rbs +4 -4
  282. data/sig/orb/models/new_plan_grouped_allocation_price.rbs +4 -4
  283. data/sig/orb/models/new_plan_grouped_tiered_package_price.rbs +4 -4
  284. data/sig/orb/models/new_plan_grouped_tiered_price.rbs +4 -4
  285. data/sig/orb/models/new_plan_grouped_with_metered_minimum_price.rbs +4 -4
  286. data/sig/orb/models/new_plan_grouped_with_prorated_minimum_price.rbs +4 -4
  287. data/sig/orb/models/new_plan_matrix_price.rbs +4 -4
  288. data/sig/orb/models/new_plan_matrix_with_allocation_price.rbs +4 -4
  289. data/sig/orb/models/new_plan_matrix_with_display_name_price.rbs +4 -4
  290. data/sig/orb/models/new_plan_max_group_tiered_package_price.rbs +4 -4
  291. data/sig/orb/models/new_plan_minimum_composite_price.rbs +4 -4
  292. data/sig/orb/models/new_plan_package_price.rbs +4 -4
  293. data/sig/orb/models/new_plan_package_with_allocation_price.rbs +4 -4
  294. data/sig/orb/models/new_plan_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  295. data/sig/orb/models/new_plan_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  296. data/sig/orb/models/new_plan_threshold_total_amount_price.rbs +4 -4
  297. data/sig/orb/models/new_plan_tiered_package_price.rbs +4 -4
  298. data/sig/orb/models/new_plan_tiered_package_with_minimum_price.rbs +4 -4
  299. data/sig/orb/models/new_plan_tiered_price.rbs +4 -4
  300. data/sig/orb/models/new_plan_tiered_with_minimum_price.rbs +4 -4
  301. data/sig/orb/models/new_plan_unit_price.rbs +4 -4
  302. data/sig/orb/models/new_plan_unit_with_percent_price.rbs +4 -4
  303. data/sig/orb/models/new_plan_unit_with_proration_price.rbs +4 -4
  304. data/sig/orb/models/new_subscription_bulk_price.rbs +4 -4
  305. data/sig/orb/models/new_subscription_bulk_with_proration_price.rbs +4 -4
  306. data/sig/orb/models/new_subscription_cumulative_grouped_bulk_price.rbs +4 -4
  307. data/sig/orb/models/new_subscription_grouped_allocation_price.rbs +4 -4
  308. data/sig/orb/models/new_subscription_grouped_tiered_package_price.rbs +4 -4
  309. data/sig/orb/models/new_subscription_grouped_tiered_price.rbs +4 -4
  310. data/sig/orb/models/new_subscription_grouped_with_metered_minimum_price.rbs +4 -4
  311. data/sig/orb/models/new_subscription_grouped_with_prorated_minimum_price.rbs +4 -4
  312. data/sig/orb/models/new_subscription_matrix_price.rbs +4 -4
  313. data/sig/orb/models/new_subscription_matrix_with_allocation_price.rbs +4 -4
  314. data/sig/orb/models/new_subscription_matrix_with_display_name_price.rbs +4 -4
  315. data/sig/orb/models/new_subscription_max_group_tiered_package_price.rbs +4 -4
  316. data/sig/orb/models/new_subscription_minimum_composite_price.rbs +4 -4
  317. data/sig/orb/models/new_subscription_package_price.rbs +4 -4
  318. data/sig/orb/models/new_subscription_package_with_allocation_price.rbs +4 -4
  319. data/sig/orb/models/new_subscription_scalable_matrix_with_tiered_pricing_price.rbs +4 -4
  320. data/sig/orb/models/new_subscription_scalable_matrix_with_unit_pricing_price.rbs +4 -4
  321. data/sig/orb/models/new_subscription_threshold_total_amount_price.rbs +4 -4
  322. data/sig/orb/models/new_subscription_tiered_package_price.rbs +4 -4
  323. data/sig/orb/models/new_subscription_tiered_package_with_minimum_price.rbs +4 -4
  324. data/sig/orb/models/new_subscription_tiered_price.rbs +4 -4
  325. data/sig/orb/models/new_subscription_tiered_with_minimum_price.rbs +4 -4
  326. data/sig/orb/models/new_subscription_unit_price.rbs +4 -4
  327. data/sig/orb/models/new_subscription_unit_with_percent_price.rbs +4 -4
  328. data/sig/orb/models/new_subscription_unit_with_proration_price.rbs +4 -4
  329. data/sig/orb/models/plan.rbs +134 -0
  330. data/sig/orb/models/plan_create_params.rbs +836 -5728
  331. data/sig/orb/models/plan_update_params.rbs +5 -0
  332. data/sig/orb/models/plan_version.rbs +134 -0
  333. data/sig/orb/models/plans/external_plan_id_update_params.rbs +5 -0
  334. data/sig/orb/models/price.rbs +2200 -1150
  335. data/sig/orb/models/price_create_params.rbs +611 -23
  336. data/sig/orb/models/price_evaluate_multiple_params.rbs +626 -23
  337. data/sig/orb/models/price_evaluate_preview_events_params.rbs +626 -23
  338. data/sig/orb/models/subscription.rbs +124 -0
  339. data/sig/orb/models/subscription_create_params.rbs +2009 -430
  340. data/sig/orb/models/subscription_price_intervals_params.rbs +795 -23
  341. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +2009 -430
  342. data/sig/orb/models/subscription_update_params.rbs +5 -0
  343. data/sig/orb/models.rbs +2 -0
  344. data/sig/orb/resources/alerts.rbs +5 -1
  345. data/sig/orb/resources/customers.rbs +2 -0
  346. data/sig/orb/resources/licenses/external_licenses.rbs +1 -1
  347. data/sig/orb/resources/licenses/usage.rbs +2 -2
  348. data/sig/orb/resources/plans/external_plan_id.rbs +1 -0
  349. data/sig/orb/resources/plans.rbs +2 -0
  350. data/sig/orb/resources/subscriptions.rbs +3 -0
  351. metadata +6 -7
@@ -15,8 +15,152 @@ module Orb
15
15
 
16
16
  variant :amount, -> { Orb::AmountDiscount }
17
17
 
18
+ variant :tiered_percentage, -> { Orb::Discount::TieredPercentage }
19
+
20
+ class TieredPercentage < Orb::Internal::Type::BaseModel
21
+ # @!attribute discount_type
22
+ #
23
+ # @return [Symbol, :tiered_percentage]
24
+ required :discount_type, const: :tiered_percentage
25
+
26
+ # @!attribute tiers
27
+ # Only available if discount_type is `tiered_percentage`. The ordered, contiguous
28
+ # bands of cumulative eligible spend, each discounted at its own percentage
29
+ # (progressive fill-a-tier).
30
+ #
31
+ # @return [Array<Orb::Models::Discount::TieredPercentage::Tier>]
32
+ required :tiers, -> { Orb::Internal::Type::ArrayOf[Orb::Discount::TieredPercentage::Tier] }
33
+
34
+ # @!attribute applies_to_price_ids
35
+ # List of price_ids that this discount applies to. For plan/plan phase discounts,
36
+ # this can be a subset of prices.
37
+ #
38
+ # @return [Array<String>, nil]
39
+ optional :applies_to_price_ids, Orb::Internal::Type::ArrayOf[String], nil?: true
40
+
41
+ # @!attribute filters
42
+ # The filters that determine which prices to apply this discount to.
43
+ #
44
+ # @return [Array<Orb::Models::Discount::TieredPercentage::Filter>, nil]
45
+ optional :filters,
46
+ -> { Orb::Internal::Type::ArrayOf[Orb::Discount::TieredPercentage::Filter] },
47
+ nil?: true
48
+
49
+ # @!attribute reason
50
+ #
51
+ # @return [String, nil]
52
+ optional :reason, String, nil?: true
53
+
54
+ # @!method initialize(tiers:, applies_to_price_ids: nil, filters: nil, reason: nil, discount_type: :tiered_percentage)
55
+ # Some parameter documentations has been truncated, see
56
+ # {Orb::Models::Discount::TieredPercentage} for more details.
57
+ #
58
+ # @param tiers [Array<Orb::Models::Discount::TieredPercentage::Tier>] Only available if discount_type is `tiered_percentage`. The ordered, contiguous
59
+ #
60
+ # @param applies_to_price_ids [Array<String>, nil] List of price_ids that this discount applies to. For plan/plan phase discounts,
61
+ #
62
+ # @param filters [Array<Orb::Models::Discount::TieredPercentage::Filter>, nil] The filters that determine which prices to apply this discount to.
63
+ #
64
+ # @param reason [String, nil]
65
+ #
66
+ # @param discount_type [Symbol, :tiered_percentage]
67
+
68
+ class Tier < Orb::Internal::Type::BaseModel
69
+ # @!attribute lower_bound
70
+ # Exclusive lower bound of cumulative spend for this tier.
71
+ #
72
+ # @return [Float]
73
+ required :lower_bound, Float
74
+
75
+ # @!attribute percentage
76
+ # The percentage (between 0 and 1) discounted from spend that falls within this
77
+ # tier.
78
+ #
79
+ # @return [Float]
80
+ required :percentage, Float
81
+
82
+ # @!attribute upper_bound
83
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
84
+ # open-ended tier.
85
+ #
86
+ # @return [Float, nil]
87
+ optional :upper_bound, Float, nil?: true
88
+
89
+ # @!method initialize(lower_bound:, percentage:, upper_bound: nil)
90
+ # Some parameter documentations has been truncated, see
91
+ # {Orb::Models::Discount::TieredPercentage::Tier} for more details.
92
+ #
93
+ # One band of a tiered percentage discount. Bounds are denominated in the
94
+ # discount's currency. `lower_bound` is the exclusive start of the band and
95
+ # `upper_bound` is the inclusive end; `upper_bound` is null only for the
96
+ # open-ended final tier.
97
+ #
98
+ # @param lower_bound [Float] Exclusive lower bound of cumulative spend for this tier.
99
+ #
100
+ # @param percentage [Float] The percentage (between 0 and 1) discounted from spend that falls within this ti
101
+ #
102
+ # @param upper_bound [Float, nil] Inclusive upper bound of cumulative spend for this tier; null for the final open
103
+ end
104
+
105
+ class Filter < Orb::Internal::Type::BaseModel
106
+ # @!attribute field
107
+ # The property of the price to filter on.
108
+ #
109
+ # @return [Symbol, Orb::Models::Discount::TieredPercentage::Filter::Field]
110
+ required :field, enum: -> { Orb::Discount::TieredPercentage::Filter::Field }
111
+
112
+ # @!attribute operator
113
+ # Should prices that match the filter be included or excluded.
114
+ #
115
+ # @return [Symbol, Orb::Models::Discount::TieredPercentage::Filter::Operator]
116
+ required :operator, enum: -> { Orb::Discount::TieredPercentage::Filter::Operator }
117
+
118
+ # @!attribute values
119
+ # The IDs or values that match this filter.
120
+ #
121
+ # @return [Array<String>]
122
+ required :values, Orb::Internal::Type::ArrayOf[String]
123
+
124
+ # @!method initialize(field:, operator:, values:)
125
+ # @param field [Symbol, Orb::Models::Discount::TieredPercentage::Filter::Field] The property of the price to filter on.
126
+ #
127
+ # @param operator [Symbol, Orb::Models::Discount::TieredPercentage::Filter::Operator] Should prices that match the filter be included or excluded.
128
+ #
129
+ # @param values [Array<String>] The IDs or values that match this filter.
130
+
131
+ # The property of the price to filter on.
132
+ #
133
+ # @see Orb::Models::Discount::TieredPercentage::Filter#field
134
+ module Field
135
+ extend Orb::Internal::Type::Enum
136
+
137
+ PRICE_ID = :price_id
138
+ ITEM_ID = :item_id
139
+ PRICE_TYPE = :price_type
140
+ CURRENCY = :currency
141
+ PRICING_UNIT_ID = :pricing_unit_id
142
+
143
+ # @!method self.values
144
+ # @return [Array<Symbol>]
145
+ end
146
+
147
+ # Should prices that match the filter be included or excluded.
148
+ #
149
+ # @see Orb::Models::Discount::TieredPercentage::Filter#operator
150
+ module Operator
151
+ extend Orb::Internal::Type::Enum
152
+
153
+ INCLUDES = :includes
154
+ EXCLUDES = :excludes
155
+
156
+ # @!method self.values
157
+ # @return [Array<Symbol>]
158
+ end
159
+ end
160
+ end
161
+
18
162
  # @!method self.variants
19
- # @return [Array(Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount)]
163
+ # @return [Array(Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, Orb::Models::Discount::TieredPercentage)]
20
164
  end
21
165
  end
22
166
  end
@@ -20,7 +20,10 @@ module Orb
20
20
  optional :backfill_id, String, nil?: true
21
21
 
22
22
  # @!attribute debug
23
- # Flag to enable additional debug information in the endpoint response
23
+ # @deprecated
24
+ #
25
+ # Pending Deprecation: Flag to enable additional debug information in the endpoint
26
+ # response
24
27
  #
25
28
  # @return [Boolean, nil]
26
29
  optional :debug, Orb::Internal::Type::Boolean
@@ -33,7 +36,7 @@ module Orb
33
36
  #
34
37
  # @param backfill_id [String, nil] If this ingestion request is part of a backfill, this parameter ties the ingeste
35
38
  #
36
- # @param debug [Boolean] Flag to enable additional debug information in the endpoint response
39
+ # @param debug [Boolean] Pending Deprecation: Flag to enable additional debug information in the endpoint
37
40
  #
38
41
  # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}]
39
42
 
@@ -112,11 +112,13 @@ module Orb
112
112
  # | Estonia | `eu_vat` | European VAT Number |
113
113
  # | Ethiopia | `et_tin` | Ethiopia Tax Identification Number |
114
114
  # | European Union | `eu_oss_vat` | European One Stop Shop VAT Number for non-Union scheme |
115
+ # | Faroe Islands | `fo_vat` | Faroe Islands VAT Number |
115
116
  # | Finland | `eu_vat` | European VAT Number |
116
117
  # | France | `eu_vat` | European VAT Number |
117
118
  # | Georgia | `ge_vat` | Georgian VAT |
118
119
  # | Germany | `de_stn` | German Tax Number (Steuernummer) |
119
120
  # | Germany | `eu_vat` | European VAT Number |
121
+ # | Gibraltar | `gi_tin` | Gibraltar Tax Identification Number |
120
122
  # | Greece | `eu_vat` | European VAT Number |
121
123
  # | Guinea | `gn_nif` | Guinea Tax Identification Number (Número de Identificação Fiscal) |
122
124
  # | Hong Kong | `hk_br` | Hong Kong BR Number |
@@ -128,6 +130,7 @@ module Orb
128
130
  # | Ireland | `eu_vat` | European VAT Number |
129
131
  # | Israel | `il_vat` | Israel VAT |
130
132
  # | Italy | `eu_vat` | European VAT Number |
133
+ # | Italy | `it_cf` | Italian Codice Fiscale Number |
131
134
  # | Japan | `jp_cn` | Japanese Corporate Number (_Hōjin Bangō_) |
132
135
  # | Japan | `jp_rn` | Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_) |
133
136
  # | Japan | `jp_trn` | Japanese Tax Registration Number (_Tōroku Bangō_) |
@@ -158,6 +161,7 @@ module Orb
158
161
  # | Norway | `no_vat` | Norwegian VAT Number |
159
162
  # | Norway | `no_voec` | Norwegian VAT on e-commerce Number |
160
163
  # | Oman | `om_vat` | Omani VAT Number |
164
+ # | Paraguay | `py_ruc` | Paraguayan RUC Number |
161
165
  # | Peru | `pe_ruc` | Peruvian RUC Number |
162
166
  # | Philippines | `ph_tin` | Philippines Tax Identification Number |
163
167
  # | Poland | `eu_vat` | European VAT Number |
@@ -179,6 +183,7 @@ module Orb
179
183
  # | South Korea | `kr_brn` | Korean BRN |
180
184
  # | Spain | `es_cif` | Spanish NIF Number (previously Spanish CIF Number) |
181
185
  # | Spain | `eu_vat` | European VAT Number |
186
+ # | Sri Lanka | `lk_vat` | Sri Lanka VAT Number |
182
187
  # | Suriname | `sr_fin` | Suriname FIN Number |
183
188
  # | Sweden | `eu_vat` | European VAT Number |
184
189
  # | Switzerland | `ch_uid` | Switzerland UID Number |
@@ -216,7 +221,7 @@ module Orb
216
221
 
217
222
  # @!attribute discounts
218
223
  #
219
- # @return [Array<Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount>]
224
+ # @return [Array<Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount, Orb::Models::InvoiceLevelDiscount::TieredPercentage>]
220
225
  required :discounts, -> { Orb::Internal::Type::ArrayOf[union: Orb::InvoiceLevelDiscount] }
221
226
 
222
227
  # @!attribute due_date
@@ -235,8 +240,8 @@ module Orb
235
240
  required :eligible_to_issue_at, Time, nil?: true
236
241
 
237
242
  # @!attribute hosted_invoice_url
238
- # A URL for the customer-facing invoice portal. This URL expires 30 days after the
239
- # invoice's due date, or 60 days after being re-generated through the UI.
243
+ # A URL for the customer-facing invoice portal. This URL expires 60 days after the
244
+ # link is generated, or 30 days after the invoice's due date — whichever is later.
240
245
  #
241
246
  # @return [String, nil]
242
247
  required :hosted_invoice_url, String, nil?: true
@@ -437,13 +442,13 @@ module Orb
437
442
  #
438
443
  # @param discount [Object] This field is deprecated in favor of `discounts`. If a `discounts` list is provi
439
444
  #
440
- # @param discounts [Array<Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount>]
445
+ # @param discounts [Array<Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount, Orb::Models::InvoiceLevelDiscount::TieredPercentage>]
441
446
  #
442
447
  # @param due_date [Time, nil] When the invoice payment is due. The due date is null if the invoice is not yet
443
448
  #
444
449
  # @param eligible_to_issue_at [Time, nil] If the invoice has a status of `draft`, this will be the time that the invoice w
445
450
  #
446
- # @param hosted_invoice_url [String, nil] A URL for the customer-facing invoice portal. This URL expires 30 days after the
451
+ # @param hosted_invoice_url [String, nil] A URL for the customer-facing invoice portal. This URL expires 60 days after the
447
452
  #
448
453
  # @param invoice_date [Time] The scheduled date of the invoice
449
454
  #
@@ -746,7 +751,7 @@ module Orb
746
751
  # invoice calculations (ie. usage discounts -> amount discounts -> percentage
747
752
  # discounts -> minimums -> maximums).
748
753
  #
749
- # @return [Array<Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment>]
754
+ # @return [Array<Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment>]
750
755
  required :adjustments, -> { Orb::Internal::Type::ArrayOf[union: Orb::Invoice::LineItem::Adjustment] }
751
756
 
752
757
  # @!attribute amount
@@ -806,7 +811,7 @@ module Orb
806
811
  # For more on the types of prices, see
807
812
  # [the core concepts documentation](/core-concepts#plan-and-price)
808
813
  #
809
- # @return [Orb::Models::Price::Unit, Orb::Models::Price::Tiered, Orb::Models::Price::Bulk, Orb::Models::Price::BulkWithFilters, Orb::Models::Price::Package, Orb::Models::Price::Matrix, Orb::Models::Price::ThresholdTotalAmount, Orb::Models::Price::TieredPackage, Orb::Models::Price::TieredWithMinimum, Orb::Models::Price::GroupedTiered, Orb::Models::Price::TieredPackageWithMinimum, Orb::Models::Price::PackageWithAllocation, Orb::Models::Price::UnitWithPercent, Orb::Models::Price::MatrixWithAllocation, Orb::Models::Price::TieredWithProration, Orb::Models::Price::UnitWithProration, Orb::Models::Price::GroupedAllocation, Orb::Models::Price::BulkWithProration, Orb::Models::Price::GroupedWithProratedMinimum, Orb::Models::Price::GroupedWithMeteredMinimum, Orb::Models::Price::GroupedWithMinMaxThresholds, Orb::Models::Price::MatrixWithDisplayName, Orb::Models::Price::GroupedTieredPackage, Orb::Models::Price::MaxGroupTieredPackage, Orb::Models::Price::ScalableMatrixWithUnitPricing, Orb::Models::Price::ScalableMatrixWithTieredPricing, Orb::Models::Price::CumulativeGroupedBulk, Orb::Models::Price::CumulativeGroupedAllocation, Orb::Models::Price::MinimumComposite, Orb::Models::Price::Percent, Orb::Models::Price::EventOutput]
814
+ # @return [Orb::Models::Price::Unit, Orb::Models::Price::Tiered, Orb::Models::Price::Bulk, Orb::Models::Price::BulkWithFilters, Orb::Models::Price::Package, Orb::Models::Price::Matrix, Orb::Models::Price::ThresholdTotalAmount, Orb::Models::Price::TieredPackage, Orb::Models::Price::TieredWithMinimum, Orb::Models::Price::GroupedTiered, Orb::Models::Price::TieredPackageWithMinimum, Orb::Models::Price::PackageWithAllocation, Orb::Models::Price::UnitWithPercent, Orb::Models::Price::MatrixWithAllocation, Orb::Models::Price::MatrixWithThresholdDiscounts, Orb::Models::Price::TieredWithProration, Orb::Models::Price::UnitWithProration, Orb::Models::Price::GroupedAllocation, Orb::Models::Price::BulkWithProration, Orb::Models::Price::GroupedWithProratedMinimum, Orb::Models::Price::GroupedWithMeteredMinimum, Orb::Models::Price::GroupedWithMinMaxThresholds, Orb::Models::Price::MatrixWithDisplayName, Orb::Models::Price::GroupedTieredPackage, Orb::Models::Price::MaxGroupTieredPackage, Orb::Models::Price::ScalableMatrixWithUnitPricing, Orb::Models::Price::ScalableMatrixWithTieredPricing, Orb::Models::Price::CumulativeGroupedBulk, Orb::Models::Price::CumulativeGroupedAllocation, Orb::Models::Price::DailyCreditAllowance, Orb::Models::Price::MeteredAllowance, Orb::Models::Price::MinimumComposite, Orb::Models::Price::Percent, Orb::Models::Price::EventOutput]
810
815
  required :price, union: -> { Orb::Price }
811
816
 
812
817
  # @!attribute quantity
@@ -855,7 +860,7 @@ module Orb
855
860
  #
856
861
  # @param adjusted_subtotal [String] The line amount after any adjustments and before overage conversion, credits and
857
862
  #
858
- # @param adjustments [Array<Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment>] All adjustments applied to the line item in the order they were applied based on
863
+ # @param adjustments [Array<Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment>] All adjustments applied to the line item in the order they were applied based on
859
864
  #
860
865
  # @param amount [String] The final amount for a line item after all adjustments and pre paid credits have
861
866
  #
@@ -871,7 +876,7 @@ module Orb
871
876
  #
872
877
  # @param partially_invoiced_amount [String] Any amount applied from a partial invoice
873
878
  #
874
- # @param price [Orb::Models::Price::Unit, Orb::Models::Price::Tiered, Orb::Models::Price::Bulk, Orb::Models::Price::BulkWithFilters, Orb::Models::Price::Package, Orb::Models::Price::Matrix, Orb::Models::Price::ThresholdTotalAmount, Orb::Models::Price::TieredPackage, Orb::Models::Price::TieredWithMinimum, Orb::Models::Price::GroupedTiered, Orb::Models::Price::TieredPackageWithMinimum, Orb::Models::Price::PackageWithAllocation, Orb::Models::Price::UnitWithPercent, Orb::Models::Price::MatrixWithAllocation, Orb::Models::Price::TieredWithProration, Orb::Models::Price::UnitWithProration, Orb::Models::Price::GroupedAllocation, Orb::Models::Price::BulkWithProration, Orb::Models::Price::GroupedWithProratedMinimum, Orb::Models::Price::GroupedWithMeteredMinimum, Orb::Models::Price::GroupedWithMinMaxThresholds, Orb::Models::Price::MatrixWithDisplayName, Orb::Models::Price::GroupedTieredPackage, Orb::Models::Price::MaxGroupTieredPackage, Orb::Models::Price::ScalableMatrixWithUnitPricing, Orb::Models::Price::ScalableMatrixWithTieredPricing, Orb::Models::Price::CumulativeGroupedBulk, Orb::Models::Price::CumulativeGroupedAllocation, Orb::Models::Price::MinimumComposite, Orb::Models::Price::Percent, Orb::Models::Price::EventOutput] The Price resource represents a price that can be billed on a subscription, resu
879
+ # @param price [Orb::Models::Price::Unit, Orb::Models::Price::Tiered, Orb::Models::Price::Bulk, Orb::Models::Price::BulkWithFilters, Orb::Models::Price::Package, Orb::Models::Price::Matrix, Orb::Models::Price::ThresholdTotalAmount, Orb::Models::Price::TieredPackage, Orb::Models::Price::TieredWithMinimum, Orb::Models::Price::GroupedTiered, Orb::Models::Price::TieredPackageWithMinimum, Orb::Models::Price::PackageWithAllocation, Orb::Models::Price::UnitWithPercent, Orb::Models::Price::MatrixWithAllocation, Orb::Models::Price::MatrixWithThresholdDiscounts, Orb::Models::Price::TieredWithProration, Orb::Models::Price::UnitWithProration, Orb::Models::Price::GroupedAllocation, Orb::Models::Price::BulkWithProration, Orb::Models::Price::GroupedWithProratedMinimum, Orb::Models::Price::GroupedWithMeteredMinimum, Orb::Models::Price::GroupedWithMinMaxThresholds, Orb::Models::Price::MatrixWithDisplayName, Orb::Models::Price::GroupedTieredPackage, Orb::Models::Price::MaxGroupTieredPackage, Orb::Models::Price::ScalableMatrixWithUnitPricing, Orb::Models::Price::ScalableMatrixWithTieredPricing, Orb::Models::Price::CumulativeGroupedBulk, Orb::Models::Price::CumulativeGroupedAllocation, Orb::Models::Price::DailyCreditAllowance, Orb::Models::Price::MeteredAllowance, Orb::Models::Price::MinimumComposite, Orb::Models::Price::Percent, Orb::Models::Price::EventOutput] The Price resource represents a price that can be billed on a subscription, resu
875
880
  #
876
881
  # @param quantity [Float] Either the fixed fee quantity or the usage during the service period.
877
882
  #
@@ -896,12 +901,194 @@ module Orb
896
901
 
897
902
  variant :percentage_discount, -> { Orb::MonetaryPercentageDiscountAdjustment }
898
903
 
904
+ variant :tiered_percentage_discount, -> { Orb::Invoice::LineItem::Adjustment::TieredPercentageDiscount }
905
+
899
906
  variant :minimum, -> { Orb::MonetaryMinimumAdjustment }
900
907
 
901
908
  variant :maximum, -> { Orb::MonetaryMaximumAdjustment }
902
909
 
910
+ class TieredPercentageDiscount < Orb::Internal::Type::BaseModel
911
+ # @!attribute id
912
+ #
913
+ # @return [String]
914
+ required :id, String
915
+
916
+ # @!attribute adjustment_type
917
+ #
918
+ # @return [Symbol, :tiered_percentage_discount]
919
+ required :adjustment_type, const: :tiered_percentage_discount
920
+
921
+ # @!attribute amount
922
+ # The value applied by an adjustment.
923
+ #
924
+ # @return [String]
925
+ required :amount, String
926
+
927
+ # @!attribute applies_to_price_ids
928
+ # @deprecated
929
+ #
930
+ # The price IDs that this adjustment applies to.
931
+ #
932
+ # @return [Array<String>]
933
+ required :applies_to_price_ids, Orb::Internal::Type::ArrayOf[String]
934
+
935
+ # @!attribute filters
936
+ # The filters that determine which prices to apply this adjustment to.
937
+ #
938
+ # @return [Array<Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter>]
939
+ required :filters,
940
+ -> { Orb::Internal::Type::ArrayOf[Orb::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter] }
941
+
942
+ # @!attribute is_invoice_level
943
+ # True for adjustments that apply to an entire invoice, false for adjustments that
944
+ # apply to only one price.
945
+ #
946
+ # @return [Boolean]
947
+ required :is_invoice_level, Orb::Internal::Type::Boolean
948
+
949
+ # @!attribute reason
950
+ # The reason for the adjustment.
951
+ #
952
+ # @return [String, nil]
953
+ required :reason, String, nil?: true
954
+
955
+ # @!attribute replaces_adjustment_id
956
+ # The adjustment id this adjustment replaces. This adjustment will take the place
957
+ # of the replaced adjustment in plan version migrations.
958
+ #
959
+ # @return [String, nil]
960
+ required :replaces_adjustment_id, String, nil?: true
961
+
962
+ # @!attribute tiers
963
+ # The ordered, contiguous bands of cumulative eligible spend, each discounted at
964
+ # its own percentage (progressive fill-a-tier), applied to the prices this
965
+ # adjustment covers in a given billing period.
966
+ #
967
+ # @return [Array<Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Tier>]
968
+ required :tiers,
969
+ -> { Orb::Internal::Type::ArrayOf[Orb::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Tier] }
970
+
971
+ # @!method initialize(id:, amount:, applies_to_price_ids:, filters:, is_invoice_level:, reason:, replaces_adjustment_id:, tiers:, adjustment_type: :tiered_percentage_discount)
972
+ # Some parameter documentations has been truncated, see
973
+ # {Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount} for more
974
+ # details.
975
+ #
976
+ # @param id [String]
977
+ #
978
+ # @param amount [String] The value applied by an adjustment.
979
+ #
980
+ # @param applies_to_price_ids [Array<String>] The price IDs that this adjustment applies to.
981
+ #
982
+ # @param filters [Array<Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter>] The filters that determine which prices to apply this adjustment to.
983
+ #
984
+ # @param is_invoice_level [Boolean] True for adjustments that apply to an entire invoice, false for adjustments that
985
+ #
986
+ # @param reason [String, nil] The reason for the adjustment.
987
+ #
988
+ # @param replaces_adjustment_id [String, nil] The adjustment id this adjustment replaces. This adjustment will take the place
989
+ #
990
+ # @param tiers [Array<Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Tier>] The ordered, contiguous bands of cumulative eligible spend, each discounted at i
991
+ #
992
+ # @param adjustment_type [Symbol, :tiered_percentage_discount]
993
+
994
+ class Filter < Orb::Internal::Type::BaseModel
995
+ # @!attribute field
996
+ # The property of the price to filter on.
997
+ #
998
+ # @return [Symbol, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Field]
999
+ required :field, enum: -> { Orb::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Field }
1000
+
1001
+ # @!attribute operator
1002
+ # Should prices that match the filter be included or excluded.
1003
+ #
1004
+ # @return [Symbol, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Operator]
1005
+ required :operator,
1006
+ enum: -> { Orb::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Operator }
1007
+
1008
+ # @!attribute values
1009
+ # The IDs or values that match this filter.
1010
+ #
1011
+ # @return [Array<String>]
1012
+ required :values, Orb::Internal::Type::ArrayOf[String]
1013
+
1014
+ # @!method initialize(field:, operator:, values:)
1015
+ # @param field [Symbol, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Field] The property of the price to filter on.
1016
+ #
1017
+ # @param operator [Symbol, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter::Operator] Should prices that match the filter be included or excluded.
1018
+ #
1019
+ # @param values [Array<String>] The IDs or values that match this filter.
1020
+
1021
+ # The property of the price to filter on.
1022
+ #
1023
+ # @see Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter#field
1024
+ module Field
1025
+ extend Orb::Internal::Type::Enum
1026
+
1027
+ PRICE_ID = :price_id
1028
+ ITEM_ID = :item_id
1029
+ PRICE_TYPE = :price_type
1030
+ CURRENCY = :currency
1031
+ PRICING_UNIT_ID = :pricing_unit_id
1032
+
1033
+ # @!method self.values
1034
+ # @return [Array<Symbol>]
1035
+ end
1036
+
1037
+ # Should prices that match the filter be included or excluded.
1038
+ #
1039
+ # @see Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Filter#operator
1040
+ module Operator
1041
+ extend Orb::Internal::Type::Enum
1042
+
1043
+ INCLUDES = :includes
1044
+ EXCLUDES = :excludes
1045
+
1046
+ # @!method self.values
1047
+ # @return [Array<Symbol>]
1048
+ end
1049
+ end
1050
+
1051
+ class Tier < Orb::Internal::Type::BaseModel
1052
+ # @!attribute lower_bound
1053
+ # Exclusive lower bound of cumulative spend for this tier.
1054
+ #
1055
+ # @return [Float]
1056
+ required :lower_bound, Float
1057
+
1058
+ # @!attribute percentage
1059
+ # The percentage (between 0 and 1) discounted from spend that falls within this
1060
+ # tier.
1061
+ #
1062
+ # @return [Float]
1063
+ required :percentage, Float
1064
+
1065
+ # @!attribute upper_bound
1066
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
1067
+ # open-ended tier.
1068
+ #
1069
+ # @return [Float, nil]
1070
+ optional :upper_bound, Float, nil?: true
1071
+
1072
+ # @!method initialize(lower_bound:, percentage:, upper_bound: nil)
1073
+ # Some parameter documentations has been truncated, see
1074
+ # {Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount::Tier} for
1075
+ # more details.
1076
+ #
1077
+ # One band of a tiered percentage discount. Bounds are denominated in the
1078
+ # discount's currency. `lower_bound` is the exclusive start of the band and
1079
+ # `upper_bound` is the inclusive end; `upper_bound` is null only for the
1080
+ # open-ended final tier.
1081
+ #
1082
+ # @param lower_bound [Float] Exclusive lower bound of cumulative spend for this tier.
1083
+ #
1084
+ # @param percentage [Float] The percentage (between 0 and 1) discounted from spend that falls within this ti
1085
+ #
1086
+ # @param upper_bound [Float, nil] Inclusive upper bound of cumulative spend for this tier; null for the final open
1087
+ end
1088
+ end
1089
+
903
1090
  # @!method self.variants
904
- # @return [Array(Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment)]
1091
+ # @return [Array(Orb::Models::MonetaryUsageDiscountAdjustment, Orb::Models::MonetaryAmountDiscountAdjustment, Orb::Models::MonetaryPercentageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::TieredPercentageDiscount, Orb::Models::MonetaryMinimumAdjustment, Orb::Models::MonetaryMaximumAdjustment)]
905
1092
  end
906
1093
 
907
1094
  module SubLineItem
@@ -989,6 +1176,7 @@ module Orb
989
1176
  extend Orb::Internal::Type::Enum
990
1177
 
991
1178
  STRIPE = :stripe
1179
+ ADYEN = :adyen
992
1180
 
993
1181
  # @!method self.values
994
1182
  # @return [Array<Symbol>]
@@ -15,8 +15,9 @@ module Orb
15
15
  required :currency, String
16
16
 
17
17
  # @!attribute invoice_date
18
- # Optional invoice date to set. Must be in the past, if not set, `invoice_date` is
19
- # set to the current time in the customer's timezone.
18
+ # An ISO 8601 date or timestamp, interpreted in the customer's timezone. Must be
19
+ # in the past. If a date is set without a time, `invoice_date` is set to midnight
20
+ # on the chosen date in the customer's timezone.
20
21
  #
21
22
  # @return [Time]
22
23
  required :invoice_date, Time
@@ -44,7 +45,7 @@ module Orb
44
45
  # @!attribute discount
45
46
  # An optional discount to attach to the invoice.
46
47
  #
47
- # @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
48
+ # @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, Orb::Models::Discount::TieredPercentage, nil]
48
49
  optional :discount, union: -> { Orb::Discount }, nil?: true
49
50
 
50
51
  # @!attribute due_date
@@ -100,7 +101,7 @@ module Orb
100
101
  #
101
102
  # @param currency [String] An ISO 4217 currency string. Must be the same as the customer's currency if it i
102
103
  #
103
- # @param invoice_date [Time] Optional invoice date to set. Must be in the past, if not set, `invoice_date` is
104
+ # @param invoice_date [Time] An ISO 8601 date or timestamp, interpreted in the customer's timezone. Must be i
104
105
  #
105
106
  # @param line_items [Array<Orb::Models::InvoiceCreateParams::LineItem>]
106
107
  #
@@ -108,7 +109,7 @@ module Orb
108
109
  #
109
110
  # @param customer_id [String, nil] The id of the `Customer` to create this invoice for. One of `customer_id` and `e
110
111
  #
111
- # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil] An optional discount to attach to the invoice.
112
+ # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, Orb::Models::Discount::TieredPercentage, nil] An optional discount to attach to the invoice.
112
113
  #
113
114
  # @param due_date [Date, Time, nil] An optional custom due date for the invoice. If not set, the due date will be ca
114
115
  #