orb-billing 0.1.0.pre.alpha.38 → 0.1.1

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -2
  3. data/lib/orb/client.rb +4 -0
  4. data/lib/orb/internal/transport/base_client.rb +2 -2
  5. data/lib/orb/internal/transport/pooled_net_requester.rb +15 -6
  6. data/lib/orb/internal/type/array_of.rb +12 -2
  7. data/lib/orb/internal/type/base_model.rb +23 -22
  8. data/lib/orb/internal/type/boolean.rb +5 -1
  9. data/lib/orb/internal/type/converter.rb +62 -39
  10. data/lib/orb/internal/type/enum.rb +13 -9
  11. data/lib/orb/internal/type/hash_of.rb +6 -2
  12. data/lib/orb/internal/type/io_like.rb +75 -0
  13. data/lib/orb/internal/type/request_parameters.rb +11 -2
  14. data/lib/orb/internal/type/union.rb +7 -3
  15. data/lib/orb/internal/type/unknown.rb +5 -1
  16. data/lib/orb/internal/util.rb +81 -26
  17. data/lib/orb/models/alert.rb +9 -9
  18. data/lib/orb/models/alert_create_for_customer_params.rb +3 -3
  19. data/lib/orb/models/alert_create_for_external_customer_params.rb +3 -3
  20. data/lib/orb/models/alert_create_for_subscription_params.rb +3 -3
  21. data/lib/orb/models/alert_list_params.rb +5 -5
  22. data/lib/orb/models/alert_update_params.rb +3 -3
  23. data/lib/orb/models/amount_discount.rb +1 -1
  24. data/lib/orb/models/billable_metric.rb +7 -7
  25. data/lib/orb/models/coupon.rb +7 -7
  26. data/lib/orb/models/coupon_create_params.rb +2 -2
  27. data/lib/orb/models/coupon_list_params.rb +2 -2
  28. data/lib/orb/models/coupons/subscription_list_params.rb +1 -1
  29. data/lib/orb/models/credit_note.rb +1 -1
  30. data/lib/orb/models/credit_note_list_params.rb +5 -5
  31. data/lib/orb/models/customer.rb +232 -232
  32. data/lib/orb/models/customer_create_params.rb +223 -223
  33. data/lib/orb/models/customer_list_params.rb +5 -5
  34. data/lib/orb/models/customer_update_by_external_id_params.rb +224 -224
  35. data/lib/orb/models/customer_update_params.rb +224 -224
  36. data/lib/orb/models/customers/balance_transaction_create_response.rb +2 -2
  37. data/lib/orb/models/customers/balance_transaction_list_params.rb +5 -5
  38. data/lib/orb/models/customers/balance_transaction_list_response.rb +2 -2
  39. data/lib/orb/models/customers/cost_list_by_external_id_params.rb +6 -6
  40. data/lib/orb/models/customers/cost_list_params.rb +6 -6
  41. data/lib/orb/models/customers/credit_list_by_external_id_params.rb +2 -2
  42. data/lib/orb/models/customers/credit_list_params.rb +2 -2
  43. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +20 -20
  44. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +22 -22
  45. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +20 -20
  46. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +22 -22
  47. data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +5 -5
  48. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +22 -22
  49. data/lib/orb/models/customers/credits/ledger_list_params.rb +5 -5
  50. data/lib/orb/models/customers/credits/ledger_list_response.rb +22 -22
  51. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +8 -8
  52. data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +7 -7
  53. data/lib/orb/models/customers/credits/top_up_create_params.rb +8 -8
  54. data/lib/orb/models/customers/credits/top_up_create_response.rb +7 -7
  55. data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +1 -1
  56. data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +7 -7
  57. data/lib/orb/models/customers/credits/top_up_list_params.rb +1 -1
  58. data/lib/orb/models/customers/credits/top_up_list_response.rb +7 -7
  59. data/lib/orb/models/dimensional_price_group.rb +7 -7
  60. data/lib/orb/models/dimensional_price_group_create_params.rb +2 -2
  61. data/lib/orb/models/dimensional_price_group_list_params.rb +1 -1
  62. data/lib/orb/models/event_ingest_params.rb +7 -7
  63. data/lib/orb/models/event_ingest_response.rb +4 -4
  64. data/lib/orb/models/event_search_params.rb +5 -5
  65. data/lib/orb/models/event_search_response.rb +8 -8
  66. data/lib/orb/models/event_update_params.rb +4 -4
  67. data/lib/orb/models/events/backfill_close_response.rb +7 -7
  68. data/lib/orb/models/events/backfill_create_params.rb +11 -11
  69. data/lib/orb/models/events/backfill_create_response.rb +7 -7
  70. data/lib/orb/models/events/backfill_fetch_response.rb +7 -7
  71. data/lib/orb/models/events/backfill_list_params.rb +1 -1
  72. data/lib/orb/models/events/backfill_list_response.rb +7 -7
  73. data/lib/orb/models/events/backfill_revert_response.rb +7 -7
  74. data/lib/orb/models/events/event_volumes.rb +1 -1
  75. data/lib/orb/models/events/volume_list_params.rb +7 -7
  76. data/lib/orb/models/invoice.rb +270 -270
  77. data/lib/orb/models/invoice_create_params.rb +12 -11
  78. data/lib/orb/models/invoice_fetch_upcoming_response.rb +266 -266
  79. data/lib/orb/models/invoice_issue_params.rb +4 -4
  80. data/lib/orb/models/invoice_line_item_create_params.rb +1 -1
  81. data/lib/orb/models/invoice_line_item_create_response.rb +27 -27
  82. data/lib/orb/models/invoice_list_params.rb +12 -12
  83. data/lib/orb/models/invoice_update_params.rb +2 -2
  84. data/lib/orb/models/item.rb +2 -2
  85. data/lib/orb/models/item_list_params.rb +1 -1
  86. data/lib/orb/models/metric_create_params.rb +2 -2
  87. data/lib/orb/models/metric_list_params.rb +5 -5
  88. data/lib/orb/models/metric_update_params.rb +2 -2
  89. data/lib/orb/models/percentage_discount.rb +2 -2
  90. data/lib/orb/models/plan.rb +35 -35
  91. data/lib/orb/models/plan_create_params.rb +267 -267
  92. data/lib/orb/models/plan_list_params.rb +5 -5
  93. data/lib/orb/models/plan_update_params.rb +4 -4
  94. data/lib/orb/models/plans/external_plan_id_update_params.rb +4 -4
  95. data/lib/orb/models/price.rb +158 -158
  96. data/lib/orb/models/price_create_params.rb +20 -20
  97. data/lib/orb/models/price_evaluate_params.rb +4 -4
  98. data/lib/orb/models/price_list_params.rb +1 -1
  99. data/lib/orb/models/price_update_params.rb +2 -2
  100. data/lib/orb/models/prices/external_price_id_update_params.rb +2 -2
  101. data/lib/orb/models/subscription.rb +114 -87
  102. data/lib/orb/models/subscription_cancel_params.rb +3 -3
  103. data/lib/orb/models/subscription_cancel_response.rb +150 -72
  104. data/lib/orb/models/subscription_change_apply_params.rb +33 -0
  105. data/lib/orb/models/subscription_change_apply_response.rb +1372 -0
  106. data/lib/orb/models/subscription_change_cancel_params.rb +19 -0
  107. data/lib/orb/models/subscription_change_cancel_response.rb +1372 -0
  108. data/lib/orb/models/subscription_change_retrieve_params.rb +19 -0
  109. data/lib/orb/models/subscription_change_retrieve_response.rb +1372 -0
  110. data/lib/orb/models/subscription_create_params.rb +641 -641
  111. data/lib/orb/models/subscription_create_response.rb +150 -72
  112. data/lib/orb/models/subscription_fetch_costs_params.rb +6 -6
  113. data/lib/orb/models/subscription_fetch_schedule_params.rb +5 -5
  114. data/lib/orb/models/subscription_fetch_schedule_response.rb +2 -2
  115. data/lib/orb/models/subscription_fetch_usage_params.rb +8 -8
  116. data/lib/orb/models/subscription_list_params.rb +5 -5
  117. data/lib/orb/models/subscription_price_intervals_params.rb +323 -323
  118. data/lib/orb/models/subscription_price_intervals_response.rb +152 -72
  119. data/lib/orb/models/subscription_schedule_plan_change_params.rb +651 -651
  120. data/lib/orb/models/subscription_schedule_plan_change_response.rb +152 -72
  121. data/lib/orb/models/subscription_trigger_phase_params.rb +3 -3
  122. data/lib/orb/models/subscription_trigger_phase_response.rb +152 -72
  123. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +152 -72
  124. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +153 -73
  125. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +152 -72
  126. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +8 -8
  127. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +152 -72
  128. data/lib/orb/models/subscription_update_params.rb +10 -10
  129. data/lib/orb/models/subscription_update_trial_params.rb +3 -3
  130. data/lib/orb/models/subscription_update_trial_response.rb +152 -72
  131. data/lib/orb/models/trial_discount.rb +1 -1
  132. data/lib/orb/models/usage_discount.rb +2 -2
  133. data/lib/orb/request_options.rb +7 -7
  134. data/lib/orb/resources/alerts.rb +38 -38
  135. data/lib/orb/resources/coupons/subscriptions.rb +3 -3
  136. data/lib/orb/resources/coupons.rb +9 -9
  137. data/lib/orb/resources/credit_notes.rb +8 -8
  138. data/lib/orb/resources/customers/balance_transactions.rb +26 -26
  139. data/lib/orb/resources/customers/costs.rb +232 -232
  140. data/lib/orb/resources/customers/credits/ledger.rb +344 -344
  141. data/lib/orb/resources/customers/credits/top_ups.rb +12 -12
  142. data/lib/orb/resources/customers/credits.rb +8 -8
  143. data/lib/orb/resources/customers.rb +59 -59
  144. data/lib/orb/resources/dimensional_price_groups.rb +6 -6
  145. data/lib/orb/resources/events/backfills.rb +49 -49
  146. data/lib/orb/resources/events/volume.rb +10 -10
  147. data/lib/orb/resources/events.rb +295 -295
  148. data/lib/orb/resources/invoice_line_items.rb +1 -1
  149. data/lib/orb/resources/invoices.rb +38 -38
  150. data/lib/orb/resources/items.rb +1 -1
  151. data/lib/orb/resources/metrics.rb +11 -11
  152. data/lib/orb/resources/plans/external_plan_id.rb +14 -14
  153. data/lib/orb/resources/plans.rb +22 -22
  154. data/lib/orb/resources/prices/external_price_id.rb +4 -4
  155. data/lib/orb/resources/prices.rb +30 -30
  156. data/lib/orb/resources/subscription_changes.rb +87 -0
  157. data/lib/orb/resources/subscriptions.rb +813 -813
  158. data/lib/orb/resources/top_level.rb +4 -4
  159. data/lib/orb/version.rb +1 -1
  160. data/lib/orb.rb +8 -0
  161. data/rbi/lib/orb/client.rbi +5 -4
  162. data/rbi/lib/orb/errors.rbi +3 -6
  163. data/rbi/lib/orb/internal/page.rbi +3 -6
  164. data/rbi/lib/orb/internal/transport/base_client.rbi +13 -27
  165. data/rbi/lib/orb/internal/transport/pooled_net_requester.rbi +8 -14
  166. data/rbi/lib/orb/internal/type/array_of.rbi +14 -18
  167. data/rbi/lib/orb/internal/type/base_model.rbi +51 -66
  168. data/rbi/lib/orb/internal/type/base_page.rbi +5 -10
  169. data/rbi/lib/orb/internal/type/boolean.rbi +12 -10
  170. data/rbi/lib/orb/internal/type/converter.rbi +44 -37
  171. data/rbi/lib/orb/internal/type/enum.rbi +24 -21
  172. data/rbi/lib/orb/internal/type/hash_of.rbi +13 -18
  173. data/rbi/lib/orb/internal/type/io_like.rbi +49 -0
  174. data/rbi/lib/orb/internal/type/request_parameters.rbi +1 -2
  175. data/rbi/lib/orb/internal/type/union.rbi +19 -21
  176. data/rbi/lib/orb/internal/type/unknown.rbi +10 -9
  177. data/rbi/lib/orb/internal/util.rbi +67 -70
  178. data/rbi/lib/orb/internal.rbi +1 -1
  179. data/rbi/lib/orb/models/alert.rbi +21 -33
  180. data/rbi/lib/orb/models/alert_create_for_customer_params.rbi +8 -13
  181. data/rbi/lib/orb/models/alert_create_for_external_customer_params.rbi +8 -13
  182. data/rbi/lib/orb/models/alert_create_for_subscription_params.rbi +8 -13
  183. data/rbi/lib/orb/models/alert_disable_params.rbi +2 -4
  184. data/rbi/lib/orb/models/alert_enable_params.rbi +2 -4
  185. data/rbi/lib/orb/models/alert_list_params.rbi +3 -6
  186. data/rbi/lib/orb/models/alert_retrieve_params.rbi +2 -4
  187. data/rbi/lib/orb/models/alert_update_params.rbi +7 -11
  188. data/rbi/lib/orb/models/amount_discount.rbi +4 -7
  189. data/rbi/lib/orb/models/billable_metric.rbi +10 -13
  190. data/rbi/lib/orb/models/billing_cycle_relative_date.rbi +1 -2
  191. data/rbi/lib/orb/models/coupon.rbi +9 -11
  192. data/rbi/lib/orb/models/coupon_archive_params.rbi +2 -4
  193. data/rbi/lib/orb/models/coupon_create_params.rbi +8 -14
  194. data/rbi/lib/orb/models/coupon_fetch_params.rbi +2 -4
  195. data/rbi/lib/orb/models/coupon_list_params.rbi +3 -4
  196. data/rbi/lib/orb/models/coupons/subscription_list_params.rbi +3 -5
  197. data/rbi/lib/orb/models/credit_note.rbi +22 -45
  198. data/rbi/lib/orb/models/credit_note_create_params.rbi +5 -10
  199. data/rbi/lib/orb/models/credit_note_fetch_params.rbi +2 -4
  200. data/rbi/lib/orb/models/credit_note_list_params.rbi +3 -6
  201. data/rbi/lib/orb/models/customer.rbi +256 -281
  202. data/rbi/lib/orb/models/customer_create_params.rbi +251 -276
  203. data/rbi/lib/orb/models/customer_delete_params.rbi +2 -4
  204. data/rbi/lib/orb/models/customer_fetch_by_external_id_params.rbi +2 -4
  205. data/rbi/lib/orb/models/customer_fetch_params.rbi +2 -4
  206. data/rbi/lib/orb/models/customer_list_params.rbi +3 -6
  207. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +2 -4
  208. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rbi +2 -4
  209. data/rbi/lib/orb/models/customer_update_by_external_id_params.rbi +252 -277
  210. data/rbi/lib/orb/models/customer_update_params.rbi +252 -277
  211. data/rbi/lib/orb/models/customers/balance_transaction_create_params.rbi +3 -6
  212. data/rbi/lib/orb/models/customers/balance_transaction_create_response.rbi +10 -19
  213. data/rbi/lib/orb/models/customers/balance_transaction_list_params.rbi +3 -6
  214. data/rbi/lib/orb/models/customers/balance_transaction_list_response.rbi +10 -19
  215. data/rbi/lib/orb/models/customers/cost_list_by_external_id_params.rbi +8 -10
  216. data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +6 -12
  217. data/rbi/lib/orb/models/customers/cost_list_params.rbi +8 -10
  218. data/rbi/lib/orb/models/customers/cost_list_response.rbi +6 -12
  219. data/rbi/lib/orb/models/customers/credit_list_by_external_id_params.rbi +3 -4
  220. data/rbi/lib/orb/models/customers/credit_list_by_external_id_response.rbi +2 -4
  221. data/rbi/lib/orb/models/customers/credit_list_params.rbi +3 -4
  222. data/rbi/lib/orb/models/customers/credit_list_response.rbi +2 -4
  223. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +26 -33
  224. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +79 -136
  225. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_params.rbi +26 -33
  226. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_response.rbi +78 -135
  227. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +5 -10
  228. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +79 -136
  229. data/rbi/lib/orb/models/customers/credits/ledger_list_params.rbi +5 -10
  230. data/rbi/lib/orb/models/customers/credits/ledger_list_response.rbi +74 -131
  231. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +13 -19
  232. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +12 -18
  233. data/rbi/lib/orb/models/customers/credits/top_up_create_params.rbi +13 -19
  234. data/rbi/lib/orb/models/customers/credits/top_up_create_response.rbi +12 -18
  235. data/rbi/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rbi +2 -4
  236. data/rbi/lib/orb/models/customers/credits/top_up_delete_params.rbi +2 -4
  237. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +3 -5
  238. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +12 -18
  239. data/rbi/lib/orb/models/customers/credits/top_up_list_params.rbi +3 -5
  240. data/rbi/lib/orb/models/customers/credits/top_up_list_response.rbi +12 -18
  241. data/rbi/lib/orb/models/dimensional_price_group.rbi +8 -9
  242. data/rbi/lib/orb/models/dimensional_price_group_create_params.rbi +4 -7
  243. data/rbi/lib/orb/models/dimensional_price_group_list_params.rbi +3 -5
  244. data/rbi/lib/orb/models/dimensional_price_group_retrieve_params.rbi +2 -4
  245. data/rbi/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +2 -4
  246. data/rbi/lib/orb/models/dimensional_price_groups.rbi +2 -4
  247. data/rbi/lib/orb/models/discount.rbi +1 -2
  248. data/rbi/lib/orb/models/evaluate_price_group.rbi +3 -6
  249. data/rbi/lib/orb/models/event_deprecate_params.rbi +2 -4
  250. data/rbi/lib/orb/models/event_deprecate_response.rbi +2 -4
  251. data/rbi/lib/orb/models/event_ingest_params.rbi +10 -13
  252. data/rbi/lib/orb/models/event_ingest_response.rbi +10 -16
  253. data/rbi/lib/orb/models/event_search_params.rbi +7 -9
  254. data/rbi/lib/orb/models/event_search_response.rbi +11 -14
  255. data/rbi/lib/orb/models/event_update_params.rbi +5 -6
  256. data/rbi/lib/orb/models/event_update_response.rbi +2 -4
  257. data/rbi/lib/orb/models/events/backfill_close_params.rbi +2 -4
  258. data/rbi/lib/orb/models/events/backfill_close_response.rbi +10 -14
  259. data/rbi/lib/orb/models/events/backfill_create_params.rbi +13 -16
  260. data/rbi/lib/orb/models/events/backfill_create_response.rbi +10 -14
  261. data/rbi/lib/orb/models/events/backfill_fetch_params.rbi +2 -4
  262. data/rbi/lib/orb/models/events/backfill_fetch_response.rbi +10 -14
  263. data/rbi/lib/orb/models/events/backfill_list_params.rbi +3 -5
  264. data/rbi/lib/orb/models/events/backfill_list_response.rbi +10 -14
  265. data/rbi/lib/orb/models/events/backfill_revert_params.rbi +2 -4
  266. data/rbi/lib/orb/models/events/backfill_revert_response.rbi +10 -14
  267. data/rbi/lib/orb/models/events/event_volumes.rbi +5 -9
  268. data/rbi/lib/orb/models/events/volume_list_params.rbi +9 -11
  269. data/rbi/lib/orb/models/invoice.rbi +388 -465
  270. data/rbi/lib/orb/models/invoice_create_params.rbi +19 -26
  271. data/rbi/lib/orb/models/invoice_fetch_params.rbi +2 -4
  272. data/rbi/lib/orb/models/invoice_fetch_upcoming_params.rbi +2 -4
  273. data/rbi/lib/orb/models/invoice_fetch_upcoming_response.rbi +381 -460
  274. data/rbi/lib/orb/models/invoice_issue_params.rbi +6 -8
  275. data/rbi/lib/orb/models/invoice_level_discount.rbi +1 -2
  276. data/rbi/lib/orb/models/invoice_line_item_create_params.rbi +3 -5
  277. data/rbi/lib/orb/models/invoice_line_item_create_response.rbi +101 -143
  278. data/rbi/lib/orb/models/invoice_list_params.rbi +8 -13
  279. data/rbi/lib/orb/models/invoice_mark_paid_params.rbi +2 -4
  280. data/rbi/lib/orb/models/invoice_pay_params.rbi +2 -4
  281. data/rbi/lib/orb/models/invoice_update_params.rbi +4 -6
  282. data/rbi/lib/orb/models/invoice_void_params.rbi +2 -4
  283. data/rbi/lib/orb/models/item.rbi +7 -12
  284. data/rbi/lib/orb/models/item_create_params.rbi +2 -4
  285. data/rbi/lib/orb/models/item_fetch_params.rbi +2 -4
  286. data/rbi/lib/orb/models/item_list_params.rbi +3 -5
  287. data/rbi/lib/orb/models/item_update_params.rbi +5 -10
  288. data/rbi/lib/orb/models/metric_create_params.rbi +4 -6
  289. data/rbi/lib/orb/models/metric_fetch_params.rbi +2 -4
  290. data/rbi/lib/orb/models/metric_list_params.rbi +3 -6
  291. data/rbi/lib/orb/models/metric_update_params.rbi +4 -6
  292. data/rbi/lib/orb/models/pagination_metadata.rbi +2 -4
  293. data/rbi/lib/orb/models/percentage_discount.rbi +5 -8
  294. data/rbi/lib/orb/models/plan.rbi +180 -219
  295. data/rbi/lib/orb/models/plan_create_params.rbi +670 -951
  296. data/rbi/lib/orb/models/plan_fetch_params.rbi +2 -4
  297. data/rbi/lib/orb/models/plan_list_params.rbi +4 -8
  298. data/rbi/lib/orb/models/plan_update_params.rbi +6 -8
  299. data/rbi/lib/orb/models/plans/external_plan_id_fetch_params.rbi +2 -4
  300. data/rbi/lib/orb/models/plans/external_plan_id_update_params.rbi +6 -8
  301. data/rbi/lib/orb/models/price.rbi +827 -1494
  302. data/rbi/lib/orb/models/price_create_params.rbi +60 -101
  303. data/rbi/lib/orb/models/price_evaluate_params.rbi +6 -9
  304. data/rbi/lib/orb/models/price_evaluate_response.rbi +2 -4
  305. data/rbi/lib/orb/models/price_fetch_params.rbi +2 -4
  306. data/rbi/lib/orb/models/price_list_params.rbi +3 -5
  307. data/rbi/lib/orb/models/price_update_params.rbi +4 -6
  308. data/rbi/lib/orb/models/prices/external_price_id_fetch_params.rbi +2 -4
  309. data/rbi/lib/orb/models/prices/external_price_id_update_params.rbi +4 -6
  310. data/rbi/lib/orb/models/subscription.rbi +167 -187
  311. data/rbi/lib/orb/models/subscription_cancel_params.rbi +5 -7
  312. data/rbi/lib/orb/models/subscription_cancel_response.rbi +224 -178
  313. data/rbi/lib/orb/models/subscription_change_apply_params.rbi +40 -0
  314. data/rbi/lib/orb/models/subscription_change_apply_response.rbi +1554 -0
  315. data/rbi/lib/orb/models/subscription_change_cancel_params.rbi +18 -0
  316. data/rbi/lib/orb/models/subscription_change_cancel_response.rbi +1565 -0
  317. data/rbi/lib/orb/models/subscription_change_retrieve_params.rbi +18 -0
  318. data/rbi/lib/orb/models/subscription_change_retrieve_response.rbi +1581 -0
  319. data/rbi/lib/orb/models/subscription_create_params.rbi +1372 -1968
  320. data/rbi/lib/orb/models/subscription_create_response.rbi +224 -178
  321. data/rbi/lib/orb/models/subscription_fetch_costs_params.rbi +8 -10
  322. data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +6 -12
  323. data/rbi/lib/orb/models/subscription_fetch_params.rbi +2 -4
  324. data/rbi/lib/orb/models/subscription_fetch_schedule_params.rbi +3 -6
  325. data/rbi/lib/orb/models/subscription_fetch_schedule_response.rbi +6 -10
  326. data/rbi/lib/orb/models/subscription_fetch_usage_params.rbi +12 -17
  327. data/rbi/lib/orb/models/subscription_list_params.rbi +4 -8
  328. data/rbi/lib/orb/models/subscription_price_intervals_params.rbi +772 -1124
  329. data/rbi/lib/orb/models/subscription_price_intervals_response.rbi +228 -178
  330. data/rbi/lib/orb/models/subscription_schedule_plan_change_params.rbi +1396 -1993
  331. data/rbi/lib/orb/models/subscription_schedule_plan_change_response.rbi +238 -182
  332. data/rbi/lib/orb/models/subscription_trigger_phase_params.rbi +5 -7
  333. data/rbi/lib/orb/models/subscription_trigger_phase_response.rbi +224 -178
  334. data/rbi/lib/orb/models/subscription_unschedule_cancellation_params.rbi +2 -4
  335. data/rbi/lib/orb/models/subscription_unschedule_cancellation_response.rbi +238 -182
  336. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +2 -4
  337. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +265 -199
  338. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rbi +2 -4
  339. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +264 -198
  340. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_params.rbi +11 -15
  341. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_response.rbi +238 -182
  342. data/rbi/lib/orb/models/subscription_update_params.rbi +12 -15
  343. data/rbi/lib/orb/models/subscription_update_trial_params.rbi +6 -9
  344. data/rbi/lib/orb/models/subscription_update_trial_response.rbi +224 -178
  345. data/rbi/lib/orb/models/subscription_usage.rbi +24 -43
  346. data/rbi/lib/orb/models/subscriptions.rbi +2 -4
  347. data/rbi/lib/orb/models/top_level_ping_params.rbi +2 -4
  348. data/rbi/lib/orb/models/top_level_ping_response.rbi +2 -4
  349. data/rbi/lib/orb/models/trial_discount.rbi +4 -8
  350. data/rbi/lib/orb/models/usage_discount.rbi +5 -8
  351. data/rbi/lib/orb/request_options.rbi +9 -11
  352. data/rbi/lib/orb/resources/alerts.rbi +44 -60
  353. data/rbi/lib/orb/resources/coupons/subscriptions.rbi +6 -9
  354. data/rbi/lib/orb/resources/coupons.rbi +18 -25
  355. data/rbi/lib/orb/resources/credit_notes.rbi +9 -15
  356. data/rbi/lib/orb/resources/customers/balance_transactions.rbi +26 -31
  357. data/rbi/lib/orb/resources/customers/costs.rbi +241 -246
  358. data/rbi/lib/orb/resources/customers/credits/ledger.rbi +387 -396
  359. data/rbi/lib/orb/resources/customers/credits/top_ups.rbi +29 -40
  360. data/rbi/lib/orb/resources/customers/credits.rbi +15 -20
  361. data/rbi/lib/orb/resources/customers.rbi +407 -417
  362. data/rbi/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +2 -4
  363. data/rbi/lib/orb/resources/dimensional_price_groups.rbi +13 -19
  364. data/rbi/lib/orb/resources/events/backfills.rbi +61 -69
  365. data/rbi/lib/orb/resources/events/volume.rbi +19 -22
  366. data/rbi/lib/orb/resources/events.rbi +311 -319
  367. data/rbi/lib/orb/resources/invoice_line_items.rbi +4 -7
  368. data/rbi/lib/orb/resources/invoices.rbi +62 -76
  369. data/rbi/lib/orb/resources/items.rbi +7 -14
  370. data/rbi/lib/orb/resources/metrics.rbi +17 -25
  371. data/rbi/lib/orb/resources/plans/external_plan_id.rbi +21 -25
  372. data/rbi/lib/orb/resources/plans.rbi +63 -71
  373. data/rbi/lib/orb/resources/prices/external_price_id.rbi +9 -13
  374. data/rbi/lib/orb/resources/prices.rbi +77 -87
  375. data/rbi/lib/orb/resources/subscription_changes.rbi +61 -0
  376. data/rbi/lib/orb/resources/subscriptions.rbi +933 -963
  377. data/rbi/lib/orb/resources/top_level.rbi +6 -8
  378. data/sig/orb/client.rbs +2 -0
  379. data/sig/orb/internal/transport/pooled_net_requester.rbs +1 -1
  380. data/sig/orb/internal/type/array_of.rbs +5 -2
  381. data/sig/orb/internal/type/base_model.rbs +5 -2
  382. data/sig/orb/internal/type/boolean.rbs +5 -2
  383. data/sig/orb/internal/type/converter.rbs +11 -5
  384. data/sig/orb/internal/type/enum.rbs +5 -2
  385. data/sig/orb/internal/type/hash_of.rbs +5 -2
  386. data/sig/orb/internal/type/io_like.rbs +23 -0
  387. data/sig/orb/internal/type/union.rbs +5 -2
  388. data/sig/orb/internal/type/unknown.rbs +5 -2
  389. data/sig/orb/internal/util.rbs +17 -2
  390. data/sig/orb/models/subscription.rbs +14 -0
  391. data/sig/orb/models/subscription_cancel_response.rbs +47 -2
  392. data/sig/orb/models/subscription_change_apply_params.rbs +24 -0
  393. data/sig/orb/models/subscription_change_apply_response.rbs +784 -0
  394. data/sig/orb/models/subscription_change_cancel_params.rbs +15 -0
  395. data/sig/orb/models/subscription_change_cancel_response.rbs +784 -0
  396. data/sig/orb/models/subscription_change_retrieve_params.rbs +15 -0
  397. data/sig/orb/models/subscription_change_retrieve_response.rbs +784 -0
  398. data/sig/orb/models/subscription_create_response.rbs +47 -2
  399. data/sig/orb/models/subscription_price_intervals_response.rbs +47 -2
  400. data/sig/orb/models/subscription_schedule_plan_change_response.rbs +47 -2
  401. data/sig/orb/models/subscription_trigger_phase_response.rbs +47 -2
  402. data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +47 -2
  403. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +47 -2
  404. data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +47 -2
  405. data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +47 -2
  406. data/sig/orb/models/subscription_update_trial_response.rbs +47 -2
  407. data/sig/orb/resources/customers.rbs +2 -2
  408. data/sig/orb/resources/subscription_changes.rbs +24 -0
  409. metadata +28 -4
