orb-billing 0.1.0.pre.alpha.37 → 0.1.0.pre.alpha.39

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -5
  3. data/lib/orb/client.rb +4 -0
  4. data/lib/orb/internal/page.rb +6 -2
  5. data/lib/orb/internal/transport/base_client.rb +3 -3
  6. data/lib/orb/internal/transport/pooled_net_requester.rb +2 -2
  7. data/lib/orb/internal/type/array_of.rb +5 -3
  8. data/lib/orb/internal/type/base_model.rb +19 -16
  9. data/lib/orb/internal/type/base_page.rb +4 -1
  10. data/lib/orb/internal/type/{boolean_model.rb → boolean.rb} +2 -2
  11. data/lib/orb/internal/type/converter.rb +26 -23
  12. data/lib/orb/internal/type/enum.rb +10 -8
  13. data/lib/orb/internal/type/hash_of.rb +3 -1
  14. data/lib/orb/internal/util.rb +29 -50
  15. data/lib/orb/models/alert.rb +10 -10
  16. data/lib/orb/models/alert_create_for_customer_params.rb +3 -3
  17. data/lib/orb/models/alert_create_for_external_customer_params.rb +3 -3
  18. data/lib/orb/models/alert_create_for_subscription_params.rb +3 -3
  19. data/lib/orb/models/alert_list_params.rb +5 -5
  20. data/lib/orb/models/alert_update_params.rb +3 -3
  21. data/lib/orb/models/amount_discount.rb +1 -1
  22. data/lib/orb/models/billable_metric.rb +7 -7
  23. data/lib/orb/models/coupon.rb +7 -7
  24. data/lib/orb/models/coupon_create_params.rb +2 -2
  25. data/lib/orb/models/coupon_list_params.rb +3 -3
  26. data/lib/orb/models/coupons/subscription_list_params.rb +1 -1
  27. data/lib/orb/models/credit_note.rb +1 -1
  28. data/lib/orb/models/credit_note_list_params.rb +5 -5
  29. data/lib/orb/models/customer.rb +237 -237
  30. data/lib/orb/models/customer_create_params.rb +229 -229
  31. data/lib/orb/models/customer_list_params.rb +5 -5
  32. data/lib/orb/models/customer_update_by_external_id_params.rb +230 -230
  33. data/lib/orb/models/customer_update_params.rb +230 -230
  34. data/lib/orb/models/customers/balance_transaction_create_response.rb +2 -2
  35. data/lib/orb/models/customers/balance_transaction_list_params.rb +5 -5
  36. data/lib/orb/models/customers/balance_transaction_list_response.rb +2 -2
  37. data/lib/orb/models/customers/cost_list_by_external_id_params.rb +6 -6
  38. data/lib/orb/models/customers/cost_list_params.rb +6 -6
  39. data/lib/orb/models/customers/credit_list_by_external_id_params.rb +3 -3
  40. data/lib/orb/models/customers/credit_list_params.rb +3 -3
  41. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +22 -22
  42. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +22 -22
  43. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +22 -22
  44. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +22 -22
  45. data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +5 -5
  46. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +22 -22
  47. data/lib/orb/models/customers/credits/ledger_list_params.rb +5 -5
  48. data/lib/orb/models/customers/credits/ledger_list_response.rb +22 -22
  49. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +10 -10
  50. data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +9 -9
  51. data/lib/orb/models/customers/credits/top_up_create_params.rb +10 -10
  52. data/lib/orb/models/customers/credits/top_up_create_response.rb +9 -9
  53. data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +1 -1
  54. data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +9 -9
  55. data/lib/orb/models/customers/credits/top_up_list_params.rb +1 -1
  56. data/lib/orb/models/customers/credits/top_up_list_response.rb +9 -9
  57. data/lib/orb/models/dimensional_price_group.rb +7 -7
  58. data/lib/orb/models/dimensional_price_group_create_params.rb +2 -2
  59. data/lib/orb/models/dimensional_price_group_list_params.rb +1 -1
  60. data/lib/orb/models/evaluate_price_group.rb +1 -1
  61. data/lib/orb/models/event_ingest_params.rb +8 -8
  62. data/lib/orb/models/event_ingest_response.rb +4 -4
  63. data/lib/orb/models/event_search_params.rb +5 -5
  64. data/lib/orb/models/event_search_response.rb +9 -9
  65. data/lib/orb/models/event_update_params.rb +4 -4
  66. data/lib/orb/models/events/backfill_close_response.rb +8 -8
  67. data/lib/orb/models/events/backfill_create_params.rb +12 -12
  68. data/lib/orb/models/events/backfill_create_response.rb +8 -8
  69. data/lib/orb/models/events/backfill_fetch_response.rb +8 -8
  70. data/lib/orb/models/events/backfill_list_params.rb +1 -1
  71. data/lib/orb/models/events/backfill_list_response.rb +8 -8
  72. data/lib/orb/models/events/backfill_revert_response.rb +8 -8
  73. data/lib/orb/models/events/event_volumes.rb +1 -1
  74. data/lib/orb/models/events/volume_list_params.rb +7 -7
  75. data/lib/orb/models/invoice.rb +278 -278
  76. data/lib/orb/models/invoice_create_params.rb +13 -12
  77. data/lib/orb/models/invoice_fetch_upcoming_response.rb +274 -274
  78. data/lib/orb/models/invoice_issue_params.rb +5 -5
  79. data/lib/orb/models/invoice_line_item_create_params.rb +1 -1
  80. data/lib/orb/models/invoice_line_item_create_response.rb +32 -32
  81. data/lib/orb/models/invoice_list_params.rb +13 -13
  82. data/lib/orb/models/invoice_update_params.rb +2 -2
  83. data/lib/orb/models/item.rb +2 -2
  84. data/lib/orb/models/item_list_params.rb +1 -1
  85. data/lib/orb/models/metric_create_params.rb +2 -2
  86. data/lib/orb/models/metric_list_params.rb +5 -5
  87. data/lib/orb/models/metric_update_params.rb +2 -2
  88. data/lib/orb/models/pagination_metadata.rb +1 -1
  89. data/lib/orb/models/percentage_discount.rb +2 -2
  90. data/lib/orb/models/plan.rb +40 -40
  91. data/lib/orb/models/plan_create_params.rb +292 -292
  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 +186 -186
  96. data/lib/orb/models/price_create_params.rb +21 -21
  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 +120 -93
  102. data/lib/orb/models/subscription_cancel_params.rb +4 -4
  103. data/lib/orb/models/subscription_cancel_response.rb +156 -78
  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 +705 -705
  111. data/lib/orb/models/subscription_create_response.rb +156 -78
  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 +358 -358
  118. data/lib/orb/models/subscription_price_intervals_response.rb +158 -78
  119. data/lib/orb/models/subscription_schedule_plan_change_params.rb +715 -715
  120. data/lib/orb/models/subscription_schedule_plan_change_response.rb +158 -78
  121. data/lib/orb/models/subscription_trigger_phase_params.rb +4 -4
  122. data/lib/orb/models/subscription_trigger_phase_response.rb +158 -78
  123. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +158 -78
  124. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +159 -79
  125. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +158 -78
  126. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +9 -9
  127. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +158 -78
  128. data/lib/orb/models/subscription_update_params.rb +11 -11
  129. data/lib/orb/models/subscription_update_trial_params.rb +4 -4
  130. data/lib/orb/models/subscription_update_trial_response.rb +158 -78
  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 +40 -35
  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 +10 -5
  138. data/lib/orb/resources/customers/balance_transactions.rb +28 -23
  139. data/lib/orb/resources/customers/costs.rb +232 -232
  140. data/lib/orb/resources/customers/credits/ledger.rb +348 -338
  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 +61 -56
  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 +40 -31
  150. data/lib/orb/resources/items.rb +1 -1
  151. data/lib/orb/resources/metrics.rb +13 -8
  152. data/lib/orb/resources/plans/external_plan_id.rb +14 -14
  153. data/lib/orb/resources/plans.rb +24 -19
  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 +817 -807
  158. data/lib/orb/resources/top_level.rb +4 -4
  159. data/lib/orb/version.rb +1 -1
  160. data/lib/orb.rb +8 -1
  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 +7 -13
  166. data/rbi/lib/orb/internal/type/array_of.rbi +10 -18
  167. data/rbi/lib/orb/internal/type/base_model.rbi +45 -64
  168. data/rbi/lib/orb/internal/type/base_page.rbi +5 -10
  169. data/rbi/lib/orb/internal/type/{boolean_model.rbi → boolean.rbi} +5 -9
  170. data/rbi/lib/orb/internal/type/converter.rbi +25 -31
  171. data/rbi/lib/orb/internal/type/enum.rbi +14 -20
  172. data/rbi/lib/orb/internal/type/hash_of.rbi +8 -16
  173. data/rbi/lib/orb/internal/type/request_parameters.rbi +1 -2
  174. data/rbi/lib/orb/internal/type/union.rbi +10 -20
  175. data/rbi/lib/orb/internal/type/unknown.rbi +4 -8
  176. data/rbi/lib/orb/internal/util.rbi +40 -72
  177. data/rbi/lib/orb/internal.rbi +1 -1
  178. data/rbi/lib/orb/models/alert.rbi +21 -33
  179. data/rbi/lib/orb/models/alert_create_for_customer_params.rbi +8 -13
  180. data/rbi/lib/orb/models/alert_create_for_external_customer_params.rbi +8 -13
  181. data/rbi/lib/orb/models/alert_create_for_subscription_params.rbi +8 -13
  182. data/rbi/lib/orb/models/alert_disable_params.rbi +2 -4
  183. data/rbi/lib/orb/models/alert_enable_params.rbi +2 -4
  184. data/rbi/lib/orb/models/alert_list_params.rbi +3 -6
  185. data/rbi/lib/orb/models/alert_retrieve_params.rbi +2 -4
  186. data/rbi/lib/orb/models/alert_update_params.rbi +7 -11
  187. data/rbi/lib/orb/models/amount_discount.rbi +4 -7
  188. data/rbi/lib/orb/models/billable_metric.rbi +10 -13
  189. data/rbi/lib/orb/models/billing_cycle_relative_date.rbi +1 -2
  190. data/rbi/lib/orb/models/coupon.rbi +9 -11
  191. data/rbi/lib/orb/models/coupon_archive_params.rbi +2 -4
  192. data/rbi/lib/orb/models/coupon_create_params.rbi +8 -14
  193. data/rbi/lib/orb/models/coupon_fetch_params.rbi +2 -4
  194. data/rbi/lib/orb/models/coupon_list_params.rbi +3 -4
  195. data/rbi/lib/orb/models/coupons/subscription_list_params.rbi +3 -5
  196. data/rbi/lib/orb/models/credit_note.rbi +22 -45
  197. data/rbi/lib/orb/models/credit_note_create_params.rbi +5 -10
  198. data/rbi/lib/orb/models/credit_note_fetch_params.rbi +2 -4
  199. data/rbi/lib/orb/models/credit_note_list_params.rbi +3 -6
  200. data/rbi/lib/orb/models/customer.rbi +256 -281
  201. data/rbi/lib/orb/models/customer_create_params.rbi +251 -276
  202. data/rbi/lib/orb/models/customer_delete_params.rbi +2 -4
  203. data/rbi/lib/orb/models/customer_fetch_by_external_id_params.rbi +2 -4
  204. data/rbi/lib/orb/models/customer_fetch_params.rbi +2 -4
  205. data/rbi/lib/orb/models/customer_list_params.rbi +3 -6
  206. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +2 -4
  207. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rbi +2 -4
  208. data/rbi/lib/orb/models/customer_update_by_external_id_params.rbi +252 -277
  209. data/rbi/lib/orb/models/customer_update_params.rbi +252 -277
  210. data/rbi/lib/orb/models/customers/balance_transaction_create_params.rbi +3 -6
  211. data/rbi/lib/orb/models/customers/balance_transaction_create_response.rbi +10 -19
  212. data/rbi/lib/orb/models/customers/balance_transaction_list_params.rbi +3 -6
  213. data/rbi/lib/orb/models/customers/balance_transaction_list_response.rbi +10 -19
  214. data/rbi/lib/orb/models/customers/cost_list_by_external_id_params.rbi +8 -10
  215. data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +6 -12
  216. data/rbi/lib/orb/models/customers/cost_list_params.rbi +8 -10
  217. data/rbi/lib/orb/models/customers/cost_list_response.rbi +6 -12
  218. data/rbi/lib/orb/models/customers/credit_list_by_external_id_params.rbi +3 -4
  219. data/rbi/lib/orb/models/customers/credit_list_by_external_id_response.rbi +2 -4
  220. data/rbi/lib/orb/models/customers/credit_list_params.rbi +3 -4
  221. data/rbi/lib/orb/models/customers/credit_list_response.rbi +2 -4
  222. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +26 -33
  223. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +79 -136
  224. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_params.rbi +26 -33
  225. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_response.rbi +78 -135
  226. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +5 -10
  227. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +79 -136
  228. data/rbi/lib/orb/models/customers/credits/ledger_list_params.rbi +5 -10
  229. data/rbi/lib/orb/models/customers/credits/ledger_list_response.rbi +74 -131
  230. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +13 -19
  231. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +12 -18
  232. data/rbi/lib/orb/models/customers/credits/top_up_create_params.rbi +13 -19
  233. data/rbi/lib/orb/models/customers/credits/top_up_create_response.rbi +12 -18
  234. data/rbi/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rbi +2 -4
  235. data/rbi/lib/orb/models/customers/credits/top_up_delete_params.rbi +2 -4
  236. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +3 -5
  237. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +12 -18
  238. data/rbi/lib/orb/models/customers/credits/top_up_list_params.rbi +3 -5
  239. data/rbi/lib/orb/models/customers/credits/top_up_list_response.rbi +12 -18
  240. data/rbi/lib/orb/models/dimensional_price_group.rbi +8 -9
  241. data/rbi/lib/orb/models/dimensional_price_group_create_params.rbi +4 -7
  242. data/rbi/lib/orb/models/dimensional_price_group_list_params.rbi +3 -5
  243. data/rbi/lib/orb/models/dimensional_price_group_retrieve_params.rbi +2 -4
  244. data/rbi/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +2 -4
  245. data/rbi/lib/orb/models/dimensional_price_groups.rbi +2 -4
  246. data/rbi/lib/orb/models/discount.rbi +1 -2
  247. data/rbi/lib/orb/models/evaluate_price_group.rbi +3 -6
  248. data/rbi/lib/orb/models/event_deprecate_params.rbi +2 -4
  249. data/rbi/lib/orb/models/event_deprecate_response.rbi +2 -4
  250. data/rbi/lib/orb/models/event_ingest_params.rbi +10 -13
  251. data/rbi/lib/orb/models/event_ingest_response.rbi +10 -16
  252. data/rbi/lib/orb/models/event_search_params.rbi +7 -9
  253. data/rbi/lib/orb/models/event_search_response.rbi +11 -14
  254. data/rbi/lib/orb/models/event_update_params.rbi +5 -6
  255. data/rbi/lib/orb/models/event_update_response.rbi +2 -4
  256. data/rbi/lib/orb/models/events/backfill_close_params.rbi +2 -4
  257. data/rbi/lib/orb/models/events/backfill_close_response.rbi +10 -14
  258. data/rbi/lib/orb/models/events/backfill_create_params.rbi +13 -16
  259. data/rbi/lib/orb/models/events/backfill_create_response.rbi +10 -14
  260. data/rbi/lib/orb/models/events/backfill_fetch_params.rbi +2 -4
  261. data/rbi/lib/orb/models/events/backfill_fetch_response.rbi +10 -14
  262. data/rbi/lib/orb/models/events/backfill_list_params.rbi +3 -5
  263. data/rbi/lib/orb/models/events/backfill_list_response.rbi +10 -14
  264. data/rbi/lib/orb/models/events/backfill_revert_params.rbi +2 -4
  265. data/rbi/lib/orb/models/events/backfill_revert_response.rbi +10 -14
  266. data/rbi/lib/orb/models/events/event_volumes.rbi +5 -9
  267. data/rbi/lib/orb/models/events/volume_list_params.rbi +9 -11
  268. data/rbi/lib/orb/models/invoice.rbi +388 -465
  269. data/rbi/lib/orb/models/invoice_create_params.rbi +19 -26
  270. data/rbi/lib/orb/models/invoice_fetch_params.rbi +2 -4
  271. data/rbi/lib/orb/models/invoice_fetch_upcoming_params.rbi +2 -4
  272. data/rbi/lib/orb/models/invoice_fetch_upcoming_response.rbi +381 -460
  273. data/rbi/lib/orb/models/invoice_issue_params.rbi +6 -8
  274. data/rbi/lib/orb/models/invoice_level_discount.rbi +1 -2
  275. data/rbi/lib/orb/models/invoice_line_item_create_params.rbi +3 -5
  276. data/rbi/lib/orb/models/invoice_line_item_create_response.rbi +101 -143
  277. data/rbi/lib/orb/models/invoice_list_params.rbi +8 -13
  278. data/rbi/lib/orb/models/invoice_mark_paid_params.rbi +2 -4
  279. data/rbi/lib/orb/models/invoice_pay_params.rbi +2 -4
  280. data/rbi/lib/orb/models/invoice_update_params.rbi +4 -6
  281. data/rbi/lib/orb/models/invoice_void_params.rbi +2 -4
  282. data/rbi/lib/orb/models/item.rbi +7 -12
  283. data/rbi/lib/orb/models/item_create_params.rbi +2 -4
  284. data/rbi/lib/orb/models/item_fetch_params.rbi +2 -4
  285. data/rbi/lib/orb/models/item_list_params.rbi +3 -5
  286. data/rbi/lib/orb/models/item_update_params.rbi +5 -10
  287. data/rbi/lib/orb/models/metric_create_params.rbi +4 -6
  288. data/rbi/lib/orb/models/metric_fetch_params.rbi +2 -4
  289. data/rbi/lib/orb/models/metric_list_params.rbi +3 -6
  290. data/rbi/lib/orb/models/metric_update_params.rbi +4 -6
  291. data/rbi/lib/orb/models/pagination_metadata.rbi +2 -4
  292. data/rbi/lib/orb/models/percentage_discount.rbi +5 -8
  293. data/rbi/lib/orb/models/plan.rbi +180 -219
  294. data/rbi/lib/orb/models/plan_create_params.rbi +670 -951
  295. data/rbi/lib/orb/models/plan_fetch_params.rbi +2 -4
  296. data/rbi/lib/orb/models/plan_list_params.rbi +4 -8
  297. data/rbi/lib/orb/models/plan_update_params.rbi +6 -8
  298. data/rbi/lib/orb/models/plans/external_plan_id_fetch_params.rbi +2 -4
  299. data/rbi/lib/orb/models/plans/external_plan_id_update_params.rbi +6 -8
  300. data/rbi/lib/orb/models/price.rbi +827 -1494
  301. data/rbi/lib/orb/models/price_create_params.rbi +60 -101
  302. data/rbi/lib/orb/models/price_evaluate_params.rbi +6 -9
  303. data/rbi/lib/orb/models/price_evaluate_response.rbi +2 -4
  304. data/rbi/lib/orb/models/price_fetch_params.rbi +2 -4
  305. data/rbi/lib/orb/models/price_list_params.rbi +3 -5
  306. data/rbi/lib/orb/models/price_update_params.rbi +4 -6
  307. data/rbi/lib/orb/models/prices/external_price_id_fetch_params.rbi +2 -4
  308. data/rbi/lib/orb/models/prices/external_price_id_update_params.rbi +4 -6
  309. data/rbi/lib/orb/models/subscription.rbi +167 -187
  310. data/rbi/lib/orb/models/subscription_cancel_params.rbi +5 -7
  311. data/rbi/lib/orb/models/subscription_cancel_response.rbi +224 -178
  312. data/rbi/lib/orb/models/subscription_change_apply_params.rbi +40 -0
  313. data/rbi/lib/orb/models/subscription_change_apply_response.rbi +1554 -0
  314. data/rbi/lib/orb/models/subscription_change_cancel_params.rbi +18 -0
  315. data/rbi/lib/orb/models/subscription_change_cancel_response.rbi +1565 -0
  316. data/rbi/lib/orb/models/subscription_change_retrieve_params.rbi +18 -0
  317. data/rbi/lib/orb/models/subscription_change_retrieve_response.rbi +1581 -0
  318. data/rbi/lib/orb/models/subscription_create_params.rbi +1372 -1968
  319. data/rbi/lib/orb/models/subscription_create_response.rbi +224 -178
  320. data/rbi/lib/orb/models/subscription_fetch_costs_params.rbi +8 -10
  321. data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +6 -12
  322. data/rbi/lib/orb/models/subscription_fetch_params.rbi +2 -4
  323. data/rbi/lib/orb/models/subscription_fetch_schedule_params.rbi +3 -6
  324. data/rbi/lib/orb/models/subscription_fetch_schedule_response.rbi +6 -10
  325. data/rbi/lib/orb/models/subscription_fetch_usage_params.rbi +12 -17
  326. data/rbi/lib/orb/models/subscription_list_params.rbi +4 -8
  327. data/rbi/lib/orb/models/subscription_price_intervals_params.rbi +772 -1124
  328. data/rbi/lib/orb/models/subscription_price_intervals_response.rbi +228 -178
  329. data/rbi/lib/orb/models/subscription_schedule_plan_change_params.rbi +1396 -1993
  330. data/rbi/lib/orb/models/subscription_schedule_plan_change_response.rbi +238 -182
  331. data/rbi/lib/orb/models/subscription_trigger_phase_params.rbi +5 -7
  332. data/rbi/lib/orb/models/subscription_trigger_phase_response.rbi +224 -178
  333. data/rbi/lib/orb/models/subscription_unschedule_cancellation_params.rbi +2 -4
  334. data/rbi/lib/orb/models/subscription_unschedule_cancellation_response.rbi +238 -182
  335. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +2 -4
  336. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +265 -199
  337. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rbi +2 -4
  338. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +264 -198
  339. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_params.rbi +11 -15
  340. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_response.rbi +238 -182
  341. data/rbi/lib/orb/models/subscription_update_params.rbi +12 -15
  342. data/rbi/lib/orb/models/subscription_update_trial_params.rbi +6 -9
  343. data/rbi/lib/orb/models/subscription_update_trial_response.rbi +224 -178
  344. data/rbi/lib/orb/models/subscription_usage.rbi +24 -43
  345. data/rbi/lib/orb/models/subscriptions.rbi +2 -4
  346. data/rbi/lib/orb/models/top_level_ping_params.rbi +2 -4
  347. data/rbi/lib/orb/models/top_level_ping_response.rbi +2 -4
  348. data/rbi/lib/orb/models/trial_discount.rbi +4 -8
  349. data/rbi/lib/orb/models/usage_discount.rbi +5 -8
  350. data/rbi/lib/orb/request_options.rbi +9 -11
  351. data/rbi/lib/orb/resources/alerts.rbi +44 -60
  352. data/rbi/lib/orb/resources/coupons/subscriptions.rbi +6 -9
  353. data/rbi/lib/orb/resources/coupons.rbi +18 -25
  354. data/rbi/lib/orb/resources/credit_notes.rbi +9 -15
  355. data/rbi/lib/orb/resources/customers/balance_transactions.rbi +26 -31
  356. data/rbi/lib/orb/resources/customers/costs.rbi +241 -246
  357. data/rbi/lib/orb/resources/customers/credits/ledger.rbi +387 -396
  358. data/rbi/lib/orb/resources/customers/credits/top_ups.rbi +29 -40
  359. data/rbi/lib/orb/resources/customers/credits.rbi +15 -20
  360. data/rbi/lib/orb/resources/customers.rbi +407 -417
  361. data/rbi/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +2 -4
  362. data/rbi/lib/orb/resources/dimensional_price_groups.rbi +13 -19
  363. data/rbi/lib/orb/resources/events/backfills.rbi +61 -69
  364. data/rbi/lib/orb/resources/events/volume.rbi +19 -22
  365. data/rbi/lib/orb/resources/events.rbi +311 -319
  366. data/rbi/lib/orb/resources/invoice_line_items.rbi +4 -7
  367. data/rbi/lib/orb/resources/invoices.rbi +62 -76
  368. data/rbi/lib/orb/resources/items.rbi +7 -14
  369. data/rbi/lib/orb/resources/metrics.rbi +17 -25
  370. data/rbi/lib/orb/resources/plans/external_plan_id.rbi +21 -25
  371. data/rbi/lib/orb/resources/plans.rbi +63 -71
  372. data/rbi/lib/orb/resources/prices/external_price_id.rbi +9 -13
  373. data/rbi/lib/orb/resources/prices.rbi +77 -87
  374. data/rbi/lib/orb/resources/subscription_changes.rbi +61 -0
  375. data/rbi/lib/orb/resources/subscriptions.rbi +933 -963
  376. data/rbi/lib/orb/resources/top_level.rbi +6 -8
  377. data/rbi/lib/orb/version.rbi +1 -1
  378. data/sig/orb/client.rbs +2 -0
  379. data/sig/orb/internal/type/array_of.rbs +2 -2
  380. data/sig/orb/internal/type/{boolean_model.rbs → boolean.rbs} +1 -1
  381. data/sig/orb/internal/util.rbs +5 -5
  382. data/sig/orb/models/subscription.rbs +14 -0
  383. data/sig/orb/models/subscription_cancel_response.rbs +47 -2
  384. data/sig/orb/models/subscription_change_apply_params.rbs +24 -0
  385. data/sig/orb/models/subscription_change_apply_response.rbs +784 -0
  386. data/sig/orb/models/subscription_change_cancel_params.rbs +15 -0
  387. data/sig/orb/models/subscription_change_cancel_response.rbs +784 -0
  388. data/sig/orb/models/subscription_change_retrieve_params.rbs +15 -0
  389. data/sig/orb/models/subscription_change_retrieve_response.rbs +784 -0
  390. data/sig/orb/models/subscription_create_response.rbs +47 -2
  391. data/sig/orb/models/subscription_price_intervals_response.rbs +47 -2
  392. data/sig/orb/models/subscription_schedule_plan_change_response.rbs +47 -2
  393. data/sig/orb/models/subscription_trigger_phase_response.rbs +47 -2
  394. data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +47 -2
  395. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +47 -2
  396. data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +47 -2
  397. data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +47 -2
  398. data/sig/orb/models/subscription_update_trial_response.rbs +47 -2
  399. data/sig/orb/resources/customers.rbs +2 -2
  400. data/sig/orb/resources/subscription_changes.rbs +24 -0
  401. data/sig/orb/version.rbs +1 -1
  402. metadata +26 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 702ebd1a845c490ffa0ab6e32aa2b2d89f058b6eff8983c235ed55b0032f9dc4
