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
@@ -10,10 +10,307 @@ module Orb
10
10
  T.any(
11
11
  Orb::PercentageDiscount,
12
12
  Orb::AmountDiscount,
13
- Orb::TrialDiscount
13
+ Orb::TrialDiscount,
14
+ Orb::InvoiceLevelDiscount::TieredPercentage
14
15
  )
15
16
  end
16
17
 
18
+ class TieredPercentage < Orb::Internal::Type::BaseModel
19
+ OrHash =
20
+ T.type_alias do
21
+ T.any(
22
+ Orb::InvoiceLevelDiscount::TieredPercentage,
23
+ Orb::Internal::AnyHash
24
+ )
25
+ end
26
+
27
+ sig { returns(Symbol) }
28
+ attr_accessor :discount_type
29
+
30
+ # Only available if discount_type is `tiered_percentage`. The ordered, contiguous
31
+ # bands of cumulative eligible spend, each discounted at its own percentage
32
+ # (progressive fill-a-tier).
33
+ sig do
34
+ returns(T::Array[Orb::InvoiceLevelDiscount::TieredPercentage::Tier])
35
+ end
36
+ attr_accessor :tiers
37
+
38
+ # List of price_ids that this discount applies to. For plan/plan phase discounts,
39
+ # this can be a subset of prices.
40
+ sig { returns(T.nilable(T::Array[String])) }
41
+ attr_accessor :applies_to_price_ids
42
+
43
+ # The filters that determine which prices to apply this discount to.
44
+ sig do
45
+ returns(
46
+ T.nilable(
47
+ T::Array[Orb::InvoiceLevelDiscount::TieredPercentage::Filter]
48
+ )
49
+ )
50
+ end
51
+ attr_accessor :filters
52
+
53
+ sig { returns(T.nilable(String)) }
54
+ attr_accessor :reason
55
+
56
+ sig do
57
+ params(
58
+ tiers:
59
+ T::Array[
60
+ Orb::InvoiceLevelDiscount::TieredPercentage::Tier::OrHash
61
+ ],
62
+ applies_to_price_ids: T.nilable(T::Array[String]),
63
+ filters:
64
+ T.nilable(
65
+ T::Array[
66
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::OrHash
67
+ ]
68
+ ),
69
+ reason: T.nilable(String),
70
+ discount_type: Symbol
71
+ ).returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+ # Only available if discount_type is `tiered_percentage`. The ordered, contiguous
75
+ # bands of cumulative eligible spend, each discounted at its own percentage
76
+ # (progressive fill-a-tier).
77
+ tiers:,
78
+ # List of price_ids that this discount applies to. For plan/plan phase discounts,
79
+ # this can be a subset of prices.
80
+ applies_to_price_ids: nil,
81
+ # The filters that determine which prices to apply this discount to.
82
+ filters: nil,
83
+ reason: nil,
84
+ discount_type: :tiered_percentage
85
+ )
86
+ end
87
+
88
+ sig do
89
+ override.returns(
90
+ {
91
+ discount_type: Symbol,
92
+ tiers:
93
+ T::Array[Orb::InvoiceLevelDiscount::TieredPercentage::Tier],
94
+ applies_to_price_ids: T.nilable(T::Array[String]),
95
+ filters:
96
+ T.nilable(
97
+ T::Array[Orb::InvoiceLevelDiscount::TieredPercentage::Filter]
98
+ ),
99
+ reason: T.nilable(String)
100
+ }
101
+ )
102
+ end
103
+ def to_hash
104
+ end
105
+
106
+ class Tier < Orb::Internal::Type::BaseModel
107
+ OrHash =
108
+ T.type_alias do
109
+ T.any(
110
+ Orb::InvoiceLevelDiscount::TieredPercentage::Tier,
111
+ Orb::Internal::AnyHash
112
+ )
113
+ end
114
+
115
+ # Exclusive lower bound of cumulative spend for this tier.
116
+ sig { returns(Float) }
117
+ attr_accessor :lower_bound
118
+
119
+ # The percentage (between 0 and 1) discounted from spend that falls within this
120
+ # tier.
121
+ sig { returns(Float) }
122
+ attr_accessor :percentage
123
+
124
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
125
+ # open-ended tier.
126
+ sig { returns(T.nilable(Float)) }
127
+ attr_accessor :upper_bound
128
+
129
+ # One band of a tiered percentage discount. Bounds are denominated in the
130
+ # discount's currency. `lower_bound` is the exclusive start of the band and
131
+ # `upper_bound` is the inclusive end; `upper_bound` is null only for the
132
+ # open-ended final tier.
133
+ sig do
134
+ params(
135
+ lower_bound: Float,
136
+ percentage: Float,
137
+ upper_bound: T.nilable(Float)
138
+ ).returns(T.attached_class)
139
+ end
140
+ def self.new(
141
+ # Exclusive lower bound of cumulative spend for this tier.
142
+ lower_bound:,
143
+ # The percentage (between 0 and 1) discounted from spend that falls within this
144
+ # tier.
145
+ percentage:,
146
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
147
+ # open-ended tier.
148
+ upper_bound: nil
149
+ )
150
+ end
151
+
152
+ sig do
153
+ override.returns(
154
+ {
155
+ lower_bound: Float,
156
+ percentage: Float,
157
+ upper_bound: T.nilable(Float)
158
+ }
159
+ )
160
+ end
161
+ def to_hash
162
+ end
163
+ end
164
+
165
+ class Filter < Orb::Internal::Type::BaseModel
166
+ OrHash =
167
+ T.type_alias do
168
+ T.any(
169
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter,
170
+ Orb::Internal::AnyHash
171
+ )
172
+ end
173
+
174
+ # The property of the price to filter on.
175
+ sig do
176
+ returns(
177
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
178
+ )
179
+ end
180
+ attr_accessor :field
181
+
182
+ # Should prices that match the filter be included or excluded.
183
+ sig do
184
+ returns(
185
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::TaggedSymbol
186
+ )
187
+ end
188
+ attr_accessor :operator
189
+
190
+ # The IDs or values that match this filter.
191
+ sig { returns(T::Array[String]) }
192
+ attr_accessor :values
193
+
194
+ sig do
195
+ params(
196
+ field:
197
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::OrSymbol,
198
+ operator:
199
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::OrSymbol,
200
+ values: T::Array[String]
201
+ ).returns(T.attached_class)
202
+ end
203
+ def self.new(
204
+ # The property of the price to filter on.
205
+ field:,
206
+ # Should prices that match the filter be included or excluded.
207
+ operator:,
208
+ # The IDs or values that match this filter.
209
+ values:
210
+ )
211
+ end
212
+
213
+ sig do
214
+ override.returns(
215
+ {
216
+ field:
217
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol,
218
+ operator:
219
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::TaggedSymbol,
220
+ values: T::Array[String]
221
+ }
222
+ )
223
+ end
224
+ def to_hash
225
+ end
226
+
227
+ # The property of the price to filter on.
228
+ module Field
229
+ extend Orb::Internal::Type::Enum
230
+
231
+ TaggedSymbol =
232
+ T.type_alias do
233
+ T.all(
234
+ Symbol,
235
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field
236
+ )
237
+ end
238
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
239
+
240
+ PRICE_ID =
241
+ T.let(
242
+ :price_id,
243
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
244
+ )
245
+ ITEM_ID =
246
+ T.let(
247
+ :item_id,
248
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
249
+ )
250
+ PRICE_TYPE =
251
+ T.let(
252
+ :price_type,
253
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
254
+ )
255
+ CURRENCY =
256
+ T.let(
257
+ :currency,
258
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
259
+ )
260
+ PRICING_UNIT_ID =
261
+ T.let(
262
+ :pricing_unit_id,
263
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
264
+ )
265
+
266
+ sig do
267
+ override.returns(
268
+ T::Array[
269
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Field::TaggedSymbol
270
+ ]
271
+ )
272
+ end
273
+ def self.values
274
+ end
275
+ end
276
+
277
+ # Should prices that match the filter be included or excluded.
278
+ module Operator
279
+ extend Orb::Internal::Type::Enum
280
+
281
+ TaggedSymbol =
282
+ T.type_alias do
283
+ T.all(
284
+ Symbol,
285
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator
286
+ )
287
+ end
288
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
289
+
290
+ INCLUDES =
291
+ T.let(
292
+ :includes,
293
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::TaggedSymbol
294
+ )
295
+ EXCLUDES =
296
+ T.let(
297
+ :excludes,
298
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::TaggedSymbol
299
+ )
300
+
301
+ sig do
302
+ override.returns(
303
+ T::Array[
304
+ Orb::InvoiceLevelDiscount::TieredPercentage::Filter::Operator::TaggedSymbol
305
+ ]
306
+ )
307
+ end
308
+ def self.values
309
+ end
310
+ end
311
+ end
312
+ end
313
+
17
314
  sig { override.returns(T::Array[Orb::InvoiceLevelDiscount::Variants]) }