@@ -6,86 +6,86 @@ module Orb
6
6
  class Credits
7
7
  class Ledger
8
8
  # The credits ledger provides _auditing_ functionality over Orb's credits system
9
- # with a list of actions that have taken place to modify a customer's credit
10
- # balance. This [paginated endpoint](/api-reference/pagination) lists these
11
- # entries, starting from the most recent ledger entry.
9
+ # with a list of actions that have taken place to modify a customer's credit
10
+ # balance. This [paginated endpoint](/api-reference/pagination) lists these
11
+ # entries, starting from the most recent ledger entry.
12
12
  #
13
- # More details on using Orb's real-time credit feature are
14
- # [here](/product-catalog/prepurchase).
13
+ # More details on using Orb's real-time credit feature are
14
+ # [here](/product-catalog/prepurchase).
15
15
  #
16
- # There are four major types of modifications to credit balance, detailed below.
16
+ # There are four major types of modifications to credit balance, detailed below.
17
17
  #
18
- # ## Increment
18
+ # ## Increment
19
19
  #
20
- # Credits (which optionally expire on a future date) can be added via the API
21
- # ([Add Ledger Entry](create-ledger-entry)). The ledger entry for such an action
22
- # will always contain the total eligible starting and ending balance for the
23
- # customer at the time the entry was added to the ledger.
20
+ # Credits (which optionally expire on a future date) can be added via the API
21
+ # ([Add Ledger Entry](create-ledger-entry)). The ledger entry for such an action
22
+ # will always contain the total eligible starting and ending balance for the
23
+ # customer at the time the entry was added to the ledger.
24
24
  #