4
- data.tar.gz: 51b7d195d7807e89a4ed00bc6b3471835360177f217f3e125aed55f0b594e7fd
3
+ metadata.gz: c0a5b2b706493559363ab625bd5acbef451386a515a1c473447f7583006750a7
4
+ data.tar.gz: 392dbe182794cc49819c6bc483e80d2dfc99fe3f96c5148fc644e43e9ffdc917
5
5
  SHA512:
6
- metadata.gz: 13c4acc99fb84c9a0428238659ef2ac95ed4c7cc6f6dc0a7015ced4cb05c130ca9fb915fcb2f84682b0d6b3c5ef79fb1552b05c4f63d5939cb0af16616ca7311
7
- data.tar.gz: 431ab89420d519418e56a2d6c096a967704cee137de97862e6fc1af093f4d85e9934eb1b8152915c6b35f574d09d7e5b66d9f341dff3c4d268b78f6792732046
6
+ metadata.gz: d8cecd00cd1de61ce8349e487ec416372c135b5f90ef81d7acc42a0512d6a9b615d10bcdb37f2f334ea5c65cf01a5c31addb775ef116ba43eb880eabe0c0ebe9
7
+ data.tar.gz: 61a0a748eece61489f3fb1e2c14c99d011505be14d7ed1aa0f1bee41469ae77ab19b8fbaf3f1c19c084b907cdff82afbad9e0bd0c0a0839aeb031a1ef120d7ca
data/README.md CHANGED
@@ -12,10 +12,14 @@ The underlying REST API documentation can be found on [docs.withorb.com](https:/
12
12
 
13
13
  To use this gem, install via Bundler by adding the following to your application's `Gemfile`:
14
14
 
15
+ <!-- x-release-please-start-version -->
16
+
15
17
  ```ruby
16
- gem "orb-billing", "~> 0.1.0.pre.alpha.36"
18
+ gem "orb-billing", "~> 0.1.0.pre.alpha.38"
17
19
  ```
18
20
 
21
+ <!-- x-release-please-end -->
22
+
19
23
  To fetch an initial copy of the gem:
20
24
 
21
25
  ```sh
@@ -130,9 +134,23 @@ orb.customers.create(
130
134
 
131
135
  ## LSP Support
132
136
 
133
- ### Sorbet
137
+ ### Solargraph
138
+
139
+ This library includes [Solargraph](https://solargraph.org) support for both auto completion and go to definition.
140
+
141
+ ```ruby
142
+ gem "solargraph", group: :development
143
+ ```
144
+
145
+ After Solargraph is installed, **you must populate its index** either via the provided editor command, or by running the following in your terminal:
134
146
 
135
- **This library emits an intentional warning under the [`tapioca` toolchain](https://github.com/Shopify/tapioca)**. This is normal, and does not impact functionality.
147
+ ```sh
148
+ bundle exec solargraph gems
149
+ ```
150
+
151
+ Otherwise Solargraph will not be able to provide type information or auto-completion for any non-indexed libraries.
152
+
153
+ ### Sorbet
136
154
 
137
155
  This library is written with [Sorbet type definitions](https://sorbet.org/docs/rbi). However, there is no runtime dependency on the `sorbet-runtime`.
138
156
 
@@ -143,11 +161,17 @@ Due to limitations with the Sorbet type system, where a method otherwise can tak
143
161
  Please follow Sorbet's [setup guides](https://sorbet.org/docs/adopting) for best experience.
144
162
 
145
163
  ```ruby
146
- model = Orb::Models::CustomerCreateParams.new(email: "example-customer@withorb.com", name: "My Customer")
164
+ params = Orb::Models::CustomerCreateParams.new(email: "example-customer@withorb.com", name: "My Customer")
147
165
 
148
- orb.customers.create(**model)
166
+ orb.customers.create(**params)
149
167
  ```
150
168
 
169
+ Note: **This library emits an intentional warning under the [`tapioca` toolchain](https://github.com/Shopify/tapioca)**. This is normal, and does not impact functionality.
170
+
171
+ ### Ruby LSP
172
+
173
+ The Ruby LSP has [best effort support](https://shopify.github.io/ruby-lsp/#guessed-types) for inferring type information from Ruby code, and as such it may not always be able to provide accurate type information.
174
+
151
175
  ## Advanced
152
176
 
153
177
  ### Making custom/undocumented requests
data/lib/orb/client.rb CHANGED
@@ -60,6 +60,9 @@ module Orb
60
60
  # @return [Orb::Resources::DimensionalPriceGroups]
61
61
  attr_reader :dimensional_price_groups
62
62
 
63
+ # @return [Orb::Resources::SubscriptionChanges]
64
+ attr_reader :subscription_changes
65
+
63
66
  # @api private
64
67
  #
65
68
  # @return [Hash{String=>String}]
@@ -124,6 +127,7 @@ module Orb
124
127
  @subscriptions = Orb::Resources::Subscriptions.new(client: self)
125
128
  @alerts = Orb::Resources::Alerts.new(client: self)
126
129
  @dimensional_price_groups = Orb::Resources::DimensionalPriceGroups.new(client: self)
130
+ @subscription_changes = Orb::Resources::SubscriptionChanges.new(client: self)
127
131
  end
128
132
  end
129
133
  end
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Orb
4
4
  module Internal
5
+ # @generic Elem
6
+ #
5
7
  # @example
6
8
  # if page.has_next?
7
9
  # page = page.next_page
@@ -14,7 +16,7 @@ module Orb
14
16
  class Page
15
17
  include Orb::Internal::Type::BasePage
16
18
 
17
- # @return [Array<Object>, nil]
19
+ # @return [Array<generic<Elem>>, nil]
18
20
  attr_accessor :data
19
21
 
20
22
  # @return [PaginationMetadata]
@@ -65,6 +67,8 @@ module Orb
65
67
  end
66
68
 
67
69
  # @param blk [Proc]
70
+ #
71
+ # @yieldparam [generic<Elem>]
68
72
  def auto_paging_each(&blk)
69
73
  unless block_given?
70
74
  raise ArgumentError.new("A block must be given to ##{__method__}")
@@ -88,7 +92,7 @@ module Orb
88
92
  # @!attribute has_more
89
93
  #
90
94
  # @return [Boolean]
91
- required :has_more, Orb::Internal::Type::BooleanModel
95
+ required :has_more, Orb::Internal::Type::Boolean
92
96
 
93
97
  # @!attribute next_cursor
94
98
  #
@@ -131,7 +131,7 @@ module Orb
131
131
  # @api private
132
132
  #
133
133
  # @param status [Integer, Orb::Errors::APIConnectionError]
134
- # @param stream [Enumerable, nil]
134
+ # @param stream [Enumerable<String>, nil]
135
135
  def reap_connection!(status, stream:)
136
136
  case status
137
137
  in (..199) | (300..499)
@@ -328,7 +328,7 @@ module Orb
328
328
  # @param send_retry_header [Boolean]
329
329
  #
330
330
  # @raise [Orb::Errors::APIError]
331
- # @return [Array(Integer, Net::HTTPResponse, Enumerable)]
331
+ # @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
332
332
  private def send_request(request, redirect_count:, retry_count:, send_retry_header:)
333
333
  url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
334
334
  input = {**request.except(:timeout), deadline: Orb::Internal::Util.monotonic_secs + timeout}
@@ -393,7 +393,7 @@ module Orb
393
393
  end
394
394
 
395
395
  # Execute the request specified by `req`. This is the method that all resource
396
- # methods call into.
396
+ # methods call into.
397
397
  #
398
398
  # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Orb::Internal::Type::Unknown, options: {})
399
399
  #
@@ -6,7 +6,7 @@ module Orb
6
6
  # @api private
7
7
  class PooledNetRequester
8
8
  # from the golang stdlib
9
- # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
9
+ # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
10
10
  KEEP_ALIVE_TIMEOUT = 30
11
11
 
12
12
  class << self
@@ -119,7 +119,7 @@ module Orb
119
119
  #
120
120
  # @option request [Float] :deadline
121
121
  #
122
- # @return [Array(Integer, Net::HTTPResponse, Enumerable)]
122
+ # @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
123
123
  def execute(request)
124
124
  url, deadline = request.fetch_values(:url, :deadline)
125
125
 
@@ -7,6 +7,8 @@ module Orb
7
7
  #
8
8
  # @abstract
9
9
  #
10
+ # @generic Elem
11
+ #
10
12
  # Array of items of a given type.
11
13
  class ArrayOf
12
14
  include Orb::Internal::Type::Converter
@@ -40,7 +42,7 @@ module Orb
40
42
 
41
43
  # @api private
42
44
  #
43
- # @param value [Enumerable, Object]
45
+ # @param value [Array<Object>, Object]
44
46
  #
45
47
  # @param state [Hash{Symbol=>Object}] .
46
48
  #
@@ -75,7 +77,7 @@ module Orb
75
77
 
76
78
  # @api private
77
79
  #
78
- # @param value [Enumerable, Object]
80
+ # @param value [Array<Object>, Object]
79
81
  #
80
82
  # @return [Array<Object>, Object]
81
83
  def dump(value)
@@ -85,7 +87,7 @@ module Orb
85
87
 
86
88
  # @api private
87
89
  #
88
- # @return [Orb::Internal::Type::Converter, Class]
90
+ # @return [generic<Elem>]
89
91
  protected def item_type = @item_type_fn.call
90
92
 
91
93
  # @api private
@@ -19,7 +19,7 @@ module Orb
19
19
  # @api private
20
20
  #
21
21
  # Assumes superclass fields are totally defined before fields are accessed /
22
- # defined on subclasses.
22
+ # defined on subclasses.
23
23
  #
24
24
  # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
25
25
  def known_fields
@@ -143,7 +143,7 @@ module Orb
143
143
  # @api private
144
144
  #
145
145
  # `request_only` attributes not excluded from `.#coerce` when receiving responses
146
- # even if well behaved servers should not send them
146
+ # even if well behaved servers should not send them
147
147
  #
148
148
  # @param blk [Proc]
149
149
  private def request_only(&blk)
@@ -168,7 +168,9 @@ module Orb
168
168
  # @param other [Object]
169
169
  #
170
170
  # @return [Boolean]
171
- def ==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::BaseModel && other.fields == fields
171
+ def ==(other)
172
+ other.is_a?(Class) && other <= Orb::Internal::Type::BaseModel && other.fields == fields
173
+ end
172
174
  end
173
175
 
174
176
  # @param other [Object]
@@ -264,7 +266,7 @@ module Orb
264
266
  in nil
265
267
  acc.store(name, super(val))
266
268
  else
267
- mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn)
269
+ api_name, mode, type_fn = field.fetch_values(:api_name, :mode, :type_fn)
268
270
  case mode
