orb-billing 0.3.1 → 0.4.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 (592) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +3 -3
  4. data/lib/orb/errors.rb +1 -1
  5. data/lib/orb/file_part.rb +2 -2
  6. data/lib/orb/internal/transport/base_client.rb +74 -5
  7. data/lib/orb/internal/transport/pooled_net_requester.rb +14 -0
  8. data/lib/orb/internal/type/array_of.rb +1 -1
  9. data/lib/orb/internal/type/base_model.rb +62 -30
  10. data/lib/orb/internal/type/converter.rb +18 -0
  11. data/lib/orb/internal/type/enum.rb +4 -3
  12. data/lib/orb/internal/type/hash_of.rb +1 -1
  13. data/lib/orb/internal/type/request_parameters.rb +4 -4
  14. data/lib/orb/internal/type/union.rb +5 -4
  15. data/lib/orb/internal/util.rb +57 -1
  16. data/lib/orb/internal.rb +6 -0
  17. data/lib/orb/models/alert.rb +29 -32
  18. data/lib/orb/models/alert_create_for_customer_params.rb +7 -8
  19. data/lib/orb/models/alert_create_for_external_customer_params.rb +7 -8
  20. data/lib/orb/models/alert_create_for_subscription_params.rb +7 -8
  21. data/lib/orb/models/alert_list_params.rb +0 -1
  22. data/lib/orb/models/alert_update_params.rb +4 -5
  23. data/lib/orb/models/amount_discount.rb +6 -7
  24. data/lib/orb/models/billable_metric.rb +9 -11
  25. data/lib/orb/models/coupon.rb +13 -12
  26. data/lib/orb/models/coupon_create_params.rb +12 -8
  27. data/lib/orb/models/coupon_list_params.rb +0 -2
  28. data/lib/orb/models/coupons/subscription_list_params.rb +0 -1
  29. data/lib/orb/models/credit_note.rb +48 -46
  30. data/lib/orb/models/credit_note_create_params.rb +6 -6
  31. data/lib/orb/models/credit_note_list_params.rb +0 -1
  32. data/lib/orb/models/customer.rb +54 -61
  33. data/lib/orb/models/customer_create_params.rb +50 -53
  34. data/lib/orb/models/customer_list_params.rb +0 -1
  35. data/lib/orb/models/customer_update_by_external_id_params.rb +50 -53
  36. data/lib/orb/models/customer_update_params.rb +50 -51
  37. data/lib/orb/models/customers/balance_transaction_create_params.rb +3 -3
  38. data/lib/orb/models/customers/balance_transaction_create_response.rb +0 -2
  39. data/lib/orb/models/customers/balance_transaction_list_params.rb +0 -1
  40. data/lib/orb/models/customers/balance_transaction_list_response.rb +0 -2
  41. data/lib/orb/models/customers/cost_list_by_external_id_params.rb +3 -4
  42. data/lib/orb/models/customers/cost_list_by_external_id_response.rb +3 -3
  43. data/lib/orb/models/customers/cost_list_params.rb +3 -4
  44. data/lib/orb/models/customers/cost_list_response.rb +3 -3
  45. data/lib/orb/models/customers/credit_list_by_external_id_params.rb +0 -2
  46. data/lib/orb/models/customers/credit_list_params.rb +0 -2
  47. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +12 -21
  48. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +14 -7
  49. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +11 -22
  50. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +14 -7
  51. data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +6 -7
  52. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +14 -7
  53. data/lib/orb/models/customers/credits/ledger_list_params.rb +8 -9
  54. data/lib/orb/models/customers/credits/ledger_list_response.rb +14 -7
  55. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +10 -15
  56. data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +0 -6
  57. data/lib/orb/models/customers/credits/top_up_create_params.rb +7 -15
  58. data/lib/orb/models/customers/credits/top_up_create_response.rb +0 -6
  59. data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +0 -1
  60. data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +0 -6
  61. data/lib/orb/models/customers/credits/top_up_list_params.rb +0 -1
  62. data/lib/orb/models/customers/credits/top_up_list_response.rb +0 -6
  63. data/lib/orb/models/dimensional_price_group.rb +1 -3
  64. data/lib/orb/models/dimensional_price_group_create_params.rb +0 -1
  65. data/lib/orb/models/dimensional_price_group_list_params.rb +0 -1
  66. data/lib/orb/models/dimensional_price_groups.rb +6 -6
  67. data/lib/orb/models/discount.rb +11 -5
  68. data/lib/orb/models/evaluate_price_group.rb +5 -1
  69. data/lib/orb/models/event_ingest_params.rb +4 -9
  70. data/lib/orb/models/event_ingest_response.rb +0 -3
  71. data/lib/orb/models/event_search_params.rb +0 -3
  72. data/lib/orb/models/event_search_response.rb +0 -4
  73. data/lib/orb/models/event_update_params.rb +0 -3
  74. data/lib/orb/models/events/backfill_close_response.rb +0 -4
  75. data/lib/orb/models/events/backfill_create_params.rb +0 -7
  76. data/lib/orb/models/events/backfill_create_response.rb +0 -4
  77. data/lib/orb/models/events/backfill_fetch_response.rb +0 -4
  78. data/lib/orb/models/events/backfill_list_params.rb +0 -1
  79. data/lib/orb/models/events/backfill_list_response.rb +0 -4
  80. data/lib/orb/models/events/backfill_revert_response.rb +0 -4
  81. data/lib/orb/models/events/event_volumes.rb +3 -3
  82. data/lib/orb/models/events/volume_list_params.rb +0 -3
  83. data/lib/orb/models/invoice.rb +179 -202
  84. data/lib/orb/models/invoice_create_params.rb +14 -21
  85. data/lib/orb/models/invoice_fetch_upcoming_response.rb +31 -54
  86. data/lib/orb/models/invoice_issue_params.rb +0 -1
  87. data/lib/orb/models/invoice_level_discount.rb +8 -4
  88. data/lib/orb/models/invoice_line_item_create_params.rb +0 -1
  89. data/lib/orb/models/invoice_line_item_create_response.rb +28 -26
  90. data/lib/orb/models/invoice_list_params.rb +6 -10
  91. data/lib/orb/models/invoice_update_params.rb +0 -1
  92. data/lib/orb/models/item.rb +7 -8
  93. data/lib/orb/models/item_list_params.rb +0 -1
  94. data/lib/orb/models/item_update_params.rb +7 -7
  95. data/lib/orb/models/metric_create_params.rb +0 -1
  96. data/lib/orb/models/metric_list_params.rb +0 -1
  97. data/lib/orb/models/metric_update_params.rb +0 -1
  98. data/lib/orb/models/percentage_discount.rb +6 -8
  99. data/lib/orb/models/plan.rb +90 -103
  100. data/lib/orb/models/plan_create_params.rb +759 -800
  101. data/lib/orb/models/plan_list_params.rb +3 -4
  102. data/lib/orb/models/plan_update_params.rb +0 -2
  103. data/lib/orb/models/plans/external_plan_id_update_params.rb +0 -2
  104. data/lib/orb/models/price.rb +1706 -1724
  105. data/lib/orb/models/price_create_params.rb +75 -84
  106. data/lib/orb/models/price_evaluate_params.rb +0 -2
  107. data/lib/orb/models/price_evaluate_response.rb +3 -3
  108. data/lib/orb/models/price_list_params.rb +0 -1
  109. data/lib/orb/models/price_update_params.rb +0 -1
  110. data/lib/orb/models/prices/external_price_id_update_params.rb +0 -1
  111. data/lib/orb/models/subscription.rb +108 -122
  112. data/lib/orb/models/subscription_cancel_params.rb +3 -5
  113. data/lib/orb/models/subscription_cancel_response.rb +43 -57
  114. data/lib/orb/models/subscription_change_apply_response.rb +43 -58
  115. data/lib/orb/models/subscription_change_cancel_response.rb +43 -58
  116. data/lib/orb/models/subscription_change_retrieve_response.rb +43 -58
  117. data/lib/orb/models/subscription_create_params.rb +1953 -1815
  118. data/lib/orb/models/subscription_create_response.rb +43 -57
  119. data/lib/orb/models/subscription_fetch_costs_params.rb +3 -4
  120. data/lib/orb/models/subscription_fetch_costs_response.rb +3 -3
  121. data/lib/orb/models/subscription_fetch_schedule_params.rb +0 -1
  122. data/lib/orb/models/subscription_fetch_schedule_response.rb +0 -1
  123. data/lib/orb/models/subscription_fetch_usage_params.rb +6 -8
  124. data/lib/orb/models/subscription_list_params.rb +3 -4
  125. data/lib/orb/models/subscription_price_intervals_params.rb +1194 -1017
  126. data/lib/orb/models/subscription_price_intervals_response.rb +43 -57
  127. data/lib/orb/models/subscription_schedule_plan_change_params.rb +1994 -1791
  128. data/lib/orb/models/subscription_schedule_plan_change_response.rb +43 -57
  129. data/lib/orb/models/subscription_trigger_phase_params.rb +0 -2
  130. data/lib/orb/models/subscription_trigger_phase_response.rb +43 -57
  131. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +43 -57
  132. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +43 -57
  133. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +43 -57
  134. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +3 -6
  135. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +43 -57
  136. data/lib/orb/models/subscription_update_params.rb +0 -5
  137. data/lib/orb/models/subscription_update_trial_params.rb +8 -6
  138. data/lib/orb/models/subscription_update_trial_response.rb +43 -57
  139. data/lib/orb/models/subscription_usage.rb +55 -39
  140. data/lib/orb/models/subscriptions.rb +6 -6
  141. data/lib/orb/models/trial_discount.rb +6 -7
  142. data/lib/orb/models/usage_discount.rb +6 -8
  143. data/lib/orb/models.rb +24 -0
  144. data/lib/orb/request_options.rb +4 -0
  145. data/lib/orb/resources/alerts.rb +30 -31
  146. data/lib/orb/resources/coupons/subscriptions.rb +3 -4
  147. data/lib/orb/resources/coupons.rb +11 -21
  148. data/lib/orb/resources/credit_notes.rb +10 -11
  149. data/lib/orb/resources/customers/balance_transactions.rb +3 -4
  150. data/lib/orb/resources/customers/costs.rb +4 -6
  151. data/lib/orb/resources/customers/credits/ledger.rb +14 -33
  152. data/lib/orb/resources/customers/credits/top_ups.rb +10 -20
  153. data/lib/orb/resources/customers/credits.rb +2 -6
  154. data/lib/orb/resources/customers.rb +40 -67
  155. data/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rb +2 -2
  156. data/lib/orb/resources/dimensional_price_groups.rb +8 -10
  157. data/lib/orb/resources/events/backfills.rb +2 -10
  158. data/lib/orb/resources/events/volume.rb +3 -6
  159. data/lib/orb/resources/events.rb +4 -12
  160. data/lib/orb/resources/invoice_line_items.rb +1 -2
  161. data/lib/orb/resources/invoices.rb +26 -43
  162. data/lib/orb/resources/items.rb +12 -13
  163. data/lib/orb/resources/metrics.rb +11 -14
  164. data/lib/orb/resources/plans/external_plan_id.rb +5 -7
  165. data/lib/orb/resources/plans.rb +14 -23
  166. data/lib/orb/resources/prices/external_price_id.rb +5 -6
  167. data/lib/orb/resources/prices.rb +25 -35
  168. data/lib/orb/resources/subscription_changes.rb +1 -1
  169. data/lib/orb/resources/subscriptions.rb +49 -107
  170. data/lib/orb/version.rb +1 -1
  171. data/lib/orb.rb +3 -0
  172. data/rbi/orb/client.rbi +5 -4
  173. data/rbi/orb/errors.rbi +59 -28
  174. data/rbi/orb/file_part.rbi +9 -6
  175. data/rbi/orb/internal/page.rbi +20 -6
  176. data/rbi/orb/internal/transport/base_client.rbi +159 -78
  177. data/rbi/orb/internal/transport/pooled_net_requester.rbi +27 -13
  178. data/rbi/orb/internal/type/array_of.rbi +42 -34
  179. data/rbi/orb/internal/type/base_model.rbi +144 -69
  180. data/rbi/orb/internal/type/base_page.rbi +12 -8
  181. data/rbi/orb/internal/type/boolean.rbi +16 -10
  182. data/rbi/orb/internal/type/converter.rbi +68 -31
  183. data/rbi/orb/internal/type/enum.rbi +28 -15
  184. data/rbi/orb/internal/type/file_input.rbi +12 -10
  185. data/rbi/orb/internal/type/hash_of.rbi +34 -24
  186. data/rbi/orb/internal/type/request_parameters.rbi +12 -4
  187. data/rbi/orb/internal/type/union.rbi +61 -25
  188. data/rbi/orb/internal/type/unknown.rbi +20 -12
  189. data/rbi/orb/internal/util.rbi +232 -90
  190. data/rbi/orb/internal.rbi +2 -0
  191. data/rbi/orb/models/alert.rbi +114 -70
  192. data/rbi/orb/models/alert_create_for_customer_params.rbi +69 -27
  193. data/rbi/orb/models/alert_create_for_external_customer_params.rbi +80 -29
  194. data/rbi/orb/models/alert_create_for_subscription_params.rbi +62 -26
  195. data/rbi/orb/models/alert_disable_params.rbi +18 -6
  196. data/rbi/orb/models/alert_enable_params.rbi +18 -6
  197. data/rbi/orb/models/alert_list_params.rbi +24 -20
  198. data/rbi/orb/models/alert_retrieve_params.rbi +11 -4
  199. data/rbi/orb/models/alert_update_params.rbi +29 -14
  200. data/rbi/orb/models/amount_discount.rbi +29 -19
  201. data/rbi/orb/models/billable_metric.rbi +34 -26
  202. data/rbi/orb/models/billing_cycle_relative_date.rbi +11 -5
  203. data/rbi/orb/models/coupon.rbi +28 -20
  204. data/rbi/orb/models/coupon_archive_params.rbi +11 -4
  205. data/rbi/orb/models/coupon_create_params.rbi +85 -38
  206. data/rbi/orb/models/coupon_fetch_params.rbi +11 -4
  207. data/rbi/orb/models/coupon_list_params.rbi +19 -15
  208. data/rbi/orb/models/coupons/subscription_list_params.rbi +19 -6
  209. data/rbi/orb/models/credit_note.rbi +329 -158
  210. data/rbi/orb/models/credit_note_create_params.rbi +64 -29
  211. data/rbi/orb/models/credit_note_fetch_params.rbi +13 -4
  212. data/rbi/orb/models/credit_note_list_params.rbi +23 -17
  213. data/rbi/orb/models/customer.rbi +461 -329
  214. data/rbi/orb/models/customer_create_params.rbi +713 -325
  215. data/rbi/orb/models/customer_delete_params.rbi +13 -4
  216. data/rbi/orb/models/customer_fetch_by_external_id_params.rbi +13 -4
  217. data/rbi/orb/models/customer_fetch_params.rbi +11 -4
  218. data/rbi/orb/models/customer_list_params.rbi +21 -17
  219. data/rbi/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +16 -4
  220. data/rbi/orb/models/customer_sync_payment_methods_from_gateway_params.rbi +16 -4
  221. data/rbi/orb/models/customer_update_by_external_id_params.rbi +1193 -336
  222. data/rbi/orb/models/customer_update_params.rbi +712 -324
  223. data/rbi/orb/models/customers/balance_transaction_create_params.rbi +56 -21
  224. data/rbi/orb/models/customers/balance_transaction_create_response.rbi +172 -61
  225. data/rbi/orb/models/customers/balance_transaction_list_params.rbi +26 -17
  226. data/rbi/orb/models/customers/balance_transaction_list_response.rbi +182 -59
  227. data/rbi/orb/models/customers/cost_list_by_external_id_params.rbi +62 -22
  228. data/rbi/orb/models/customers/cost_list_by_external_id_response.rbi +180 -124
  229. data/rbi/orb/models/customers/cost_list_params.rbi +48 -22
  230. data/rbi/orb/models/customers/cost_list_response.rbi +172 -123
  231. data/rbi/orb/models/customers/credit_list_by_external_id_params.rbi +24 -15
  232. data/rbi/orb/models/customers/credit_list_by_external_id_response.rbi +54 -22
  233. data/rbi/orb/models/customers/credit_list_params.rbi +21 -15
  234. data/rbi/orb/models/customers/credit_list_response.rbi +50 -21
  235. data/rbi/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +118 -68
  236. data/rbi/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +755 -434
  237. data/rbi/orb/models/customers/credits/ledger_create_entry_params.rbi +129 -59
  238. data/rbi/orb/models/customers/credits/ledger_create_entry_response.rbi +812 -425
  239. data/rbi/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +108 -44
  240. data/rbi/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +793 -432
  241. data/rbi/orb/models/customers/credits/ledger_list_params.rbi +129 -40
  242. data/rbi/orb/models/customers/credits/ledger_list_response.rbi +847 -389
  243. data/rbi/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +86 -53
  244. data/rbi/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +77 -48
  245. data/rbi/orb/models/customers/credits/top_up_create_params.rbi +96 -45
  246. data/rbi/orb/models/customers/credits/top_up_create_response.rbi +95 -43
  247. data/rbi/orb/models/customers/credits/top_up_delete_by_external_id_params.rbi +22 -6
  248. data/rbi/orb/models/customers/credits/top_up_delete_params.rbi +21 -5
  249. data/rbi/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +15 -5
  250. data/rbi/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +82 -49
  251. data/rbi/orb/models/customers/credits/top_up_list_params.rbi +15 -5
  252. data/rbi/orb/models/customers/credits/top_up_list_response.rbi +96 -43
  253. data/rbi/orb/models/dimensional_price_group.rbi +21 -15
  254. data/rbi/orb/models/dimensional_price_group_create_params.rbi +22 -16
  255. data/rbi/orb/models/dimensional_price_group_list_params.rbi +19 -6
  256. data/rbi/orb/models/dimensional_price_group_retrieve_params.rbi +16 -4
  257. data/rbi/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +15 -8
  258. data/rbi/orb/models/dimensional_price_groups.rbi +21 -13
  259. data/rbi/orb/models/discount.rbi +11 -5
  260. data/rbi/orb/models/evaluate_price_group.rbi +29 -12
  261. data/rbi/orb/models/event_deprecate_params.rbi +13 -4
  262. data/rbi/orb/models/event_deprecate_response.rbi +11 -3
  263. data/rbi/orb/models/event_ingest_params.rbi +41 -31
  264. data/rbi/orb/models/event_ingest_response.rbi +78 -23
  265. data/rbi/orb/models/event_search_params.rbi +18 -14
  266. data/rbi/orb/models/event_search_response.rbi +42 -21
  267. data/rbi/orb/models/event_update_params.rbi +20 -16
  268. data/rbi/orb/models/event_update_response.rbi +11 -3
  269. data/rbi/orb/models/events/backfill_close_params.rbi +13 -9
  270. data/rbi/orb/models/events/backfill_close_response.rbi +70 -29
  271. data/rbi/orb/models/events/backfill_create_params.rbi +24 -18
  272. data/rbi/orb/models/events/backfill_create_response.rbi +69 -29
  273. data/rbi/orb/models/events/backfill_fetch_params.rbi +13 -9
  274. data/rbi/orb/models/events/backfill_fetch_response.rbi +70 -29
  275. data/rbi/orb/models/events/backfill_list_params.rbi +19 -6
  276. data/rbi/orb/models/events/backfill_list_response.rbi +68 -28
  277. data/rbi/orb/models/events/backfill_revert_params.rbi +13 -9
  278. data/rbi/orb/models/events/backfill_revert_response.rbi +69 -29
  279. data/rbi/orb/models/events/event_volumes.rbi +38 -10
  280. data/rbi/orb/models/events/volume_list_params.rbi +21 -15
  281. data/rbi/orb/models/invoice.rbi +1411 -805
  282. data/rbi/orb/models/invoice_create_params.rbi +107 -69
  283. data/rbi/orb/models/invoice_fetch_params.rbi +11 -4
  284. data/rbi/orb/models/invoice_fetch_upcoming_params.rbi +18 -5
  285. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +2187 -876
  286. data/rbi/orb/models/invoice_issue_params.rbi +17 -5
  287. data/rbi/orb/models/invoice_level_discount.rbi +11 -4
  288. data/rbi/orb/models/invoice_line_item_create_params.rbi +23 -17
  289. data/rbi/orb/models/invoice_line_item_create_response.rbi +675 -376
  290. data/rbi/orb/models/invoice_list_params.rbi +68 -47
  291. data/rbi/orb/models/invoice_mark_paid_params.rbi +20 -14
  292. data/rbi/orb/models/invoice_pay_params.rbi +11 -4
  293. data/rbi/orb/models/invoice_update_params.rbi +16 -10
  294. data/rbi/orb/models/invoice_void_params.rbi +11 -4
  295. data/rbi/orb/models/item.rbi +90 -39
  296. data/rbi/orb/models/item_create_params.rbi +15 -5
  297. data/rbi/orb/models/item_fetch_params.rbi +11 -4
  298. data/rbi/orb/models/item_list_params.rbi +17 -6
  299. data/rbi/orb/models/item_update_params.rbi +86 -39
  300. data/rbi/orb/models/metric_create_params.rbi +20 -16
  301. data/rbi/orb/models/metric_fetch_params.rbi +11 -4
  302. data/rbi/orb/models/metric_list_params.rbi +21 -17
  303. data/rbi/orb/models/metric_update_params.rbi +16 -10
  304. data/rbi/orb/models/pagination_metadata.rbi +17 -4
  305. data/rbi/orb/models/percentage_discount.rbi +33 -19
  306. data/rbi/orb/models/plan.rbi +532 -365
  307. data/rbi/orb/models/plan_create_params.rbi +5295 -2870
  308. data/rbi/orb/models/plan_fetch_params.rbi +11 -4
  309. data/rbi/orb/models/plan_list_params.rbi +35 -27
  310. data/rbi/orb/models/plan_update_params.rbi +17 -13
  311. data/rbi/orb/models/plans/external_plan_id_fetch_params.rbi +13 -9
  312. data/rbi/orb/models/plans/external_plan_id_update_params.rbi +22 -13
  313. data/rbi/orb/models/price.rbi +11332 -5033
  314. data/rbi/orb/models/price_create_params.rbi +583 -245
  315. data/rbi/orb/models/price_evaluate_params.rbi +21 -17
  316. data/rbi/orb/models/price_evaluate_response.rbi +14 -6
  317. data/rbi/orb/models/price_fetch_params.rbi +11 -4
  318. data/rbi/orb/models/price_list_params.rbi +17 -6
  319. data/rbi/orb/models/price_update_params.rbi +16 -10
  320. data/rbi/orb/models/prices/external_price_id_fetch_params.rbi +15 -8
  321. data/rbi/orb/models/prices/external_price_id_update_params.rbi +21 -10
  322. data/rbi/orb/models/subscription.rbi +668 -420
  323. data/rbi/orb/models/subscription_cancel_params.rbi +47 -22
  324. data/rbi/orb/models/subscription_cancel_response.rbi +817 -438
  325. data/rbi/orb/models/subscription_change_apply_params.rbi +19 -13
  326. data/rbi/orb/models/subscription_change_apply_response.rbi +906 -505
  327. data/rbi/orb/models/subscription_change_cancel_params.rbi +13 -4
  328. data/rbi/orb/models/subscription_change_cancel_response.rbi +906 -516
  329. data/rbi/orb/models/subscription_change_retrieve_params.rbi +13 -4
  330. data/rbi/orb/models/subscription_change_retrieve_response.rbi +903 -524
  331. data/rbi/orb/models/subscription_create_params.rbi +10096 -6746
  332. data/rbi/orb/models/subscription_create_response.rbi +817 -438
  333. data/rbi/orb/models/subscription_fetch_costs_params.rbi +50 -22
  334. data/rbi/orb/models/subscription_fetch_costs_response.rbi +172 -123
  335. data/rbi/orb/models/subscription_fetch_params.rbi +13 -4
  336. data/rbi/orb/models/subscription_fetch_schedule_params.rbi +23 -17
  337. data/rbi/orb/models/subscription_fetch_schedule_response.rbi +45 -19
  338. data/rbi/orb/models/subscription_fetch_usage_params.rbi +84 -34
  339. data/rbi/orb/models/subscription_list_params.rbi +42 -28
  340. data/rbi/orb/models/subscription_price_intervals_params.rbi +5798 -3823
  341. data/rbi/orb/models/subscription_price_intervals_response.rbi +840 -453
  342. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +9676 -6922
  343. data/rbi/orb/models/subscription_schedule_plan_change_response.rbi +838 -467
  344. data/rbi/orb/models/subscription_trigger_phase_params.rbi +19 -13
  345. data/rbi/orb/models/subscription_trigger_phase_response.rbi +832 -448
  346. data/rbi/orb/models/subscription_unschedule_cancellation_params.rbi +16 -4
  347. data/rbi/orb/models/subscription_unschedule_cancellation_response.rbi +839 -467
  348. data/rbi/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +22 -5
  349. data/rbi/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +815 -504
  350. data/rbi/orb/models/subscription_unschedule_pending_plan_changes_params.rbi +16 -4
  351. data/rbi/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +828 -497
  352. data/rbi/orb/models/subscription_update_fixed_fee_quantity_params.rbi +63 -26
  353. data/rbi/orb/models/subscription_update_fixed_fee_quantity_response.rbi +839 -467
  354. data/rbi/orb/models/subscription_update_params.rbi +22 -16
  355. data/rbi/orb/models/subscription_update_trial_params.rbi +60 -19
  356. data/rbi/orb/models/subscription_update_trial_response.rbi +832 -447
  357. data/rbi/orb/models/subscription_usage.rbi +325 -121
  358. data/rbi/orb/models/subscriptions.rbi +19 -11
  359. data/rbi/orb/models/top_level_ping_params.rbi +11 -4
  360. data/rbi/orb/models/top_level_ping_response.rbi +10 -3
  361. data/rbi/orb/models/trial_discount.rbi +30 -20
  362. data/rbi/orb/models/usage_discount.rbi +29 -19
  363. data/rbi/orb/models.rbi +22 -11
  364. data/rbi/orb/request_options.rbi +12 -6
  365. data/rbi/orb/resources/alerts.rbi +61 -40
  366. data/rbi/orb/resources/coupons/subscriptions.rbi +7 -5
  367. data/rbi/orb/resources/coupons.rbi +33 -18
  368. data/rbi/orb/resources/credit_notes.rbi +22 -13
  369. data/rbi/orb/resources/customers/balance_transactions.rbi +17 -9
  370. data/rbi/orb/resources/customers/costs.rbi +18 -11
  371. data/rbi/orb/resources/customers/credits/ledger.rbi +98 -74
  372. data/rbi/orb/resources/customers/credits/top_ups.rbi +61 -25
  373. data/rbi/orb/resources/customers/credits.rbi +16 -7
  374. data/rbi/orb/resources/customers.rbi +137 -72
  375. data/rbi/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +8 -4
  376. data/rbi/orb/resources/dimensional_price_groups.rbi +26 -12
  377. data/rbi/orb/resources/events/backfills.rbi +35 -17
  378. data/rbi/orb/resources/events/volume.rbi +7 -5
  379. data/rbi/orb/resources/events.rbi +26 -16
  380. data/rbi/orb/resources/invoice_line_items.rbi +7 -5
  381. data/rbi/orb/resources/invoices.rbi +72 -41
  382. data/rbi/orb/resources/items.rbi +40 -13
  383. data/rbi/orb/resources/metrics.rbi +25 -15
  384. data/rbi/orb/resources/plans/external_plan_id.rbi +15 -7
  385. data/rbi/orb/resources/plans.rbi +57 -47
  386. data/rbi/orb/resources/prices/external_price_id.rbi +73 -68
  387. data/rbi/orb/resources/prices.rbi +176 -156
  388. data/rbi/orb/resources/subscription_changes.rbi +19 -11
  389. data/rbi/orb/resources/subscriptions.rbi +200 -114
  390. data/rbi/orb/resources/top_level.rbi +9 -3
  391. data/sig/orb/internal/page.rbs +0 -2
  392. data/sig/orb/internal/transport/base_client.rbs +16 -1
  393. data/sig/orb/internal/transport/pooled_net_requester.rbs +2 -0
  394. data/sig/orb/internal/type/base_model.rbs +11 -5
  395. data/sig/orb/internal/type/base_page.rbs +1 -1
  396. data/sig/orb/internal/type/converter.rbs +2 -0
  397. data/sig/orb/internal/type/enum.rbs +1 -0
  398. data/sig/orb/internal/type/request_parameters.rbs +3 -1
  399. data/sig/orb/internal/type/union.rbs +1 -0
  400. data/sig/orb/internal/util.rbs +13 -0
  401. data/sig/orb/internal.rbs +2 -0
  402. data/sig/orb/models/alert.rbs +19 -31
  403. data/sig/orb/models/alert_create_for_customer_params.rbs +3 -7
  404. data/sig/orb/models/alert_create_for_external_customer_params.rbs +3 -7
  405. data/sig/orb/models/alert_create_for_subscription_params.rbs +3 -7
  406. data/sig/orb/models/alert_disable_params.rbs +0 -2
  407. data/sig/orb/models/alert_enable_params.rbs +0 -2
  408. data/sig/orb/models/alert_list_params.rbs +0 -2
  409. data/sig/orb/models/alert_retrieve_params.rbs +0 -2
  410. data/sig/orb/models/alert_update_params.rbs +3 -7
  411. data/sig/orb/models/amount_discount.rbs +4 -6
  412. data/sig/orb/models/billable_metric.rbs +7 -9
  413. data/sig/orb/models/coupon.rbs +5 -8
  414. data/sig/orb/models/coupon_archive_params.rbs +0 -2
  415. data/sig/orb/models/coupon_create_params.rbs +3 -9
  416. data/sig/orb/models/coupon_fetch_params.rbs +0 -2
  417. data/sig/orb/models/coupon_list_params.rbs +0 -2
  418. data/sig/orb/models/coupons/subscription_list_params.rbs +0 -2
  419. data/sig/orb/models/credit_note.rbs +48 -66
  420. data/sig/orb/models/credit_note_create_params.rbs +3 -7
  421. data/sig/orb/models/credit_note_fetch_params.rbs +0 -2
  422. data/sig/orb/models/credit_note_list_params.rbs +0 -2
  423. data/sig/orb/models/customer.rbs +43 -63
  424. data/sig/orb/models/customer_create_params.rbs +32 -52
  425. data/sig/orb/models/customer_delete_params.rbs +0 -2
  426. data/sig/orb/models/customer_fetch_by_external_id_params.rbs +0 -2
  427. data/sig/orb/models/customer_fetch_params.rbs +0 -2
  428. data/sig/orb/models/customer_list_params.rbs +0 -2
  429. data/sig/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbs +0 -2
  430. data/sig/orb/models/customer_sync_payment_methods_from_gateway_params.rbs +0 -2
  431. data/sig/orb/models/customer_update_by_external_id_params.rbs +32 -52
  432. data/sig/orb/models/customer_update_params.rbs +32 -52
  433. data/sig/orb/models/customers/balance_transaction_create_params.rbs +0 -2
  434. data/sig/orb/models/customers/balance_transaction_create_response.rbs +0 -6
  435. data/sig/orb/models/customers/balance_transaction_list_params.rbs +0 -2
  436. data/sig/orb/models/customers/balance_transaction_list_response.rbs +0 -6
  437. data/sig/orb/models/customers/cost_list_by_external_id_params.rbs +0 -2
  438. data/sig/orb/models/customers/cost_list_by_external_id_response.rbs +0 -6
  439. data/sig/orb/models/customers/cost_list_params.rbs +0 -2
  440. data/sig/orb/models/customers/cost_list_response.rbs +0 -6
  441. data/sig/orb/models/customers/credit_list_by_external_id_params.rbs +0 -2
  442. data/sig/orb/models/customers/credit_list_by_external_id_response.rbs +0 -2
  443. data/sig/orb/models/customers/credit_list_params.rbs +0 -2
  444. data/sig/orb/models/customers/credit_list_response.rbs +0 -2
  445. data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbs +3 -7
  446. data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbs +1 -43
  447. data/sig/orb/models/customers/credits/ledger_create_entry_params.rbs +3 -7
  448. data/sig/orb/models/customers/credits/ledger_create_entry_response.rbs +1 -43
  449. data/sig/orb/models/customers/credits/ledger_list_by_external_id_params.rbs +0 -2
  450. data/sig/orb/models/customers/credits/ledger_list_by_external_id_response.rbs +1 -43
  451. data/sig/orb/models/customers/credits/ledger_list_params.rbs +0 -2
  452. data/sig/orb/models/customers/credits/ledger_list_response.rbs +1 -43
  453. data/sig/orb/models/customers/credits/top_up_create_by_external_id_params.rbs +3 -7
  454. data/sig/orb/models/customers/credits/top_up_create_by_external_id_response.rbs +0 -4
  455. data/sig/orb/models/customers/credits/top_up_create_params.rbs +3 -7
  456. data/sig/orb/models/customers/credits/top_up_create_response.rbs +0 -4
  457. data/sig/orb/models/customers/credits/top_up_delete_by_external_id_params.rbs +0 -2
  458. data/sig/orb/models/customers/credits/top_up_delete_params.rbs +0 -2
  459. data/sig/orb/models/customers/credits/top_up_list_by_external_id_params.rbs +0 -2
  460. data/sig/orb/models/customers/credits/top_up_list_by_external_id_response.rbs +0 -4
  461. data/sig/orb/models/customers/credits/top_up_list_params.rbs +0 -2
  462. data/sig/orb/models/customers/credits/top_up_list_response.rbs +0 -4
  463. data/sig/orb/models/dimensional_price_group.rbs +0 -2
  464. data/sig/orb/models/dimensional_price_group_create_params.rbs +0 -2
  465. data/sig/orb/models/dimensional_price_group_list_params.rbs +0 -2
  466. data/sig/orb/models/dimensional_price_group_retrieve_params.rbs +0 -2
  467. data/sig/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbs +0 -2
  468. data/sig/orb/models/dimensional_price_groups.rbs +6 -8
  469. data/sig/orb/models/discount.rbs +5 -5
  470. data/sig/orb/models/evaluate_price_group.rbs +4 -6
  471. data/sig/orb/models/event_deprecate_params.rbs +0 -2
  472. data/sig/orb/models/event_deprecate_response.rbs +0 -2
  473. data/sig/orb/models/event_ingest_params.rbs +3 -7
  474. data/sig/orb/models/event_ingest_response.rbs +0 -6
  475. data/sig/orb/models/event_search_params.rbs +0 -2
  476. data/sig/orb/models/event_search_response.rbs +0 -4
  477. data/sig/orb/models/event_update_params.rbs +0 -2
  478. data/sig/orb/models/event_update_response.rbs +0 -2
  479. data/sig/orb/models/events/backfill_close_params.rbs +0 -2
  480. data/sig/orb/models/events/backfill_close_response.rbs +0 -2
  481. data/sig/orb/models/events/backfill_create_params.rbs +0 -2
  482. data/sig/orb/models/events/backfill_create_response.rbs +0 -2
  483. data/sig/orb/models/events/backfill_fetch_params.rbs +0 -2
  484. data/sig/orb/models/events/backfill_fetch_response.rbs +0 -2
  485. data/sig/orb/models/events/backfill_list_params.rbs +0 -2
  486. data/sig/orb/models/events/backfill_list_response.rbs +0 -2
  487. data/sig/orb/models/events/backfill_revert_params.rbs +0 -2
  488. data/sig/orb/models/events/backfill_revert_response.rbs +0 -2
  489. data/sig/orb/models/events/event_volumes.rbs +3 -10
  490. data/sig/orb/models/events/volume_list_params.rbs +0 -2
  491. data/sig/orb/models/invoice.rbs +110 -172
  492. data/sig/orb/models/invoice_create_params.rbs +10 -16
  493. data/sig/orb/models/invoice_fetch_params.rbs +0 -2
  494. data/sig/orb/models/invoice_fetch_upcoming_params.rbs +0 -2
  495. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +2 -64
  496. data/sig/orb/models/invoice_issue_params.rbs +0 -2
  497. data/sig/orb/models/invoice_level_discount.rbs +2 -4
  498. data/sig/orb/models/invoice_line_item_create_params.rbs +0 -2
  499. data/sig/orb/models/invoice_line_item_create_response.rbs +2 -36
  500. data/sig/orb/models/invoice_list_params.rbs +4 -6
  501. data/sig/orb/models/invoice_mark_paid_params.rbs +0 -2
  502. data/sig/orb/models/invoice_pay_params.rbs +0 -2
  503. data/sig/orb/models/invoice_update_params.rbs +0 -2
  504. data/sig/orb/models/invoice_void_params.rbs +0 -2
  505. data/sig/orb/models/item.rbs +7 -11
  506. data/sig/orb/models/item_create_params.rbs +0 -2
  507. data/sig/orb/models/item_fetch_params.rbs +0 -2
  508. data/sig/orb/models/item_list_params.rbs +0 -2
  509. data/sig/orb/models/item_update_params.rbs +7 -11
  510. data/sig/orb/models/metric_create_params.rbs +0 -2
  511. data/sig/orb/models/metric_fetch_params.rbs +0 -2
  512. data/sig/orb/models/metric_list_params.rbs +0 -2
  513. data/sig/orb/models/metric_update_params.rbs +0 -2
  514. data/sig/orb/models/pagination_metadata.rbs +0 -2
  515. data/sig/orb/models/percentage_discount.rbs +4 -6
  516. data/sig/orb/models/plan.rbs +45 -73
  517. data/sig/orb/models/plan_create_params.rbs +518 -696
  518. data/sig/orb/models/plan_fetch_params.rbs +0 -2
  519. data/sig/orb/models/plan_list_params.rbs +0 -2
  520. data/sig/orb/models/plan_update_params.rbs +0 -2
  521. data/sig/orb/models/plans/external_plan_id_fetch_params.rbs +0 -2
  522. data/sig/orb/models/plans/external_plan_id_update_params.rbs +0 -2
  523. data/sig/orb/models/price.rbs +1194 -1730
  524. data/sig/orb/models/price_create_params.rbs +59 -97
  525. data/sig/orb/models/price_evaluate_params.rbs +0 -2
  526. data/sig/orb/models/price_evaluate_response.rbs +3 -6
  527. data/sig/orb/models/price_fetch_params.rbs +0 -2
  528. data/sig/orb/models/price_list_params.rbs +0 -2
  529. data/sig/orb/models/price_update_params.rbs +0 -2
  530. data/sig/orb/models/prices/external_price_id_fetch_params.rbs +0 -2
  531. data/sig/orb/models/prices/external_price_id_update_params.rbs +0 -2
  532. data/sig/orb/models/subscription.rbs +56 -94
  533. data/sig/orb/models/subscription_cancel_params.rbs +0 -2
  534. data/sig/orb/models/subscription_cancel_response.rbs +20 -60
  535. data/sig/orb/models/subscription_change_apply_params.rbs +0 -2
  536. data/sig/orb/models/subscription_change_apply_response.rbs +20 -62
  537. data/sig/orb/models/subscription_change_cancel_params.rbs +0 -2
  538. data/sig/orb/models/subscription_change_cancel_response.rbs +20 -62
  539. data/sig/orb/models/subscription_change_retrieve_params.rbs +0 -2
  540. data/sig/orb/models/subscription_change_retrieve_response.rbs +20 -62
  541. data/sig/orb/models/subscription_create_params.rbs +1103 -1499
  542. data/sig/orb/models/subscription_create_response.rbs +20 -60
  543. data/sig/orb/models/subscription_fetch_costs_params.rbs +0 -2
  544. data/sig/orb/models/subscription_fetch_costs_response.rbs +0 -6
  545. data/sig/orb/models/subscription_fetch_params.rbs +0 -2
  546. data/sig/orb/models/subscription_fetch_schedule_params.rbs +0 -2
  547. data/sig/orb/models/subscription_fetch_schedule_response.rbs +0 -4
  548. data/sig/orb/models/subscription_fetch_usage_params.rbs +0 -2
  549. data/sig/orb/models/subscription_list_params.rbs +0 -2
  550. data/sig/orb/models/subscription_price_intervals_params.rbs +666 -896
  551. data/sig/orb/models/subscription_price_intervals_response.rbs +20 -60
  552. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +1103 -1499
  553. data/sig/orb/models/subscription_schedule_plan_change_response.rbs +20 -60
  554. data/sig/orb/models/subscription_trigger_phase_params.rbs +0 -2
  555. data/sig/orb/models/subscription_trigger_phase_response.rbs +20 -60
  556. data/sig/orb/models/subscription_unschedule_cancellation_params.rbs +0 -2
  557. data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +20 -60
  558. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbs +0 -2
  559. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +20 -60
  560. data/sig/orb/models/subscription_unschedule_pending_plan_changes_params.rbs +0 -2
  561. data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +20 -60
  562. data/sig/orb/models/subscription_update_fixed_fee_quantity_params.rbs +0 -2
  563. data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +20 -60
  564. data/sig/orb/models/subscription_update_params.rbs +0 -2
  565. data/sig/orb/models/subscription_update_trial_params.rbs +1 -3
  566. data/sig/orb/models/subscription_update_trial_response.rbs +20 -60
  567. data/sig/orb/models/subscription_usage.rbs +35 -53
  568. data/sig/orb/models/subscriptions.rbs +6 -8
  569. data/sig/orb/models/top_level_ping_params.rbs +0 -2
  570. data/sig/orb/models/top_level_ping_response.rbs +0 -2
  571. data/sig/orb/models/trial_discount.rbs +4 -6
  572. data/sig/orb/models/usage_discount.rbs +4 -6
  573. data/sig/orb/request_options.rbs +1 -1
  574. data/sig/orb/resources/alerts.rbs +12 -12
  575. data/sig/orb/resources/coupons/subscriptions.rbs +1 -1
  576. data/sig/orb/resources/coupons.rbs +4 -4
  577. data/sig/orb/resources/credit_notes.rbs +4 -4
  578. data/sig/orb/resources/customers/credits/ledger.rbs +2 -2
  579. data/sig/orb/resources/customers/credits/top_ups.rbs +2 -2
  580. data/sig/orb/resources/customers.rbs +24 -24
  581. data/sig/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbs +1 -1
  582. data/sig/orb/resources/dimensional_price_groups.rbs +3 -3
  583. data/sig/orb/resources/events/volume.rbs +1 -1
  584. data/sig/orb/resources/events.rbs +1 -1
  585. data/sig/orb/resources/invoices.rbs +10 -10
  586. data/sig/orb/resources/items.rbs +5 -5
  587. data/sig/orb/resources/metrics.rbs +4 -4
  588. data/sig/orb/resources/plans/external_plan_id.rbs +2 -2
  589. data/sig/orb/resources/plans.rbs +5 -5
  590. data/sig/orb/resources/prices.rbs +11 -11
  591. data/sig/orb/resources/subscriptions.rbs +21 -21
  592. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 419ff101a6d09de79a68655064cd315df1915451f0d1b395f411f75fd823623a