25
- # ## Decrement
25
+ # ## Decrement
26
26
  #
27
- # Deductions can occur as a result of an API call to create a ledger entry (see
28
- # [Add Ledger Entry](create-ledger-entry)), or automatically as a result of
29
- # incurring usage. Both ledger entries present the `decrement` entry type.
27
+ # Deductions can occur as a result of an API call to create a ledger entry (see
28
+ # [Add Ledger Entry](create-ledger-entry)), or automatically as a result of
29
+ # incurring usage. Both ledger entries present the `decrement` entry type.
30
30
  #
31
- # As usage for a customer is reported into Orb, credits may be deducted according
32
- # to the customer's plan configuration. An automated deduction of this type will
33
- # result in a ledger entry, also with a starting and ending balance. In order to
34
- # provide better tracing capabilities for automatic deductions, Orb always
35
- # associates each automatic deduction with the `event_id` at the time of
36
- # ingestion, used to pinpoint _why_ credit deduction took place and to ensure that
37
- # credits are never deducted without an associated usage event.
31
+ # As usage for a customer is reported into Orb, credits may be deducted according
32
+ # to the customer's plan configuration. An automated deduction of this type will
33
+ # result in a ledger entry, also with a starting and ending balance. In order to
34
+ # provide better tracing capabilities for automatic deductions, Orb always
35
+ # associates each automatic deduction with the `event_id` at the time of
36
+ # ingestion, used to pinpoint _why_ credit deduction took place and to ensure that
37
+ # credits are never deducted without an associated usage event.
38
38
  #