269
271
  in :coerce
270
272
  next
@@ -276,7 +278,7 @@ module Orb
276
278
  end
277
279
 
278
280
  known_fields.each_value do |field|
279
- mode, api_name, const = field.fetch_values(:mode, :api_name, :const)
281
+ api_name, mode, const = field.fetch_values(:api_name, :mode, :const)
280
282
  next if mode == :coerce || acc.key?(api_name) || const == Orb::Internal::OMIT
281
283
  acc.store(api_name, const)
282
284
  end
@@ -286,11 +288,11 @@ module Orb
286
288
  end
287
289
 
288
290
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
289
- # returned.
291
+ # returned.
290
292
  #
291
- # It is valid to lookup keys that are not in the API spec, for example to access
292
- # undocumented features. This method does not parse response data into
293
- # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
293
+ # It is valid to lookup keys that are not in the API spec, for example to access
294
+ # undocumented features. This method does not parse response data into
295
+ # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
294
296
  #
295
297
  # @param key [Symbol]
296
298
  #
@@ -305,12 +307,12 @@ module Orb
305
307
 
306
308
  # Returns a Hash of the data underlying this object. O(1)
307
309
  #
308
- # Keys are Symbols and values are the raw values from the response. The return
309
- # value indicates which values were ever set on the object. i.e. there will be a
310
- # key in this hash if they ever were, even if the set value was nil.
310
+ # Keys are Symbols and values are the raw values from the response. The return
311
+ # value indicates which values were ever set on the object. i.e. there will be a
312
+ # key in this hash if they ever were, even if the set value was nil.
311
313
  #