4
- data.tar.gz: 38ef3fa62382d435a88b1d394f7bd28b18cd70d6c9f003ad252e29fa3d1fe53b
3
+ metadata.gz: 38b3bf74b4e8dd32bd70721c88a432e1700d34742b5435fb1f623124f9d69aae
4
+ data.tar.gz: 67304b3d1242e85d48a26dd2a108cdac385698fba02c7d6109d850836bb71b91
5
5
  SHA512:
6
- metadata.gz: 55004f9c82b06ae34185b2ab4a3ba837772129b737ebb84675f0ffc8a42e7648ce07d2cc476f3d4413c3501181ae72be05e8b94527c2d869f24fb36fba3f552b
7
- data.tar.gz: b04180071d9065d617e62dc13d4504e132f84ffeda3ecbc2d9b72b5f0c278d37763851a1e35f9d4f75c6c15086a4909715494c72fd2caf3d630fa5c2a1a198b8
6
+ metadata.gz: 4d6cdb145141d9b8c1cc43175bb784b1b07288414147c0e8c9eaf36a4928e5c13e0f610c8a16282774c42c5706272b52a78babd80e4ae973dc873c47709be06c
7
+ data.tar.gz: 3fa6dd7dd0f921f286993942bb61621d646c8462110ec2a02628aae0eb8a1db9ff3f1fbefd818b4612c3827eaf240b732989a9be008270830388704d5a6bdd30
data/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2025-05-13)
4
+
5
+ Full Changelog: [v0.3.2...v0.4.0](https://github.com/orbcorp/orb-ruby/compare/v0.3.2...v0.4.0)
6
+
7
+ ### Features
8
+
9
+ * expose base client options as read only attributes ([1f638b6](https://github.com/orbcorp/orb-ruby/commit/1f638b60ad1679bc7969f441650ba61fb9a65e8a))
10
+ * expose recursive `#to_h` conversion ([cfd49a1](https://github.com/orbcorp/orb-ruby/commit/cfd49a15d805ffaa5828249c5b91565661ae7e52))
11
+ * support sorbet aliases at the runtime ([786d1e3](https://github.com/orbcorp/orb-ruby/commit/786d1e3dd882054bd298e33a448a194f1d68bac4))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **internal:** update gemspec name ([852ab56](https://github.com/orbcorp/orb-ruby/commit/852ab562ee4948d3fe4de8dd877f9301f36c8a4b))
17
+
18
+
19
+ ### Chores
20
+
21
+ * fix misc linting / minor issues ([0e7dd84](https://github.com/orbcorp/orb-ruby/commit/0e7dd846c906cc2e72827f5477a93e4799ab9482))
22
+ * **internal:** version bump ([359839c](https://github.com/orbcorp/orb-ruby/commit/359839c734c4bcf8051490b1e8723674ef634753))
23
+
24
+ ## 0.3.2 (2025-05-07)
25
+
26
+ Full Changelog: [v0.3.1...v0.3.2](https://github.com/orbcorp/orb-ruby/compare/v0.3.1...v0.3.2)
27
+
28
+ ### Bug Fixes
29
+
30
+ * **internal:** ensure formatting always uses c.utf-8 locale ([c4cc44a](https://github.com/orbcorp/orb-ruby/commit/c4cc44a8e280089938586de353b08e8091056ca0))
31
+
32
+
33
+ ### Chores
34
+
35
+ * **internal:** version bump ([fede0e6](https://github.com/orbcorp/orb-ruby/commit/fede0e64ca4753cc961e8308ddcef2b39dcb6f24))
36
+ * revert ignoring Gemfile.lock ([e572719](https://github.com/orbcorp/orb-ruby/commit/e572719854490cfa7735dcc70d9cfd1dc4d4a122))
37
+
3
38
  ## 0.3.1 (2025-05-06)
4
39
 
5
40
  Full Changelog: [v0.3.0...v0.3.1](https://github.com/orbcorp/orb-ruby/compare/v0.3.0...v0.3.1)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "orb-billing", "~> 0.3.1"
18
+ gem "orb-billing", "~> 0.4.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -200,9 +200,9 @@ Sorbet's typed enums require sub-classing of the [`T::Enum` class](https://sorbe
200
200
  Since this library does not depend on `sorbet-runtime`, it uses a [`T.all` intersection type](https://sorbet.org/docs/intersection-types) with a ruby primitive type to construct a "tagged alias" instead.
201
201
 
202
202
  ```ruby
203
- module Orb::Models::BillingCycleRelativeDate
203
+ module Orb::BillingCycleRelativeDate
204
204
  # This alias aids language service driven navigation.
205
- TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::BillingCycleRelativeDate) }
205
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::BillingCycleRelativeDate) }
206
206
  end
207
207
  ```
208
208
 
data/lib/orb/errors.rb CHANGED
@@ -99,7 +99,7 @@ module Orb
99
99
  # @param response [nil]
100
100
  # @param message [String, nil]
101
101
  #
102
- # @return [Orb::Errors::APIStatusError]
102
+ # @return [self]
103
103
  def self.for(url:, status:, body:, request:, response:, message: nil)
104
104
  key = Orb::Internal::Util.dig(body, :type)
105
105
  kwargs = {
data/lib/orb/file_part.rb CHANGED
@@ -45,9 +45,9 @@ module Orb
45
45
  @filename =
46
46
  case content
47
47
  in Pathname
48
- filename.nil? ? content.basename.to_path : File.basename(filename)
48
+ filename.nil? ? content.basename.to_path : ::File.basename(filename)
49
49
  else
50
- filename.nil? ? nil : File.basename(filename)
50
+ filename.nil? ? nil : ::File.basename(filename)
51
51
  end
52
52
  @content_type = content_type
53
53
  end
@@ -7,6 +7,8 @@ module Orb
7
7
  #
8
8
  # @abstract
9
9
  class BaseClient
10
+ extend Orb::Internal::Util::SorbetRuntimeSupport
11
+
10
12
  # from whatwg fetch spec
11
13
  MAX_REDIRECTS = 20
12
14
 
@@ -151,6 +153,27 @@ module Orb
151
153
  end
152
154
  end
153
155
 
156
+ # @return [URI::Generic]
157
+ attr_reader :base_url
158
+
159
+ # @return [Float]
160
+ attr_reader :timeout
161
+
162
+ # @return [Integer]
163
+ attr_reader :max_retries
164
+
165
+ # @return [Float]
166
+ attr_reader :initial_retry_delay
167
+
168
+ # @return [Float]
169
+ attr_reader :max_retry_delay
170
+
171
+ # @return [Hash{String=>String}]
172
+ attr_reader :headers
173
+
174
+ # @return [String, nil]
175
+ attr_reader :idempotency_header
176
+
154
177
  # @api private
155
178
  # @return [Orb::Internal::Transport::PooledNetRequester]
156
179
  attr_reader :requester
@@ -182,10 +205,11 @@ module Orb
182
205
  },
183
206
  headers
184
207
  )
185
- @base_url = Orb::Internal::Util.parse_uri(base_url)
208
+ @base_url_components = Orb::Internal::Util.parse_uri(base_url)
209
+ @base_url = Orb::Internal::Util.unparse_uri(@base_url_components)
186
210
  @idempotency_header = idempotency_header&.to_s&.downcase
187
- @max_retries = max_retries
188
211
  @timeout = timeout
212
+ @max_retries = max_retries
189
213
  @initial_retry_delay = initial_retry_delay
190
214
  @max_retry_delay = max_retry_delay
191
215
  end
@@ -276,10 +300,11 @@ module Orb
276
300
  Orb::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
277
301
  end
278
302
 
303
+ url = Orb::Internal::Util.join_parsed_uri(@base_url_components, {**req, path: path, query: query})
279
304
  headers, encoded = Orb::Internal::Util.encode_content(headers, body)
280
305
  {
281
306
  method: method,
282
- url: Orb::Internal::Util.join_parsed_uri(@base_url, {**req, path: path, query: query}),
307
+ url: url,
283
308
  headers: headers,
284
309
  body: encoded,
285
310
  max_retries: opts.fetch(:max_retries, @max_retries),
@@ -473,10 +498,54 @@ module Orb
473
498
  # @return [String]
474
499
  def inspect
475
500
  # rubocop:disable Layout/LineLength
476
- base_url = Orb::Internal::Util.unparse_uri(@base_url)
477
- "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{base_url} max_retries=#{@max_retries} timeout=#{@timeout}>"
501
+ "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{@base_url} max_retries=#{@max_retries} timeout=#{@timeout}>"
478
502
  # rubocop:enable Layout/LineLength
479
503
  end
504
+
505
+ define_sorbet_constant!(:RequestComponents) do
506
+ T.type_alias do
507
+ {
508
+ method: Symbol,
509
+ path: T.any(String, T::Array[String]),
510
+ query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]),
511
+ headers: T.nilable(
512
+ T::Hash[String,
513
+ T.nilable(
514
+ T.any(
515
+ String,
516
+ Integer,
517
+ T::Array[T.nilable(T.any(String, Integer))]
518
+ )
519
+ )]
520
+ ),
521
+ body: T.nilable(T.anything),
522
+ unwrap: T.nilable(
523
+ T.any(
524
+ Symbol,
525
+ Integer,
526
+ T::Array[T.any(Symbol, Integer)],
527
+ T.proc.params(arg0: T.anything).returns(T.anything)
528
+ )
529
+ ),
530
+ page: T.nilable(T::Class[Orb::Internal::Type::BasePage[Orb::Internal::Type::BaseModel]]),
531
+ stream: T.nilable(T::Class[T.anything]),
532
+ model: T.nilable(Orb::Internal::Type::Converter::Input),
533
+ options: T.nilable(Orb::RequestOptions::OrHash)
534
+ }
535
+ end
536
+ end
537
+ define_sorbet_constant!(:RequestInput) do
538
+ T.type_alias do
539
+ {
540
+ method: Symbol,
541
+ url: URI::Generic,
542
+ headers: T::Hash[String, String],
543
+ body: T.anything,
544
+ max_retries: Integer,
545
+ timeout: Float
546
+ }
547
+ end
548
+ end
480
549
  end
481
550
  end
482
551
  end
@@ -5,6 +5,8 @@ module Orb
5
5
  module Transport
6
6
  # @api private
7
7
  class PooledNetRequester
8
+ extend Orb::Internal::Util::SorbetRuntimeSupport
9
+
8
10
  # from the golang stdlib
9
11
  # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
10
12
  KEEP_ALIVE_TIMEOUT = 30
@@ -187,6 +189,18 @@ module Orb
187
189
  @size = size
188
190
  @pools = {}
189
191
  end
192
+
193
+ define_sorbet_constant!(:Request) do
194
+ T.type_alias do
195
+ {
196
+ method: Symbol,
197
+ url: URI::Generic,
198
+ headers: T::Hash[String, String],
199
+ body: T.anything,
200
+ deadline: Float
201
+ }
202
+ end
203
+ end
190
204
  end
191
205
  end
192
206
  end
@@ -29,7 +29,7 @@ module Orb
29
29
  #
30
30
  # @option spec [Boolean] :"nil?"
31
31
  #
32
- # @return [Orb::Internal::Type::ArrayOf]
32
+ # @return [self]
33
33
  def self.[](...) = new(...)
34
34
 
35
35
  # @api public
@@ -6,6 +6,7 @@ module Orb
6
6
  # @abstract
7
7
  class BaseModel
8
8
  extend Orb::Internal::Type::Converter
9
+ extend Orb::Internal::Util::SorbetRuntimeSupport
9
10
 
10
11
  class << self
11
12
  # @api private
@@ -13,11 +14,17 @@ module Orb
13
14
  # Assumes superclass fields are totally defined before fields are accessed /
14
15
  # defined on subclasses.
15
16
  #
16
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
17
- def known_fields
18
- @known_fields ||= (self < Orb::Internal::Type::BaseModel ? superclass.known_fields.dup : {})
17
+ # @param child [Class<Orb::Internal::Type::BaseModel>]
18
+ def inherited(child)
19
+ super
20
+ child.known_fields.replace(known_fields.dup)
19
21
  end
20
22
 
23
+ # @api private
24
+ #
25
+ # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
26
+ def known_fields = @known_fields ||= {}
27
+
21
28
  # @api private
22
29
  #
23
30
  # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
@@ -199,7 +206,7 @@ module Orb
199
206
  #
200
207
  # @option state [Integer] :branched
201
208
  #
202
- # @return [Orb::Internal::Type::BaseModel, Object]
209
+ # @return [self, Object]
203
210
  def coerce(value, state:)
204
211
  exactness = state.fetch(:exactness)
205
212
 
@@ -258,7 +265,7 @@ module Orb
258
265
 
259
266
  # @api private
260
267
  #
261
- # @param value [Orb::Internal::Type::BaseModel, Object]
268
+ # @param value [self, Object]
262
269
  #
263
270
  # @param state [Hash{Symbol=>Object}] .
264
271
  #
@@ -299,6 +306,39 @@ module Orb
299
306
  end
300
307
  end
301
308
 
309
+ class << self
310
+ # @api private
311
+ #
312
+ # @param model [Orb::Internal::Type::BaseModel]
313
+ # @param convert [Boolean]
314
+ #
315
+ # @return [Hash{Symbol=>Object}]
316
+ def recursively_to_h(model, convert:)
317
+ rec = ->(x) do
318
+ case x
319
+ in Orb::Internal::Type::BaseModel
320
+ if convert
321
+ fields = x.class.known_fields
322
+ x.to_h.to_h do |key, val|
323
+ [key, rec.call(fields.key?(key) ? x.public_send(key) : val)]
324
+ rescue Orb::Errors::ConversionError
325
+ [key, rec.call(val)]
326
+ end
327
+ else
328
+ rec.call(x.to_h)
329
+ end
330
+ in Hash
331
+ x.transform_values(&rec)
332
+ in Array
333
+ x.map(&rec)
334
+ else
335
+ x
336
+ end
337
+ end
338
+ rec.call(model)
339
+ end
340
+ end
341
+
302
342
  # @api public
303
343
  #
304
344
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
@@ -335,6 +375,14 @@ module Orb
335
375
 
336
376
  alias_method :to_hash, :to_h
337
377
 
378
+ # @api public
379
+ #
380
+ # In addition to the behaviour of `#to_h`, this method will recursively call
381
+ # `#to_h` on nested models.
382
+ #
383
+ # @return [Hash{Symbol=>Object}]
384
+ def deep_to_h = self.class.recursively_to_h(@data, convert: false)
385
+
338
386
  # @param keys [Array<Symbol>, nil]
339
387
  #
340
388
  # @return [Hash{Symbol=>Object}]
@@ -350,29 +398,6 @@ module Orb
350
398
  .to_h
351
399
  end
352
400
 
353
- class << self
354
- # @api private
355
- #
356
- # @param model [Orb::Internal::Type::BaseModel]
357
- #
358
- # @return [Hash{Symbol=>Object}]
359
- def walk(model)
360
- walk = ->(x) do
361
- case x
362
- in Orb::Internal::Type::BaseModel
363
- walk.call(x.to_h)
364
- in Hash
365
- x.transform_values(&walk)
366
- in Array
367
- x.map(&walk)
368
- else
369
- x
370
- end
371
- end
372
- walk.call(model)
373
- end
374
- end
375
-
376
401
  # @api public
377
402
  #
378
403
  # @param a [Object]
@@ -418,12 +443,19 @@ module Orb
418
443
  # @api public
419
444
  #
420
445
  # @return [String]
421
- def to_s = self.class.walk(@data).to_s
446
+ def to_s = deep_to_h.to_s
422
447
 
423
448
  # @api private
424
449
  #
425
450
  # @return [String]
426
- def inspect = "#<#{self.class}:0x#{object_id.to_s(16)} #{self}>"
451
+ def inspect
452
+ converted = self.class.recursively_to_h(self, convert: true)
453
+ "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>"
454
+ end
455
+
456
+ define_sorbet_constant!(:KnownField) do
457
+ T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} }
458
+ end
427
459
  end
428
460
  end
429
461
  end
@@ -5,6 +5,8 @@ module Orb
5
5
  module Type
6
6
  # @api private
7
7
  module Converter
8
+ extend Orb::Internal::Util::SorbetRuntimeSupport
9
+
8
10
  # rubocop:disable Lint/UnusedMethodArgument
9
11
 
10
12
  # @api private
@@ -268,6 +270,22 @@ module Orb
268
270
  end
269
271
  end
270
272
  end
273
+
274
+ define_sorbet_constant!(:Input) do
275
+ T.type_alias { T.any(Orb::Internal::Type::Converter, T::Class[T.anything]) }
276
+ end
277
+ define_sorbet_constant!(:CoerceState) do
278
+ T.type_alias do
279
+ {
280
+ strictness: T.any(T::Boolean, Symbol),
281
+ exactness: {yes: Integer, no: Integer, maybe: Integer},
282
+ branched: Integer
283
+ }
284
+ end
285
+ end
286
+ define_sorbet_constant!(:DumpState) do
287
+ T.type_alias { {can_retry: T::Boolean} }
288
+ end
271
289
  end
272
290
  end
273
291
  end
@@ -17,11 +17,11 @@ module Orb
17
17
  # values safely.
18
18
  #
19
19
  # @example
20
- # # `billing_cycle_relative_date` is a `Orb::Models::BillingCycleRelativeDate`
20
+ # # `billing_cycle_relative_date` is a `Orb::BillingCycleRelativeDate`
21
21
  # case billing_cycle_relative_date
22
- # when Orb::Models::BillingCycleRelativeDate::START_OF_TERM
22
+ # when Orb::BillingCycleRelativeDate::START_OF_TERM
23
23
  # # ...
24
- # when Orb::Models::BillingCycleRelativeDate::END_OF_TERM
24
+ # when Orb::BillingCycleRelativeDate::END_OF_TERM
25
25
  # # ...
26
26
  # else
27
27
  # puts(billing_cycle_relative_date)
@@ -38,6 +38,7 @@ module Orb
38
38
  # end
39
39
  module Enum
40
40
  include Orb::Internal::Type::Converter
41
+ include Orb::Internal::Util::SorbetRuntimeSupport
41
42
 
42
43
  # All of the valid Symbol values for this enum.
43
44
  #
@@ -29,7 +29,7 @@ module Orb
29
29
  #
30
30
  # @option spec [Boolean] :"nil?"
31
31
  #
32
- # @return [Orb::Internal::Type::HashOf]
32
+ # @return [self]
33
33
  def self.[](...) = new(...)
34
34
 
35
35
  # @api public
@@ -5,10 +5,10 @@ module Orb
5
5
  module Type
6
6
  # @api private
7
7
  module RequestParameters
8
- # @!parse
9
- # # Options to specify HTTP behaviour for this request.
10
- # # @return [Orb::RequestOptions, Hash{Symbol=>Object}]
11
- # attr_accessor :request_options
8
+ # @!attribute request_options
9
+ # Options to specify HTTP behaviour for this request.
10
+ #
11
+ # @return [Orb::RequestOptions, Hash{Symbol=>Object}]
12
12
 
13
13
  # @param mod [Module]
14
14
  def self.included(mod)
@@ -6,13 +6,13 @@ module Orb
6
6
  # @api private
7
7
  #
8
8
  # @example
9
- # # `discount` is a `Orb::Models::Discount`
9
+ # # `discount` is a `Orb::Discount`
10
10
  # case discount
11
- # when Orb::Models::PercentageDiscount
11
+ # when Orb::PercentageDiscount
12
12
  # puts(discount.applies_to_price_ids)
13
- # when Orb::Models::TrialDiscount
13
+ # when Orb::TrialDiscount
14
14
  # puts(discount.discount_type)
15
- # when Orb::Models::UsageDiscount
15
+ # when Orb::UsageDiscount
16
16
  # puts(discount.usage_discount)
17
17
  # else
18
18
  # puts(discount)
@@ -46,6 +46,7 @@ module Orb
46
46
  # end
47
47
  module Union
48
48
  include Orb::Internal::Type::Converter
49
+ include Orb::Internal::Util::SorbetRuntimeSupport
49
50
 
50
51
  # @api private
51
52
  #
@@ -535,7 +535,7 @@ module Orb
535
535
  filename = ERB::Util.url_encode(val.filename)
536
536
  y << "; filename=\"#{filename}\""
537
537
  in Pathname | IO
538
- filename = ERB::Util.url_encode(File.basename(val.to_path))
538
+ filename = ERB::Util.url_encode(::File.basename(val.to_path))
539
539
  y << "; filename=\"#{filename}\""
540
540
  else
541
541
  end
@@ -801,6 +801,62 @@ module Orb
801
801
  end
802
802
  end
803
803
  end
804
+
805
+ # @api private
806
+ module SorbetRuntimeSupport
807
+ class MissingSorbetRuntimeError < ::RuntimeError
808
+ end
809
+
810
+ # @api private
811
+ #
812
+ # @return [Hash{Symbol=>Object}]
813
+ private def sorbet_runtime_constants = @sorbet_runtime_constants ||= {}
814
+
815
+ # @api private
816
+ #
817
+ # @param name [Symbol]
818
+ def const_missing(name)
819
+ super unless sorbet_runtime_constants.key?(name)
820
+
821
+ unless Object.const_defined?(:T)
822
+ message = "Trying to access a Sorbet constant #{name.inspect} without `sorbet-runtime`."
823
+ raise MissingSorbetRuntimeError.new(message)
824
+ end
825
+
826
+ sorbet_runtime_constants.fetch(name).call
827
+ end
828
+
829
+ # @api private
830
+ #
831
+ # @param name [Symbol]
832
+ # @param blk [Proc]
833
+ def define_sorbet_constant!(name, &blk) = sorbet_runtime_constants.store(name, blk)
834
+ end
835
+
836
+ extend Orb::Internal::Util::SorbetRuntimeSupport
837
+
838
+ define_sorbet_constant!(:ParsedUri) do
839
+ T.type_alias do
840
+ {
841
+ scheme: T.nilable(String),
842
+ host: T.nilable(String),
843
+ port: T.nilable(Integer),
844
+ path: T.nilable(String),
845
+ query: T::Hash[String, T::Array[String]]
846
+ }
847
+ end
848
+ end
849
+
850
+ define_sorbet_constant!(:ServerSentEvent) do
851
+ T.type_alias do
852
+ {
853
+ event: T.nilable(String),
854
+ data: T.nilable(String),
855
+ id: T.nilable(String),
856
+ retry: T.nilable(Integer)
857
+ }
858
+ end
859
+ end
804
860
  end
805
861
  end
806
862
  end
data/lib/orb/internal.rb CHANGED
@@ -2,10 +2,16 @@
2
2
 
3
3
  module Orb
4
4
  module Internal
5
+ extend Orb::Internal::Util::SorbetRuntimeSupport
6
+
5
7
  OMIT =
6
8
  Object.new.tap do
7
9
  _1.define_singleton_method(:inspect) { "#<#{Orb::Internal}::OMIT>" }
8
10
  end
9
11
  .freeze
12
+
13
+ define_sorbet_constant!(:AnyHash) do
14
+ T.type_alias { T::Hash[Symbol, T.anything] }
15
+ end
10
16
  end
11
17
  end