39
- # By default, Orb uses an algorithm that automatically deducts from the _soonest
40
- # expiring credit block_ first in order to ensure that all credits are utilized
41
- # appropriately. As an example, if trial credits with an expiration date of 2
42
- # weeks from now are present for a customer, they will be used before any
43
- # deductions take place from a non-expiring credit block.
39
+ # By default, Orb uses an algorithm that automatically deducts from the _soonest
40
+ # expiring credit block_ first in order to ensure that all credits are utilized
41
+ # appropriately. As an example, if trial credits with an expiration date of 2
42
+ # weeks from now are present for a customer, they will be used before any
43
+ # deductions take place from a non-expiring credit block.
44
44
  #
45
- # If there are multiple blocks with the same expiration date, Orb will deduct from
46
- # the block with the _lower cost basis_ first (e.g. trial credits with a $0 cost
47
- # basis before paid credits with a $5.00 cost basis).
45
+ # If there are multiple blocks with the same expiration date, Orb will deduct from
46
+ # the block with the _lower cost basis_ first (e.g. trial credits with a $0 cost
47
+ # basis before paid credits with a $5.00 cost basis).
48
48
  #
49
- # It's also possible for a single usage event's deduction to _span_ credit blocks.
50
- # In this case, Orb will deduct from the next block, ending at the credit block
51
- # which consists of unexpiring credits. Each of these deductions will lead to a
52
- # _separate_ ledger entry, one per credit block that is deducted from. By default,
53
- # the customer's total credit balance in Orb can be negative as a result of a
54
- # decrement.
49
+ # It's also possible for a single usage event's deduction to _span_ credit blocks.
50
+ # In this case, Orb will deduct from the next block, ending at the credit block
51
+ # which consists of unexpiring credits. Each of these deductions will lead to a
52
+ # _separate_ ledger entry, one per credit block that is deducted from. By default,
53
+ # the customer's total credit balance in Orb can be negative as a result of a
54
+ # decrement.
55
55
  #