312
- # This method is not recursive. The returned value is shared by the object, so it
313
- # should not be mutated.
314
+ # This method is not recursive. The returned value is shared by the object, so it
315
+ # should not be mutated.
314
316
  #
315
317
  # @return [Hash{Symbol=>Object}]
316
318
  def to_h = @data
@@ -350,7 +352,8 @@ module Orb
350
352
  in Hash => coerced
351
353
  @data = coerced
352
354
  else
353
- raise ArgumentError.new("Expected a #{Hash} or #{Orb::Internal::Type::BaseModel}, got #{data.inspect}")
355
+ message = "Expected a #{Hash} or #{Orb::Internal::Type::BaseModel}, got #{data.inspect}"
356
+ raise ArgumentError.new(message)
354
357
  end
355
358
  end
356
359
 
@@ -358,7 +361,7 @@ module Orb
358
361
  def inspect
359
362
  rows = self.class.known_fields.keys.map do
360
363
  "#{_1}=#{@data.key?(_1) ? public_send(_1) : ''}"
361
- rescue Orb::ConversionError
364
+ rescue Orb::Errors::ConversionError
362
365
  "#{_1}=#{@data.fetch(_1)}"
363
366
  end
364
367
  "#<#{self.class.name}:0x#{object_id.to_s(16)} #{rows.join(' ')}>"