18
315
  def self.variants
19
316
  end
@@ -118,6 +118,7 @@ module Orb
118
118
  Orb::MonetaryUsageDiscountAdjustment::OrHash,
119
119
  Orb::MonetaryAmountDiscountAdjustment::OrHash,
120
120
  Orb::MonetaryPercentageDiscountAdjustment::OrHash,
121
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::OrHash,
121
122
  Orb::MonetaryMinimumAdjustment::OrHash,
122
123
  Orb::MonetaryMaximumAdjustment::OrHash
123
124
  )
@@ -145,6 +146,7 @@ module Orb
145
146
  Orb::Price::PackageWithAllocation::OrHash,
146
147
  Orb::Price::UnitWithPercent::OrHash,
147
148
  Orb::Price::MatrixWithAllocation::OrHash,
149
+ Orb::Price::MatrixWithThresholdDiscounts::OrHash,
148
150
  Orb::Price::TieredWithProration::OrHash,
149
151
  Orb::Price::UnitWithProration::OrHash,
150
152
  Orb::Price::GroupedAllocation::OrHash,
@@ -159,6 +161,8 @@ module Orb
159
161
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
160
162
  Orb::Price::CumulativeGroupedBulk::OrHash,
161
163
  Orb::Price::CumulativeGroupedAllocation::OrHash,