56
- # ## Expiration change
56
+ # ## Expiration change
57
57
  #
58
- # The expiry of credits can be changed as a result of the API (See
59
- # [Add Ledger Entry](create-ledger-entry)). This will create a ledger entry that
60
- # specifies the balance as well as the initial and target expiry dates.
58
+ # The expiry of credits can be changed as a result of the API (See
59
+ # [Add Ledger Entry](create-ledger-entry)). This will create a ledger entry that
60
+ # specifies the balance as well as the initial and target expiry dates.
61
61
  #
62
- # Note that for this entry type, `starting_balance` will equal `ending_balance`,
63
- # and the `amount` represents the balance transferred. The credit block linked to
64
- # the ledger entry is the source credit block from which there was an expiration
65
- # change
62
+ # Note that for this entry type, `starting_balance` will equal `ending_balance`,
63
+ # and the `amount` represents the balance transferred. The credit block linked to
64
+ # the ledger entry is the source credit block from which there was an expiration
65
+ # change
66
66
  #
67
- # ## Credits expiry
67
+ # ## Credits expiry
68
68
  #
69
- # When a set of credits expire on pre-set expiration date, the customer's balance
70
- # automatically reflects this change and adds an entry to the ledger indicating
71
- # this event. Note that credit expiry should always happen close to a date
72
- # boundary in the customer's timezone.
69
+ # When a set of credits expire on pre-set expiration date, the customer's balance
70
+ # automatically reflects this change and adds an entry to the ledger indicating
71
+ # this event. Note that credit expiry should always happen close to a date
72
+ # boundary in the customer's timezone.
73
73
  #
74
- # ## Void initiated
74
+ # ## Void initiated
75
75
  #
76
- # Credit blocks can be voided via the API. The `amount` on this entry corresponds
77
- # to the number of credits that were remaining in the block at time of void.
78
- # `void_reason` will be populated if the void is created with a reason.
76
+ # Credit blocks can be voided via the API. The `amount` on this entry corresponds
77
+ # to the number of credits that were remaining in the block at time of void.
78
+ # `void_reason` will be populated if the void is created with a reason.
79
79
  #
80
- # ## Void
80
+ # ## Void
81
81
  #
82
- # When a set of credits is voided, the customer's balance automatically reflects
83
- # this change and adds an entry to the ledger indicating this event.
82
+ # When a set of credits is voided, the customer's balance automatically reflects
83
+ # this change and adds an entry to the ledger indicating this event.
84
84
  #
85
- # ## Amendment
85
+ # ## Amendment
86
86
  #
87
- # When credits are added to a customer's balance as a result of a correction, this
88
- # entry will be added to the ledger to indicate the adjustment of credits.
87
+ # When credits are added to a customer's balance as a result of a correction, this
88
+ # entry will be added to the ledger to indicate the adjustment of credits.
89
89
  #
90
90
  # @overload list(customer_id, created_at_gt: nil, created_at_gte: nil, created_at_lt: nil, created_at_lte: nil, currency: nil, cursor: nil, entry_status: nil, entry_type: nil, limit: nil, minimum_amount: nil, request_options: {})
91
91
  #
@@ -111,10 +111,10 @@ module Orb
111
111
  method: :get,
112
112
  path: ["customers/%1$s/credits/ledger", customer_id],
113
113
  query: parsed.transform_keys(
114
- created_at_gt: :"created_at[gt]",
115
- created_at_gte: :"created_at[gte]",
116
- created_at_lt: :"created_at[lt]",
117
- created_at_lte: :"created_at[lte]"
114
+ created_at_gt: "created_at[gt]",
115
+ created_at_gte: "created_at[gte]",
116
+ created_at_lt: "created_at[lt]",
117
+ created_at_lte: "created_at[lte]"
118
118
  ),
119
119
  page: Orb::Internal::Page,
120
120
  model: Orb::Models::Customers::Credits::LedgerListResponse,
@@ -123,115 +123,115 @@ module Orb
123
123
  end
124
124
 
125
125
  # This endpoint allows you to create a new ledger entry for a specified customer's