@@ -3,6 +3,8 @@
3
3
  module Orb
4
4
  module Internal
5
5
  module Type
6
+ # @generic Elem
7
+ #
6
8
  # This module provides a base implementation for paginated responses in the SDK.
7
9
  module BasePage
8
10
  # rubocop:disable Lint/UnusedMethodArgument
@@ -16,10 +18,11 @@ module Orb
16
18
 
17
19
  # @param blk [Proc]
18
20
  #
21
+ # @yieldparam [generic<Elem>]
19
22
  # @return [void]
20
23
  def auto_paging_each(&blk) = (raise NotImplementedError)
21
24
 
22
- # @return [Enumerable]
25
+ # @return [Enumerable<generic<Elem>>]
23
26
  def to_enum = super(:auto_paging_each)
24
27
 
25
28
  alias_method :enum_for, :to_enum
@@ -8,7 +8,7 @@ module Orb
8
8
  # @abstract
9
9
  #
10
10
  # Ruby has no Boolean class; this is something for models to refer to.
11
- class BooleanModel
11
+ class Boolean
12
12
  extend Orb::Internal::Type::Converter
13
13
 
14
14
  # @param other [Object]
@@ -19,7 +19,7 @@ module Orb
19
19
  # @param other [Object]
20
20
  #
21
21
  # @return [Boolean]