164
+ Orb::Price::DailyCreditAllowance::OrHash,
165
+ Orb::Price::MeteredAllowance::OrHash,
162
166
  Orb::Price::MinimumComposite::OrHash,
163
167
  Orb::Price::Percent::OrHash,
164
168
  Orb::Price::EventOutput::OrHash
@@ -274,11 +278,346 @@ module Orb
274
278
  Orb::MonetaryUsageDiscountAdjustment,
275
279
  Orb::MonetaryAmountDiscountAdjustment,
276
280
  Orb::MonetaryPercentageDiscountAdjustment,
281
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount,
277
282
  Orb::MonetaryMinimumAdjustment,
278
283
  Orb::MonetaryMaximumAdjustment
279
284
  )
280
285
  end
281
286
 
287
+ class TieredPercentageDiscount < Orb::Internal::Type::BaseModel
288
+ OrHash =
289
+ T.type_alias do
290
+ T.any(
291
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount,
292
+ Orb::Internal::AnyHash
293
+ )
294
+ end
295
+
296
+ sig { returns(String) }
297
+ attr_accessor :id
298
+
299
+ sig { returns(Symbol) }
300
+ attr_accessor :adjustment_type
301
+
302
+ # The value applied by an adjustment.
303
+ sig { returns(String) }
304
+ attr_accessor :amount
305
+
306
+ # The price IDs that this adjustment applies to.
307
+ sig { returns(T::Array[String]) }
308
+ attr_accessor :applies_to_price_ids
309
+
310
+ # The filters that determine which prices to apply this adjustment to.
311
+ sig do
312
+ returns(
313
+ T::Array[
314
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter
315
+ ]
316
+ )
317
+ end
318
+ attr_accessor :filters
319
+
320
+ # True for adjustments that apply to an entire invoice, false for adjustments that
321
+ # apply to only one price.
322
+ sig { returns(T::Boolean) }
323
+ attr_accessor :is_invoice_level
324
+
325
+ # The reason for the adjustment.
326
+ sig { returns(T.nilable(String)) }
327
+ attr_accessor :reason
328
+
329
+ # The adjustment id this adjustment replaces. This adjustment will take the place
330
+ # of the replaced adjustment in plan version migrations.
331
+ sig { returns(T.nilable(String)) }
332
+ attr_accessor :replaces_adjustment_id
333
+
334
+ # The ordered, contiguous bands of cumulative eligible spend, each discounted at
335
+ # its own percentage (progressive fill-a-tier), applied to the prices this
336
+ # adjustment covers in a given billing period.
337
+ sig do
338
+ returns(
339
+ T::Array[
340
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Tier
341
+ ]
342
+ )
343
+ end
344
+ attr_accessor :tiers
345
+
346
+ sig do
347
+ params(
348
+ id: String,
349
+ amount: String,
350
+ applies_to_price_ids: T::Array[String],
351
+ filters:
352
+ T::Array[
353
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::OrHash
354
+ ],
355
+ is_invoice_level: T::Boolean,
356
+ reason: T.nilable(String),
357
+ replaces_adjustment_id: T.nilable(String),
358
+ tiers:
359
+ T::Array[
360
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Tier::OrHash
361
+ ],
362
+ adjustment_type: Symbol
363
+ ).returns(T.attached_class)
364
+ end
365
+ def self.new(
366
+ id:,
367
+ # The value applied by an adjustment.
368
+ amount:,
369
+ # The price IDs that this adjustment applies to.
370
+ applies_to_price_ids:,
371
+ # The filters that determine which prices to apply this adjustment to.
372
+ filters:,
373
+ # True for adjustments that apply to an entire invoice, false for adjustments that
374
+ # apply to only one price.
375
+ is_invoice_level:,
376
+ # The reason for the adjustment.
377
+ reason:,
378
+ # The adjustment id this adjustment replaces. This adjustment will take the place
379
+ # of the replaced adjustment in plan version migrations.
380
+ replaces_adjustment_id:,
381
+ # The ordered, contiguous bands of cumulative eligible spend, each discounted at
382
+ # its own percentage (progressive fill-a-tier), applied to the prices this
383
+ # adjustment covers in a given billing period.
384
+ tiers:,
385
+ adjustment_type: :tiered_percentage_discount
386
+ )
387
+ end
388
+
389
+ sig do
390
+ override.returns(
391
+ {
392
+ id: String,
393
+ adjustment_type: Symbol,
394
+ amount: String,
395
+ applies_to_price_ids: T::Array[String],
396
+ filters:
397
+ T::Array[
398
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter
399
+ ],
400
+ is_invoice_level: T::Boolean,
401
+ reason: T.nilable(String),
402
+ replaces_adjustment_id: T.nilable(String),
403
+ tiers:
404
+ T::Array[
405
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Tier
406
+ ]
407
+ }
408
+ )
409
+ end
410
+ def to_hash
411
+ end
412
+
413
+ class Filter < Orb::Internal::Type::BaseModel
414
+ OrHash =
415
+ T.type_alias do
416
+ T.any(
417
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter,
418
+ Orb::Internal::AnyHash
419
+ )
420
+ end
421
+
422
+ # The property of the price to filter on.
423
+ sig do
424
+ returns(
425
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
426
+ )
427
+ end
428
+ attr_accessor :field
429
+
430
+ # Should prices that match the filter be included or excluded.
431
+ sig do
432
+ returns(
433
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::TaggedSymbol
434
+ )
435
+ end
436
+ attr_accessor :operator
437
+
438
+ # The IDs or values that match this filter.
439
+ sig { returns(T::Array[String]) }
440
+ attr_accessor :values
441
+
442
+ sig do
443
+ params(
444
+ field:
445
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::OrSymbol,
446
+ operator:
447
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::OrSymbol,
448
+ values: T::Array[String]
449
+ ).returns(T.attached_class)
450
+ end
451
+ def self.new(
452
+ # The property of the price to filter on.
453
+ field:,
454
+ # Should prices that match the filter be included or excluded.
455
+ operator:,
456
+ # The IDs or values that match this filter.
457
+ values:
458
+ )
459
+ end
460
+
461
+ sig do
462
+ override.returns(
463
+ {
464
+ field:
465
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol,
466
+ operator:
467
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::TaggedSymbol,
468
+ values: T::Array[String]
469
+ }
470
+ )
471
+ end
472
+ def to_hash
473
+ end
474
+
475
+ # The property of the price to filter on.
476
+ module Field
477
+ extend Orb::Internal::Type::Enum
478
+
479
+ TaggedSymbol =
480
+ T.type_alias do
481
+ T.all(
482
+ Symbol,
483
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field
484
+ )
485
+ end
486
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
487
+
488
+ PRICE_ID =
489
+ T.let(
490
+ :price_id,
491
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
492
+ )
493
+ ITEM_ID =
494
+ T.let(
495
+ :item_id,
496
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
497
+ )
498
+ PRICE_TYPE =
499
+ T.let(
500
+ :price_type,
501
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
502
+ )
503
+ CURRENCY =
504
+ T.let(
505
+ :currency,
506
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
507
+ )
508
+ PRICING_UNIT_ID =
509
+ T.let(
510
+ :pricing_unit_id,
511
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
512
+ )
513
+
514
+ sig do
515
+ override.returns(
516
+ T::Array[
517
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Field::TaggedSymbol
518
+ ]
519
+ )
520
+ end
521
+ def self.values
522
+ end
523
+ end
524
+
525
+ # Should prices that match the filter be included or excluded.
526
+ module Operator
527
+ extend Orb::Internal::Type::Enum
528
+
529
+ TaggedSymbol =
530
+ T.type_alias do
531
+ T.all(
532
+ Symbol,
533
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator
534
+ )
535
+ end
536
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
537
+
538
+ INCLUDES =
539
+ T.let(
540
+ :includes,
541
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::TaggedSymbol
542
+ )
543
+ EXCLUDES =
544
+ T.let(
545
+ :excludes,
546
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::TaggedSymbol
547
+ )
548
+
549
+ sig do
550
+ override.returns(
551
+ T::Array[
552
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Filter::Operator::TaggedSymbol
553
+ ]
554
+ )
555
+ end
556
+ def self.values
557
+ end
558
+ end
559
+ end
560
+
561
+ class Tier < Orb::Internal::Type::BaseModel
562
+ OrHash =
563
+ T.type_alias do
564
+ T.any(
565
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::TieredPercentageDiscount::Tier,
566
+ Orb::Internal::AnyHash
567
+ )
568
+ end
569
+
570
+ # Exclusive lower bound of cumulative spend for this tier.
571
+ sig { returns(Float) }
572
+ attr_accessor :lower_bound
573
+
574
+ # The percentage (between 0 and 1) discounted from spend that falls within this
575
+ # tier.
576
+ sig { returns(Float) }
577
+ attr_accessor :percentage
578
+
579
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
580
+ # open-ended tier.
581
+ sig { returns(T.nilable(Float)) }
582
+ attr_accessor :upper_bound
583
+
584
+ # One band of a tiered percentage discount. Bounds are denominated in the
585
+ # discount's currency. `lower_bound` is the exclusive start of the band and
586
+ # `upper_bound` is the inclusive end; `upper_bound` is null only for the
587
+ # open-ended final tier.
588
+ sig do
589
+ params(
590
+ lower_bound: Float,
591
+ percentage: Float,
592
+ upper_bound: T.nilable(Float)
593
+ ).returns(T.attached_class)
594
+ end
595
+ def self.new(
596
+ # Exclusive lower bound of cumulative spend for this tier.
597
+ lower_bound:,
598
+ # The percentage (between 0 and 1) discounted from spend that falls within this
599
+ # tier.
600
+ percentage:,
601
+ # Inclusive upper bound of cumulative spend for this tier; null for the final
602
+ # open-ended tier.
603
+ upper_bound: nil
604
+ )
605
+ end
606
+
607
+ sig do
608
+ override.returns(
609
+ {
610
+ lower_bound: Float,
611
+ percentage: Float,
612
+ upper_bound: T.nilable(Float)
613
+ }
614
+ )
615
+ end
616
+ def to_hash
617
+ end
618
+ end
619
+ end
620
+
282
621
  sig do
283
622
  override.returns(
284
623
  T::Array[