126
- # balance. This can be used to increment balance, deduct credits, and change the
127
- # expiry date of existing credits.
128
- #
129
- # ## Effects of adding a ledger entry
130
- #
131
- # 1. After calling this endpoint, [Fetch Credit Balance](fetch-customer-credits)
132
- # will return a credit block that represents the changes (i.e. balance changes
133
- # or transfers).
134
- # 2. A ledger entry will be added to the credits ledger for this customer, and
135
- # therefore returned in the
136
- # [View Credits Ledger](fetch-customer-credits-ledger) response as well as
137
- # serialized in the response to this request. In the case of deductions without
138
- # a specified block, multiple ledger entries may be created if the deduction
139
- # spans credit blocks.
140
- # 3. If `invoice_settings` is specified, an invoice will be created that reflects
141
- # the cost of the credits (based on `amount` and `per_unit_cost_basis`).
142
- #
143
- # ## Adding credits
144
- #
145
- # Adding credits is done by creating an entry of type `increment`. This requires
146
- # the caller to specify a number of credits as well as an optional expiry date in
147
- # `YYYY-MM-DD` format. Orb also recommends specifying a description to assist with
148
- # auditing. When adding credits, the caller can also specify a cost basis
149
- # per-credit, to indicate how much in USD a customer paid for a single credit in a
150
- # block. This can later be used for revenue recognition.
151
- #
152
- # The following snippet illustrates a sample request body to increment credits
153
- # which will expire in January of 2022.
154
- #
155
- # ```json
156
- # {
157
- # "entry_type": "increment",
158
- # "amount": 100,
159
- # "expiry_date": "2022-12-28",
160
- # "per_unit_cost_basis": "0.20",
161
- # "description": "Purchased 100 credits"
162
- # }
163
- # ```
164
- #
165
- # Note that by default, Orb will always first increment any _negative_ balance in
166
- # existing blocks before adding the remaining amount to the desired credit block.
167
- #
168
- # ### Invoicing for credits
169
- #
170
- # By default, Orb manipulates the credit ledger but does not charge for credits.
171
- # However, if you pass `invoice_settings` in the body of this request, Orb will
172
- # also generate a one-off invoice for the customer for the credits pre-purchase.
173
- # Note that you _must_ provide the `per_unit_cost_basis`, since the total charges
174
- # on the invoice are calculated by multiplying the cost basis with the number of
175
- # credit units added.
176
- #
177
- # ## Deducting Credits
178
- #
179
- # Orb allows you to deduct credits from a customer by creating an entry of type
180
- # `decrement`. Orb matches the algorithm for automatic deductions for determining
181
- # which credit blocks to decrement from. In the case that the deduction leads to
182
- # multiple ledger entries, the response from this endpoint will be the final
183
- # deduction. Orb also optionally allows specifying a description to assist with
184
- # auditing.
185
- #
186
- # The following snippet illustrates a sample request body to decrement credits.
187
- #
188
- # ```json
189
- # {
190
- # "entry_type": "decrement",
191
- # "amount": 20,
192
- # "description": "Removing excess credits"
193
- # }
194
- # ```
195
- #
196
- # ## Changing credits expiry
197
- #
198
- # If you'd like to change when existing credits expire, you should create a ledger
199
- # entry of type `expiration_change`. For this entry, the required parameter
200
- # `expiry_date` identifies the _originating_ block, and the required parameter
201
- # `target_expiry_date` identifies when the transferred credits should now expire.
202
- # A new credit block will be created with expiry date `target_expiry_date`, with
203
- # the same cost basis data as the original credit block, if present.
204
- #
205
- # Note that the balance of the block with the given `expiry_date` must be at least
206
- # equal to the desired transfer amount determined by the `amount` parameter.
207
- #
208
- # The following snippet illustrates a sample request body to extend the expiration
209
- # date of credits by one year:
210
- #
211
- # ```json
212
- # {
213
- # "entry_type": "expiration_change",
214
- # "amount": 10,
215
- # "expiry_date": "2022-12-28",
216
- # "block_id": "UiUhFWeLHPrBY4Ad",
217
- # "target_expiry_date": "2023-12-28",
218
- # "description": "Extending credit validity"
219
- # }
220
- # ```
221
- #
222
- # ## Voiding credits
223
- #
224
- # If you'd like to void a credit block, create a ledger entry of type `void`. For
225
- # this entry, `block_id` is required to identify the block, and `amount` indicates
226
- # how many credits to void, up to the block's initial balance. Pass in a
227
- # `void_reason` of `refund` if the void is due to a refund.
228
- #
229
- # ## Amendment
230
- #
231
- # If you'd like to undo a decrement on a credit block, create a ledger entry of
232
- # type `amendment`. For this entry, `block_id` is required to identify the block
233
- # that was originally decremented from, and `amount` indicates how many credits to
234
- # return to the customer, up to the block's initial balance.
126
+ # balance. This can be used to increment balance, deduct credits, and change the
127
+ # expiry date of existing credits.
128
+ #
129
+ # ## Effects of adding a ledger entry
130
+ #
131
+ # 1. After calling this endpoint, [Fetch Credit Balance](fetch-customer-credits)
132
+ # will return a credit block that represents the changes (i.e. balance changes
133
+ # or transfers).
134
+ # 2. A ledger entry will be added to the credits ledger for this customer, and
135
+ # therefore returned in the
136
+ # [View Credits Ledger](fetch-customer-credits-ledger) response as well as
137
+ # serialized in the response to this request. In the case of deductions without
138
+ # a specified block, multiple ledger entries may be created if the deduction
139
+ # spans credit blocks.
140
+ # 3. If `invoice_settings` is specified, an invoice will be created that reflects
141
+ # the cost of the credits (based on `amount` and `per_unit_cost_basis`).
142
+ #
143
+ # ## Adding credits
144
+ #
145
+ # Adding credits is done by creating an entry of type `increment`. This requires
146
+ # the caller to specify a number of credits as well as an optional expiry date in
147
+ # `YYYY-MM-DD` format. Orb also recommends specifying a description to assist with
148
+ # auditing. When adding credits, the caller can also specify a cost basis
149
+ # per-credit, to indicate how much in USD a customer paid for a single credit in a
150
+ # block. This can later be used for revenue recognition.
151
+ #
152
+ # The following snippet illustrates a sample request body to increment credits
153
+ # which will expire in January of 2022.
154
+ #
155
+ # ```json
156
+ # {
157
+ # "entry_type": "increment",
158
+ # "amount": 100,
159
+ # "expiry_date": "2022-12-28",
160
+ # "per_unit_cost_basis": "0.20",
161
+ # "description": "Purchased 100 credits"
162
+ # }
163
+ # ```
164
+ #
165
+ # Note that by default, Orb will always first increment any _negative_ balance in
166
+ # existing blocks before adding the remaining amount to the desired credit block.
167
+ #
168
+ # ### Invoicing for credits
169
+ #
170
+ # By default, Orb manipulates the credit ledger but does not charge for credits.
171
+ # However, if you pass `invoice_settings` in the body of this request, Orb will
172
+ # also generate a one-off invoice for the customer for the credits pre-purchase.
173
+ # Note that you _must_ provide the `per_unit_cost_basis`, since the total charges
174
+ # on the invoice are calculated by multiplying the cost basis with the number of
175
+ # credit units added.
176
+ #
177
+ # ## Deducting Credits
178
+ #
179
+ # Orb allows you to deduct credits from a customer by creating an entry of type
180
+ # `decrement`. Orb matches the algorithm for automatic deductions for determining
181
+ # which credit blocks to decrement from. In the case that the deduction leads to
182
+ # multiple ledger entries, the response from this endpoint will be the final
183
+ # deduction. Orb also optionally allows specifying a description to assist with
184
+ # auditing.
185
+ #
186
+ # The following snippet illustrates a sample request body to decrement credits.
187
+ #
188
+ # ```json
189
+ # {
190
+ # "entry_type": "decrement",
191
+ # "amount": 20,
192
+ # "description": "Removing excess credits"
193
+ # }
194
+ # ```
195
+ #
196
+ # ## Changing credits expiry
197
+ #
198
+ # If you'd like to change when existing credits expire, you should create a ledger
199
+ # entry of type `expiration_change`. For this entry, the required parameter
200
+ # `expiry_date` identifies the _originating_ block, and the required parameter
201
+ # `target_expiry_date` identifies when the transferred credits should now expire.
202
+ # A new credit block will be created with expiry date `target_expiry_date`, with
203
+ # the same cost basis data as the original credit block, if present.
204
+ #
205
+ # Note that the balance of the block with the given `expiry_date` must be at least
206
+ # equal to the desired transfer amount determined by the `amount` parameter.
207
+ #
208
+ # The following snippet illustrates a sample request body to extend the expiration
209
+ # date of credits by one year:
210
+ #
211
+ # ```json
212
+ # {
213
+ # "entry_type": "expiration_change",
214
+ # "amount": 10,
215
+ # "expiry_date": "2022-12-28",
216
+ # "block_id": "UiUhFWeLHPrBY4Ad",
217
+ # "target_expiry_date": "2023-12-28",
218
+ # "description": "Extending credit validity"
219
+ # }
220
+ # ```
221
+ #
222
+ # ## Voiding credits
223
+ #
224
+ # If you'd like to void a credit block, create a ledger entry of type `void`. For
225
+ # this entry, `block_id` is required to identify the block, and `amount` indicates
226
+ # how many credits to void, up to the block's initial balance. Pass in a
227
+ # `void_reason` of `refund` if the void is due to a refund.
228
+ #
229
+ # ## Amendment
230
+ #
231
+ # If you'd like to undo a decrement on a credit block, create a ledger entry of
232
+ # type `amendment`. For this entry, `block_id` is required to identify the block
233
+ # that was originally decremented from, and `amount` indicates how many credits to
234
+ # return to the customer, up to the block's initial balance.
235
235
  #
236
236
  # @overload create_entry(customer_id, amount:, entry_type:, expiry_date:, target_expiry_date:, block_id:, currency: nil, description: nil, effective_date: nil, invoice_settings: nil, metadata: nil, per_unit_cost_basis: nil, void_reason: nil, request_options: {})
237
237
  #
@@ -265,115 +265,115 @@ module Orb
265
265
  end
266
266
 
267
267
  # This endpoint allows you to create a new ledger entry for a specified customer's