22
- def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::BooleanModel
22
+ def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::Boolean
23
23
 
24
24
  class << self
25
25
  # @api private
@@ -3,7 +3,6 @@
3
3
  module Orb
4
4
  module Internal
5
5
  module Type
6
- # rubocop:disable Metrics/ModuleLength
7
6
  # @api private
8
7
  module Converter
9
8
  # rubocop:disable Lint/UnusedMethodArgument
@@ -64,7 +63,7 @@ module Orb
64
63
  in Hash
65
64
  type_info(spec.slice(:const, :enum, :union).first&.last)
66
65
  in true | false
67
- -> { Orb::Internal::Type::BooleanModel }
66
+ -> { Orb::Internal::Type::Boolean }
68
67
  in Orb::Internal::Type::Converter | Class | Symbol
69
68
  -> { spec }
70
69
  in NilClass | Integer | Float
@@ -76,37 +75,37 @@ module Orb
76
75
  #
77
76
  # Based on `target`, transform `value` into `target`, to the extent possible:
78
77
  #
79
- # 1. if the given `value` conforms to `target` already, return the given `value`
80
- # 2. if it's possible and safe to convert the given `value` to `target`, then the
81
- # converted value
82
- # 3. otherwise, the given `value` unaltered
78
+ # 1. if the given `value` conforms to `target` already, return the given `value`
79
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
80
+ # converted value
81
+ # 3. otherwise, the given `value` unaltered
83
82
  #
84
- # The coercion process is subject to improvement between minor release versions.
85
- # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
83
+ # The coercion process is subject to improvement between minor release versions.
84
+ # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
86
85
  #
87
86
  # @param target [Orb::Internal::Type::Converter, Class]
88
87
  #
89
88
  # @param value [Object]
90
89
  #
91
90
  # @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`, or `:strong`. This informs the
92
- # coercion strategy when we have to decide between multiple possible conversion
93
- # targets:
91
+ # coercion strategy when we have to decide between multiple possible conversion
92
+ # targets:
94
93
  #
95
- # - `true`: the conversion must be exact, with minimum coercion.
96
- # - `false`: the conversion can be approximate, with some coercion.
97
- # - `:strong`: the conversion must be exact, with no coercion, and raise an error
98
- # if not possible.
94
+ # - `true`: the conversion must be exact, with minimum coercion.
95
+ # - `false`: the conversion can be approximate, with some coercion.
96
+ # - `:strong`: the conversion must be exact, with no coercion, and raise an error
97
+ # if not possible.
99
98
  #
100
- # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
101
- # any given conversion attempt, the exactness will be updated based on how closely
102
- # the value recursively matches the target type:
99
+ # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
100
+ # any given conversion attempt, the exactness will be updated based on how closely
101
+ # the value recursively matches the target type:
103
102
  #