268
- # balance. This can be used to increment balance, deduct credits, and change the
269
- # expiry date of existing credits.
270
- #
271
- # ## Effects of adding a ledger entry
272
- #
273
- # 1. After calling this endpoint, [Fetch Credit Balance](fetch-customer-credits)
274
- # will return a credit block that represents the changes (i.e. balance changes
275
- # or transfers).
276
- # 2. A ledger entry will be added to the credits ledger for this customer, and
277
- # therefore returned in the
278
- # [View Credits Ledger](fetch-customer-credits-ledger) response as well as
279
- # serialized in the response to this request. In the case of deductions without
280
- # a specified block, multiple ledger entries may be created if the deduction
281
- # spans credit blocks.
282
- # 3. If `invoice_settings` is specified, an invoice will be created that reflects
283
- # the cost of the credits (based on `amount` and `per_unit_cost_basis`).
284
- #
285
- # ## Adding credits
286
- #
287
- # Adding credits is done by creating an entry of type `increment`. This requires
288
- # the caller to specify a number of credits as well as an optional expiry date in
289
- # `YYYY-MM-DD` format. Orb also recommends specifying a description to assist with
290
- # auditing. When adding credits, the caller can also specify a cost basis
291
- # per-credit, to indicate how much in USD a customer paid for a single credit in a
292
- # block. This can later be used for revenue recognition.
293
- #
294
- # The following snippet illustrates a sample request body to increment credits
295
- # which will expire in January of 2022.
296
- #
297
- # ```json
298
- # {
299
- # "entry_type": "increment",
300
- # "amount": 100,
301
- # "expiry_date": "2022-12-28",
302
- # "per_unit_cost_basis": "0.20",
303
- # "description": "Purchased 100 credits"
304
- # }
305
- # ```
306
- #
307
- # Note that by default, Orb will always first increment any _negative_ balance in
308
- # existing blocks before adding the remaining amount to the desired credit block.
309
- #
310
- # ### Invoicing for credits
311
- #
312
- # By default, Orb manipulates the credit ledger but does not charge for credits.
313
- # However, if you pass `invoice_settings` in the body of this request, Orb will
314
- # also generate a one-off invoice for the customer for the credits pre-purchase.
315
- # Note that you _must_ provide the `per_unit_cost_basis`, since the total charges
316
- # on the invoice are calculated by multiplying the cost basis with the number of
317
- # credit units added.
318
- #
319
- # ## Deducting Credits
320
- #
321
- # Orb allows you to deduct credits from a customer by creating an entry of type
322
- # `decrement`. Orb matches the algorithm for automatic deductions for determining
323
- # which credit blocks to decrement from. In the case that the deduction leads to
324
- # multiple ledger entries, the response from this endpoint will be the final
325
- # deduction. Orb also optionally allows specifying a description to assist with
326
- # auditing.
327
- #
328
- # The following snippet illustrates a sample request body to decrement credits.
329
- #
330
- # ```json
331
- # {
332
- # "entry_type": "decrement",
333
- # "amount": 20,
334
- # "description": "Removing excess credits"
335
- # }
336
- # ```
337
- #
338
- # ## Changing credits expiry
339
- #
340
- # If you'd like to change when existing credits expire, you should create a ledger
341
- # entry of type `expiration_change`. For this entry, the required parameter
342
- # `expiry_date` identifies the _originating_ block, and the required parameter
343
- # `target_expiry_date` identifies when the transferred credits should now expire.
344
- # A new credit block will be created with expiry date `target_expiry_date`, with
345
- # the same cost basis data as the original credit block, if present.
346
- #
347
- # Note that the balance of the block with the given `expiry_date` must be at least
348
- # equal to the desired transfer amount determined by the `amount` parameter.
349
- #
350
- # The following snippet illustrates a sample request body to extend the expiration
351
- # date of credits by one year:
352
- #
353
- # ```json
354
- # {
355
- # "entry_type": "expiration_change",
356
- # "amount": 10,
357
- # "expiry_date": "2022-12-28",
358
- # "block_id": "UiUhFWeLHPrBY4Ad",
359
- # "target_expiry_date": "2023-12-28",
360
- # "description": "Extending credit validity"
361
- # }
362
- # ```
363
- #
364
- # ## Voiding credits
365
- #
366
- # If you'd like to void a credit block, create a ledger entry of type `void`. For
367
- # this entry, `block_id` is required to identify the block, and `amount` indicates
368
- # how many credits to void, up to the block's initial balance. Pass in a
369
- # `void_reason` of `refund` if the void is due to a refund.
370
- #
371
- # ## Amendment
372
- #
373
- # If you'd like to undo a decrement on a credit block, create a ledger entry of
374
- # type `amendment`. For this entry, `block_id` is required to identify the block
375
- # that was originally decremented from, and `amount` indicates how many credits to
376
- # return to the customer, up to the block's initial balance.
268
+ # balance. This can be used to increment balance, deduct credits, and change the
269
+ # expiry date of existing credits.
270
+ #
271
+ # ## Effects of adding a ledger entry
272
+ #
273
+ # 1. After calling this endpoint, [Fetch Credit Balance](fetch-customer-credits)
274
+ # will return a credit block that represents the changes (i.e. balance changes
275
+ # or transfers).
276
+ # 2. A ledger entry will be added to the credits ledger for this customer, and
277
+ # therefore returned in the
278
+ # [View Credits Ledger](fetch-customer-credits-ledger) response as well as
279
+ # serialized in the response to this request. In the case of deductions without
280
+ # a specified block, multiple ledger entries may be created if the deduction
281
+ # spans credit blocks.
282
+ # 3. If `invoice_settings` is specified, an invoice will be created that reflects
283
+ # the cost of the credits (based on `amount` and `per_unit_cost_basis`).
284
+ #
285
+ # ## Adding credits
286
+ #
287
+ # Adding credits is done by creating an entry of type `increment`. This requires
288
+ # the caller to specify a number of credits as well as an optional expiry date in
289
+ # `YYYY-MM-DD` format. Orb also recommends specifying a description to assist with
290
+ # auditing. When adding credits, the caller can also specify a cost basis
291
+ # per-credit, to indicate how much in USD a customer paid for a single credit in a
292
+ # block. This can later be used for revenue recognition.
293
+ #
294
+ # The following snippet illustrates a sample request body to increment credits
295
+ # which will expire in January of 2022.
296
+ #
297
+ # ```json
298
+ # {
299
+ # "entry_type": "increment",
300
+ # "amount": 100,
301
+ # "expiry_date": "2022-12-28",
302
+ # "per_unit_cost_basis": "0.20",
303
+ # "description": "Purchased 100 credits"
304
+ # }
305
+ # ```
306
+ #
307
+ # Note that by default, Orb will always first increment any _negative_ balance in
308
+ # existing blocks before adding the remaining amount to the desired credit block.
309
+ #
310
+ # ### Invoicing for credits
311
+ #
312
+ # By default, Orb manipulates the credit ledger but does not charge for credits.
313
+ # However, if you pass `invoice_settings` in the body of this request, Orb will
314
+ # also generate a one-off invoice for the customer for the credits pre-purchase.
315
+ # Note that you _must_ provide the `per_unit_cost_basis`, since the total charges
316
+ # on the invoice are calculated by multiplying the cost basis with the number of
317
+ # credit units added.
318
+ #
319
+ # ## Deducting Credits
320
+ #
321
+ # Orb allows you to deduct credits from a customer by creating an entry of type
322
+ # `decrement`. Orb matches the algorithm for automatic deductions for determining
323
+ # which credit blocks to decrement from. In the case that the deduction leads to
324
+ # multiple ledger entries, the response from this endpoint will be the final
325
+ # deduction. Orb also optionally allows specifying a description to assist with
326
+ # auditing.
327
+ #
328
+ # The following snippet illustrates a sample request body to decrement credits.
329
+ #
330
+ # ```json
331
+ # {
332
+ # "entry_type": "decrement",
333
+ # "amount": 20,
334
+ # "description": "Removing excess credits"
335
+ # }
336
+ # ```
337
+ #
338
+ # ## Changing credits expiry
339
+ #
340
+ # If you'd like to change when existing credits expire, you should create a ledger
341
+ # entry of type `expiration_change`. For this entry, the required parameter
342
+ # `expiry_date` identifies the _originating_ block, and the required parameter
343
+ # `target_expiry_date` identifies when the transferred credits should now expire.
344
+ # A new credit block will be created with expiry date `target_expiry_date`, with
345
+ # the same cost basis data as the original credit block, if present.
346
+ #
347
+ # Note that the balance of the block with the given `expiry_date` must be at least
348
+ # equal to the desired transfer amount determined by the `amount` parameter.
349
+ #
350
+ # The following snippet illustrates a sample request body to extend the expiration
351
+ # date of credits by one year:
352
+ #
353
+ # ```json
354
+ # {
355
+ # "entry_type": "expiration_change",
356
+ # "amount": 10,
357
+ # "expiry_date": "2022-12-28",
358
+ # "block_id": "UiUhFWeLHPrBY4Ad",
359
+ # "target_expiry_date": "2023-12-28",
360
+ # "description": "Extending credit validity"
361
+ # }
362
+ # ```
363
+ #
364
+ # ## Voiding credits
365
+ #
366
+ # If you'd like to void a credit block, create a ledger entry of type `void`. For
367
+ # this entry, `block_id` is required to identify the block, and `amount` indicates
368
+ # how many credits to void, up to the block's initial balance. Pass in a
369
+ # `void_reason` of `refund` if the void is due to a refund.
370
+ #
371
+ # ## Amendment
372
+ #
373
+ # If you'd like to undo a decrement on a credit block, create a ledger entry of
374
+ # type `amendment`. For this entry, `block_id` is required to identify the block
375
+ # that was originally decremented from, and `amount` indicates how many credits to
376
+ # return to the customer, up to the block's initial balance.
377
377
  #
378
378
  # @overload create_entry_by_external_id(external_customer_id, amount:, entry_type:, expiry_date:, target_expiry_date:, block_id:, currency: nil, description: nil, effective_date: nil, invoice_settings: nil, metadata: nil, per_unit_cost_basis: nil, void_reason: nil, request_options: {})
379
379
  #
@@ -408,86 +408,86 @@ module Orb
408
408
  end
409
409
 
410
410
  # The credits ledger provides _auditing_ functionality over Orb's credits system