104
- # - `yes`: the value can be converted to the target type with minimum coercion.
105
- # - `maybe`: the value can be converted to the target type with some reasonable
106
- # coercion.
107
- # - `no`: the value cannot be converted to the target type.
103
+ # - `yes`: the value can be converted to the target type with minimum coercion.
104
+ # - `maybe`: the value can be converted to the target type with some reasonable
105
+ # coercion.
106
+ # - `no`: the value cannot be converted to the target type.
108
107
  #
109
- # See implementation below for more details.
108
+ # See implementation below for more details.
110
109
  #
111
110
  # @option state [Boolean, :strong] :strictness
112
111
  #
@@ -168,6 +167,9 @@ module Orb
168
167
  in String | Symbol | Numeric
169
168
  exactness[value.is_a?(Numeric) ? :maybe : :yes] += 1
170
169
  return value.to_s
170
+ in StringIO
171
+ exactness[:yes] += 1
172
+ return value.string
171
173
  else
172
174
  if strictness == :strong
173
175
  message = "no implicit conversion of #{value.class} into #{target.inspect}"
@@ -209,11 +211,12 @@ module Orb
209
211
  #
210
212
  # @return [Object]
211
213
  def dump(target, value)
214
+ # rubocop:disable Layout/LineLength
212
215
  target.is_a?(Orb::Internal::Type::Converter) ? target.dump(value) : Orb::Internal::Type::Unknown.dump(value)
216
+ # rubocop:enable Layout/LineLength
213
217
  end
214
218
  end
215
219
  end
216
- # rubocop:enable Metrics/ModuleLength
217
220
  end
218
221
  end
219
222
  end
@@ -6,15 +6,15 @@ module Orb
6
6
  # @api private
7
7
  #
8
8
  # A value from among a specified list of options. OpenAPI enum values map to Ruby
9
- # values in the SDK as follows:
9
+ # values in the SDK as follows:
10
10
  #
11
- # 1. boolean => true | false
12
- # 2. integer => Integer
13
- # 3. float => Float
14
- # 4. string => Symbol
11
+ # 1. boolean => true | false
12
+ # 2. integer => Integer
13
+ # 3. float => Float
14
+ # 4. string => Symbol
15
15
  #
16
- # We can therefore convert string values to Symbols, but can't convert other
17
- # values safely.
16
+ # We can therefore convert string values to Symbols, but can't convert other
17
+ # values safely.
18
18
  #
19
19
  # @example
20
20
  # # `billing_cycle_relative_date` is a `Orb::Models::BillingCycleRelativeDate`
@@ -58,13 +58,15 @@ module Orb
58
58
  #
59
59
  # @return [Boolean]
60
60
  def ==(other)
61
+ # rubocop:disable Layout/LineLength
61
62
  other.is_a?(Module) && other.singleton_class <= Orb::Internal::Type::Enum && other.values.to_set == values.to_set
63
+ # rubocop:enable Layout/LineLength
62
64
  end
63
65
 
64
66
  # @api private
65
67
  #
66
68
  # Unlike with primitives, `Enum` additionally validates that the value is a member
67
- # of the enum.
69
+ # of the enum.
68
70
  #
69
71
  # @param value [String, Symbol, Object]
70
72
  #
@@ -7,6 +7,8 @@ module Orb
7
7
  #
8
8
  # @abstract
9
9
  #
10
+ # @generic Elem
11
+ #
10
12
  # Hash of items of a given type.
11
13
  class HashOf
12
14
  include Orb::Internal::Type::Converter
@@ -111,7 +113,7 @@ module Orb
111
113
 
112
114
  # @api private
113
115
  #
114
- # @return [Orb::Internal::Type::Converter, Class]
116
+ # @return [generic<Elem>]
115
117
  protected def item_type = @item_type_fn.call
116
118
 
117
119
  # @api private