411
- # with a list of actions that have taken place to modify a customer's credit
412
- # balance. This [paginated endpoint](/api-reference/pagination) lists these
413
- # entries, starting from the most recent ledger entry.
411
+ # with a list of actions that have taken place to modify a customer's credit
412
+ # balance. This [paginated endpoint](/api-reference/pagination) lists these
413
+ # entries, starting from the most recent ledger entry.
414
414
  #
415
- # More details on using Orb's real-time credit feature are
416
- # [here](/product-catalog/prepurchase).
415
+ # More details on using Orb's real-time credit feature are
416
+ # [here](/product-catalog/prepurchase).
417
417
  #
418
- # There are four major types of modifications to credit balance, detailed below.
418
+ # There are four major types of modifications to credit balance, detailed below.
419
419
  #
420
- # ## Increment
420
+ # ## Increment
421
421
  #
422
- # Credits (which optionally expire on a future date) can be added via the API
423
- # ([Add Ledger Entry](create-ledger-entry)). The ledger entry for such an action
424
- # will always contain the total eligible starting and ending balance for the
425
- # customer at the time the entry was added to the ledger.
422
+ # Credits (which optionally expire on a future date) can be added via the API
423
+ # ([Add Ledger Entry](create-ledger-entry)). The ledger entry for such an action
424
+ # will always contain the total eligible starting and ending balance for the
425
+ # customer at the time the entry was added to the ledger.
426
426
  #
427
- # ## Decrement
427
+ # ## Decrement
428
428
  #
429
- # Deductions can occur as a result of an API call to create a ledger entry (see
430
- # [Add Ledger Entry](create-ledger-entry)), or automatically as a result of
431
- # incurring usage. Both ledger entries present the `decrement` entry type.
429
+ # Deductions can occur as a result of an API call to create a ledger entry (see
430
+ # [Add Ledger Entry](create-ledger-entry)), or automatically as a result of
431
+ # incurring usage. Both ledger entries present the `decrement` entry type.
432
432
  #
433
- # As usage for a customer is reported into Orb, credits may be deducted according
434
- # to the customer's plan configuration. An automated deduction of this type will
435
- # result in a ledger entry, also with a starting and ending balance. In order to
436
- # provide better tracing capabilities for automatic deductions, Orb always
437
- # associates each automatic deduction with the `event_id` at the time of
438
- # ingestion, used to pinpoint _why_ credit deduction took place and to ensure that
439
- # credits are never deducted without an associated usage event.
433
+ # As usage for a customer is reported into Orb, credits may be deducted according
434
+ # to the customer's plan configuration. An automated deduction of this type will
435
+ # result in a ledger entry, also with a starting and ending balance. In order to
436
+ # provide better tracing capabilities for automatic deductions, Orb always
437
+ # associates each automatic deduction with the `event_id` at the time of
438
+ # ingestion, used to pinpoint _why_ credit deduction took place and to ensure that
439
+ # credits are never deducted without an associated usage event.
440
440
  #
441
- # By default, Orb uses an algorithm that automatically deducts from the _soonest
442
- # expiring credit block_ first in order to ensure that all credits are utilized
443
- # appropriately. As an example, if trial credits with an expiration date of 2
444
- # weeks from now are present for a customer, they will be used before any
445
- # deductions take place from a non-expiring credit block.
441
+ # By default, Orb uses an algorithm that automatically deducts from the _soonest
442
+ # expiring credit block_ first in order to ensure that all credits are utilized
443
+ # appropriately. As an example, if trial credits with an expiration date of 2
444
+ # weeks from now are present for a customer, they will be used before any
445
+ # deductions take place from a non-expiring credit block.
446
446
  #
447
- # If there are multiple blocks with the same expiration date, Orb will deduct from
448
- # the block with the _lower cost basis_ first (e.g. trial credits with a $0 cost
449
- # basis before paid credits with a $5.00 cost basis).
447
+ # If there are multiple blocks with the same expiration date, Orb will deduct from
448
+ # the block with the _lower cost basis_ first (e.g. trial credits with a $0 cost
449
+ # basis before paid credits with a $5.00 cost basis).
450
450
  #
451
- # It's also possible for a single usage event's deduction to _span_ credit blocks.
452
- # In this case, Orb will deduct from the next block, ending at the credit block
453
- # which consists of unexpiring credits. Each of these deductions will lead to a
454
- # _separate_ ledger entry, one per credit block that is deducted from. By default,
455
- # the customer's total credit balance in Orb can be negative as a result of a
456
- # decrement.
451
+ # It's also possible for a single usage event's deduction to _span_ credit blocks.
452
+ # In this case, Orb will deduct from the next block, ending at the credit block
453
+ # which consists of unexpiring credits. Each of these deductions will lead to a
454
+ # _separate_ ledger entry, one per credit block that is deducted from. By default,
455
+ # the customer's total credit balance in Orb can be negative as a result of a
456
+ # decrement.
457
457
  #
458
- # ## Expiration change
458
+ # ## Expiration change
459
459
  #
460
- # The expiry of credits can be changed as a result of the API (See
461
- # [Add Ledger Entry](create-ledger-entry)). This will create a ledger entry that
462
- # specifies the balance as well as the initial and target expiry dates.
460
+ # The expiry of credits can be changed as a result of the API (See
461
+ # [Add Ledger Entry](create-ledger-entry)). This will create a ledger entry that
462
+ # specifies the balance as well as the initial and target expiry dates.
463
463
  #
464
- # Note that for this entry type, `starting_balance` will equal `ending_balance`,
465
- # and the `amount` represents the balance transferred. The credit block linked to
466
- # the ledger entry is the source credit block from which there was an expiration
467
- # change
464
+ # Note that for this entry type, `starting_balance` will equal `ending_balance`,
465
+ # and the `amount` represents the balance transferred. The credit block linked to
466
+ # the ledger entry is the source credit block from which there was an expiration
467
+ # change
468
468
  #
469
- # ## Credits expiry
469
+ # ## Credits expiry
470
470
  #
471
- # When a set of credits expire on pre-set expiration date, the customer's balance
472
- # automatically reflects this change and adds an entry to the ledger indicating
473
- # this event. Note that credit expiry should always happen close to a date
474
- # boundary in the customer's timezone.
471
+ # When a set of credits expire on pre-set expiration date, the customer's balance
472
+ # automatically reflects this change and adds an entry to the ledger indicating
473
+ # this event. Note that credit expiry should always happen close to a date
474
+ # boundary in the customer's timezone.
475
475
  #
476
- # ## Void initiated
476
+ # ## Void initiated
477
477
  #
478
- # Credit blocks can be voided via the API. The `amount` on this entry corresponds
479
- # to the number of credits that were remaining in the block at time of void.
480
- # `void_reason` will be populated if the void is created with a reason.
478
+ # Credit blocks can be voided via the API. The `amount` on this entry corresponds
479
+ # to the number of credits that were remaining in the block at time of void.
480
+ # `void_reason` will be populated if the void is created with a reason.
481
481
  #
482
- # ## Void
482
+ # ## Void
483
483
  #
484
- # When a set of credits is voided, the customer's balance automatically reflects
485
- # this change and adds an entry to the ledger indicating this event.
484
+ # When a set of credits is voided, the customer's balance automatically reflects
485
+ # this change and adds an entry to the ledger indicating this event.
486
486
  #
487
- # ## Amendment
487
+ # ## Amendment
488
488
  #
489
- # When credits are added to a customer's balance as a result of a correction, this
490
- # entry will be added to the ledger to indicate the adjustment of credits.
489
+ # When credits are added to a customer's balance as a result of a correction, this
490
+ # entry will be added to the ledger to indicate the adjustment of credits.
491
491
  #
492
492
  # @overload list_by_external_id(external_customer_id, created_at_gt: nil, created_at_gte: nil, created_at_lt: nil, created_at_lte: nil, currency: nil, cursor: nil, entry_status: nil, entry_type: nil, limit: nil, minimum_amount: nil, request_options: {})
493
493
  #
@@ -513,10 +513,10 @@ module Orb
513
513
  method: :get,
514
514
  path: ["customers/external_customer_id/%1$s/credits/ledger", external_customer_id],
515
515
  query: parsed.transform_keys(
516
- created_at_gt: :"created_at[gt]",
517
- created_at_gte: :"created_at[gte]",
518
- created_at_lt: :"created_at[lt]",
519
- created_at_lte: :"created_at[lte]"
516
+ created_at_gt: "created_at[gt]",
517
+ created_at_gte: "created_at[gte]",
518
+ created_at_lt: "created_at[lt]",
519
+ created_at_lte: "created_at[lte]"
520
520
  ),
521
521
  page: Orb::Internal::Page,
522
522
  model: Orb::Models::Customers::Credits::LedgerListByExternalIDResponse,