orb-billing 0.1.3 → 0.3.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 (381) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +65 -0
  4. data/README.md +61 -51
  5. data/lib/orb/client.rb +7 -6
  6. data/lib/orb/file_part.rb +55 -0
  7. data/lib/orb/internal/page.rb +37 -39
  8. data/lib/orb/internal/transport/base_client.rb +21 -11
  9. data/lib/orb/internal/transport/pooled_net_requester.rb +3 -3
  10. data/lib/orb/internal/type/array_of.rb +28 -2
  11. data/lib/orb/internal/type/base_model.rb +83 -21
  12. data/lib/orb/internal/type/base_page.rb +10 -1
  13. data/lib/orb/internal/type/boolean.rb +6 -0
  14. data/lib/orb/internal/type/converter.rb +28 -1
  15. data/lib/orb/internal/type/enum.rb +28 -8
  16. data/lib/orb/internal/type/{io_like.rb → file_input.rb} +35 -15
  17. data/lib/orb/internal/type/hash_of.rb +28 -2
  18. data/lib/orb/internal/type/request_parameters.rb +1 -2
  19. data/lib/orb/internal/type/union.rb +27 -4
  20. data/lib/orb/internal/type/unknown.rb +6 -0
  21. data/lib/orb/internal/util.rb +105 -70
  22. data/lib/orb/internal.rb +5 -2
  23. data/lib/orb/models/alert.rb +68 -71
  24. data/lib/orb/models/alert_create_for_customer_params.rb +20 -25
  25. data/lib/orb/models/alert_create_for_external_customer_params.rb +20 -25
  26. data/lib/orb/models/alert_create_for_subscription_params.rb +20 -25
  27. data/lib/orb/models/alert_disable_params.rb +5 -9
  28. data/lib/orb/models/alert_enable_params.rb +5 -9
  29. data/lib/orb/models/alert_list_params.rb +26 -36
  30. data/lib/orb/models/alert_retrieve_params.rb +3 -8
  31. data/lib/orb/models/alert_update_params.rb +14 -18
  32. data/lib/orb/models/amount_discount.rb +14 -14
  33. data/lib/orb/models/billable_metric.rb +23 -20
  34. data/lib/orb/models/billing_cycle_relative_date.rb +2 -5
  35. data/lib/orb/models/coupon.rb +28 -21
  36. data/lib/orb/models/coupon_archive_params.rb +3 -8
  37. data/lib/orb/models/coupon_create_params.rb +24 -29
  38. data/lib/orb/models/coupon_fetch_params.rb +3 -8
  39. data/lib/orb/models/coupon_list_params.rb +17 -17
  40. data/lib/orb/models/coupons/subscription_list_params.rb +12 -15
  41. data/lib/orb/models/credit_note.rb +100 -166
  42. data/lib/orb/models/credit_note_create_params.rb +15 -23
  43. data/lib/orb/models/credit_note_fetch_params.rb +3 -8
  44. data/lib/orb/models/credit_note_list_params.rb +20 -30
  45. data/lib/orb/models/customer.rb +224 -271
  46. data/lib/orb/models/customer_create_params.rb +211 -252
  47. data/lib/orb/models/customer_delete_params.rb +3 -8
  48. data/lib/orb/models/customer_fetch_by_external_id_params.rb +3 -8
  49. data/lib/orb/models/customer_fetch_params.rb +3 -8
  50. data/lib/orb/models/customer_list_params.rb +20 -30
  51. data/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rb +3 -8
  52. data/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rb +3 -8
  53. data/lib/orb/models/customer_update_by_external_id_params.rb +207 -250
  54. data/lib/orb/models/customer_update_params.rb +207 -250
  55. data/lib/orb/models/customers/balance_transaction_create_params.rb +11 -16
  56. data/lib/orb/models/customers/balance_transaction_create_response.rb +33 -51
  57. data/lib/orb/models/customers/balance_transaction_list_params.rb +20 -30
  58. data/lib/orb/models/customers/balance_transaction_list_response.rb +33 -51
  59. data/lib/orb/models/customers/cost_list_by_external_id_params.rb +17 -17
  60. data/lib/orb/models/customers/cost_list_by_external_id_response.rb +22 -26
  61. data/lib/orb/models/customers/cost_list_params.rb +17 -17
  62. data/lib/orb/models/customers/cost_list_response.rb +22 -26
  63. data/lib/orb/models/customers/credit_list_by_external_id_params.rb +18 -22
  64. data/lib/orb/models/customers/credit_list_by_external_id_response.rb +10 -17
  65. data/lib/orb/models/customers/credit_list_params.rb +18 -22
  66. data/lib/orb/models/customers/credit_list_response.rb +10 -17
  67. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +64 -66
  68. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +300 -406
  69. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +63 -66
  70. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +300 -406
  71. data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +33 -48
  72. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +300 -406
  73. data/lib/orb/models/customers/credits/ledger_list_params.rb +32 -48
  74. data/lib/orb/models/customers/credits/ledger_list_response.rb +300 -406
  75. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +47 -50
  76. data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +43 -46
  77. data/lib/orb/models/customers/credits/top_up_create_params.rb +46 -50
  78. data/lib/orb/models/customers/credits/top_up_create_response.rb +42 -46
  79. data/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rb +4 -9
  80. data/lib/orb/models/customers/credits/top_up_delete_params.rb +4 -9
  81. data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +12 -15
  82. data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +43 -46
  83. data/lib/orb/models/customers/credits/top_up_list_params.rb +12 -15
  84. data/lib/orb/models/customers/credits/top_up_list_response.rb +42 -46
  85. data/lib/orb/models/dimensional_price_group.rb +21 -15
  86. data/lib/orb/models/dimensional_price_group_create_params.rb +17 -23
  87. data/lib/orb/models/dimensional_price_group_list_params.rb +12 -15
  88. data/lib/orb/models/dimensional_price_group_retrieve_params.rb +3 -8
  89. data/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rb +3 -8
  90. data/lib/orb/models/dimensional_price_groups.rb +3 -7
  91. data/lib/orb/models/discount.rb +2 -3
  92. data/lib/orb/models/evaluate_price_group.rb +8 -11
  93. data/lib/orb/models/event_deprecate_params.rb +3 -8
  94. data/lib/orb/models/event_deprecate_response.rb +2 -6
  95. data/lib/orb/models/event_ingest_params.rb +33 -27
  96. data/lib/orb/models/event_ingest_response.rb +23 -24
  97. data/lib/orb/models/event_search_params.rb +15 -11
  98. data/lib/orb/models/event_search_response.rb +27 -22
  99. data/lib/orb/models/event_update_params.rb +19 -13
  100. data/lib/orb/models/event_update_response.rb +2 -6
  101. data/lib/orb/models/events/backfill_close_params.rb +3 -8
  102. data/lib/orb/models/events/backfill_close_response.rb +34 -39
  103. data/lib/orb/models/events/backfill_create_params.rb +28 -32
  104. data/lib/orb/models/events/backfill_create_response.rb +34 -39
  105. data/lib/orb/models/events/backfill_fetch_params.rb +3 -8
  106. data/lib/orb/models/events/backfill_fetch_response.rb +34 -39
  107. data/lib/orb/models/events/backfill_list_params.rb +12 -15
  108. data/lib/orb/models/events/backfill_list_response.rb +34 -39
  109. data/lib/orb/models/events/backfill_revert_params.rb +3 -8
  110. data/lib/orb/models/events/backfill_revert_response.rb +34 -39
  111. data/lib/orb/models/events/event_volumes.rb +11 -17
  112. data/lib/orb/models/events/volume_list_params.rb +19 -22
  113. data/lib/orb/models/invoice.rb +589 -637
  114. data/lib/orb/models/invoice_create_params.rb +52 -61
  115. data/lib/orb/models/invoice_fetch_params.rb +3 -8
  116. data/lib/orb/models/invoice_fetch_upcoming_params.rb +4 -9
  117. data/lib/orb/models/invoice_fetch_upcoming_response.rb +584 -631
  118. data/lib/orb/models/invoice_issue_params.rb +10 -14
  119. data/lib/orb/models/invoice_level_discount.rb +2 -3
  120. data/lib/orb/models/invoice_line_item_create_params.rb +19 -14
  121. data/lib/orb/models/invoice_line_item_create_response.rb +247 -269
  122. data/lib/orb/models/invoice_list_params.rb +51 -66
  123. data/lib/orb/models/invoice_mark_paid_params.rb +9 -11
  124. data/lib/orb/models/invoice_pay_params.rb +3 -8
  125. data/lib/orb/models/invoice_update_params.rb +9 -9
  126. data/lib/orb/models/invoice_void_params.rb +3 -8
  127. data/lib/orb/models/item.rb +14 -25
  128. data/lib/orb/models/item_create_params.rb +5 -9
  129. data/lib/orb/models/item_fetch_params.rb +3 -8
  130. data/lib/orb/models/item_list_params.rb +12 -15
  131. data/lib/orb/models/item_update_params.rb +10 -22
  132. data/lib/orb/models/metric_create_params.rb +17 -13
  133. data/lib/orb/models/metric_fetch_params.rb +3 -8
  134. data/lib/orb/models/metric_list_params.rb +20 -30
  135. data/lib/orb/models/metric_update_params.rb +9 -9
  136. data/lib/orb/models/pagination_metadata.rb +3 -7
  137. data/lib/orb/models/percentage_discount.rb +15 -14
  138. data/lib/orb/models/plan.rb +250 -279
  139. data/lib/orb/models/plan_create_params.rb +1623 -1984
  140. data/lib/orb/models/plan_fetch_params.rb +3 -8
  141. data/lib/orb/models/plan_list_params.rb +25 -42
  142. data/lib/orb/models/plan_update_params.rb +12 -10
  143. data/lib/orb/models/plans/external_plan_id_fetch_params.rb +3 -8
  144. data/lib/orb/models/plans/external_plan_id_update_params.rb +12 -10
  145. data/lib/orb/models/price.rb +2709 -3820
  146. data/lib/orb/models/price_create_params.rb +203 -244
  147. data/lib/orb/models/price_evaluate_params.rb +21 -30
  148. data/lib/orb/models/price_evaluate_response.rb +2 -6
  149. data/lib/orb/models/price_fetch_params.rb +3 -8
  150. data/lib/orb/models/price_list_params.rb +12 -15
  151. data/lib/orb/models/price_update_params.rb +9 -9
  152. data/lib/orb/models/prices/external_price_id_fetch_params.rb +3 -8
  153. data/lib/orb/models/prices/external_price_id_update_params.rb +9 -9
  154. data/lib/orb/models/subscription.rb +343 -382
  155. data/lib/orb/models/subscription_cancel_params.rb +16 -16
  156. data/lib/orb/models/subscription_cancel_response.rb +339 -377
  157. data/lib/orb/models/subscription_change_apply_params.rb +7 -10
  158. data/lib/orb/models/subscription_change_apply_response.rb +365 -398
  159. data/lib/orb/models/subscription_change_cancel_params.rb +3 -8
  160. data/lib/orb/models/subscription_change_cancel_response.rb +365 -398
  161. data/lib/orb/models/subscription_change_retrieve_params.rb +3 -8
  162. data/lib/orb/models/subscription_change_retrieve_response.rb +366 -398
  163. data/lib/orb/models/subscription_create_params.rb +3771 -4402
  164. data/lib/orb/models/subscription_create_response.rb +339 -377
  165. data/lib/orb/models/subscription_fetch_costs_params.rb +17 -17
  166. data/lib/orb/models/subscription_fetch_costs_response.rb +22 -26
  167. data/lib/orb/models/subscription_fetch_params.rb +3 -8
  168. data/lib/orb/models/subscription_fetch_schedule_params.rb +20 -30
  169. data/lib/orb/models/subscription_fetch_schedule_response.rb +15 -17
  170. data/lib/orb/models/subscription_fetch_usage_params.rb +32 -43
  171. data/lib/orb/models/subscription_list_params.rb +28 -41
  172. data/lib/orb/models/subscription_price_intervals_params.rb +2018 -2472
  173. data/lib/orb/models/subscription_price_intervals_response.rb +342 -377
  174. data/lib/orb/models/subscription_schedule_plan_change_params.rb +3764 -4392
  175. data/lib/orb/models/subscription_schedule_plan_change_response.rb +342 -377
  176. data/lib/orb/models/subscription_trigger_phase_params.rb +12 -10
  177. data/lib/orb/models/subscription_trigger_phase_response.rb +341 -377
  178. data/lib/orb/models/subscription_unschedule_cancellation_params.rb +3 -8
  179. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +342 -377
  180. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rb +5 -9
  181. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +343 -377
  182. data/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rb +3 -8
  183. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +343 -377
  184. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +22 -33
  185. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +342 -377
  186. data/lib/orb/models/subscription_update_params.rb +21 -23
  187. data/lib/orb/models/subscription_update_trial_params.rb +15 -18
  188. data/lib/orb/models/subscription_update_trial_response.rb +341 -377
  189. data/lib/orb/models/subscription_usage.rb +37 -80
  190. data/lib/orb/models/subscriptions.rb +3 -7
  191. data/lib/orb/models/top_level_ping_params.rb +3 -8
  192. data/lib/orb/models/top_level_ping_response.rb +2 -6
  193. data/lib/orb/models/trial_discount.rb +16 -24
  194. data/lib/orb/models/usage_discount.rb +15 -14
  195. data/lib/orb/request_options.rb +3 -4
  196. data/lib/orb/resources/alerts.rb +48 -17
  197. data/lib/orb/resources/coupons/subscriptions.rb +9 -2
  198. data/lib/orb/resources/coupons.rb +25 -7
  199. data/lib/orb/resources/credit_notes.rb +17 -4
  200. data/lib/orb/resources/customers/balance_transactions.rb +18 -3
  201. data/lib/orb/resources/customers/costs.rb +26 -8
  202. data/lib/orb/resources/customers/credits/ledger.rb +108 -28
  203. data/lib/orb/resources/customers/credits/top_ups.rb +67 -20
  204. data/lib/orb/resources/customers/credits.rb +28 -8
  205. data/lib/orb/resources/customers.rb +135 -36
  206. data/lib/orb/resources/dimensional_price_groups.rb +19 -4
  207. data/lib/orb/resources/events/backfills.rb +32 -9
  208. data/lib/orb/resources/events/volume.rb +14 -4
  209. data/lib/orb/resources/events.rb +40 -11
  210. data/lib/orb/resources/invoice_line_items.rb +16 -6
  211. data/lib/orb/resources/invoices.rb +77 -17
  212. data/lib/orb/resources/items.rb +10 -3
  213. data/lib/orb/resources/metrics.rb +33 -8
  214. data/lib/orb/resources/plans/external_plan_id.rb +10 -2
  215. data/lib/orb/resources/plans.rb +47 -11
  216. data/lib/orb/resources/prices/external_price_id.rb +7 -1
  217. data/lib/orb/resources/prices.rb +97 -22
  218. data/lib/orb/resources/subscription_changes.rb +5 -2
  219. data/lib/orb/resources/subscriptions.rb +292 -78
  220. data/lib/orb/version.rb +1 -1
  221. data/lib/orb.rb +2 -10
  222. data/rbi/lib/orb/client.rbi +7 -6
  223. data/rbi/lib/orb/file_part.rbi +34 -0
  224. data/rbi/lib/orb/internal/page.rbi +1 -0
  225. data/rbi/lib/orb/internal/transport/base_client.rbi +18 -3
  226. data/rbi/lib/orb/internal/type/array_of.rbi +15 -9
  227. data/rbi/lib/orb/internal/type/base_model.rbi +22 -0
  228. data/rbi/lib/orb/internal/type/base_page.rbi +2 -0
  229. data/rbi/lib/orb/internal/type/boolean.rbi +4 -5
  230. data/rbi/lib/orb/internal/type/converter.rbi +8 -0
  231. data/rbi/lib/orb/internal/type/enum.rbi +7 -6
  232. data/rbi/lib/orb/internal/type/{io_like.rbi → file_input.rbi} +9 -7
  233. data/rbi/lib/orb/internal/type/hash_of.rbi +15 -9
  234. data/rbi/lib/orb/internal/type/union.rbi +7 -0
  235. data/rbi/lib/orb/internal/type/unknown.rbi +4 -5
  236. data/rbi/lib/orb/internal/util.rbi +39 -19
  237. data/rbi/lib/orb/internal.rbi +1 -2
  238. data/rbi/lib/orb/models/alert.rbi +28 -8
  239. data/rbi/lib/orb/models/alert_create_for_customer_params.rbi +16 -6
  240. data/rbi/lib/orb/models/alert_create_for_external_customer_params.rbi +16 -6
  241. data/rbi/lib/orb/models/alert_create_for_subscription_params.rbi +16 -6
  242. data/rbi/lib/orb/models/alert_disable_params.rbi +5 -2
  243. data/rbi/lib/orb/models/alert_enable_params.rbi +5 -2
  244. data/rbi/lib/orb/models/alert_list_params.rbi +6 -0
  245. data/rbi/lib/orb/models/alert_update_params.rbi +11 -4
  246. data/rbi/lib/orb/models/amount_discount.rbi +10 -4
  247. data/rbi/lib/orb/models/billable_metric.rbi +16 -3
  248. data/rbi/lib/orb/models/billing_cycle_relative_date.rbi +1 -1
  249. data/rbi/lib/orb/models/coupon.rbi +10 -3
  250. data/rbi/lib/orb/models/coupon_create_params.rbi +6 -3
  251. data/rbi/lib/orb/models/coupon_list_params.rbi +13 -3
  252. data/rbi/lib/orb/models/coupons/subscription_list_params.rbi +8 -2
  253. data/rbi/lib/orb/models/credit_note.rbi +44 -12
  254. data/rbi/lib/orb/models/credit_note_create_params.rbi +15 -6
  255. data/rbi/lib/orb/models/credit_note_list_params.rbi +3 -0
  256. data/rbi/lib/orb/models/customer.rbi +130 -11
  257. data/rbi/lib/orb/models/customer_create_params.rbi +142 -8
  258. data/rbi/lib/orb/models/customer_list_params.rbi +3 -0
  259. data/rbi/lib/orb/models/customer_update_by_external_id_params.rbi +140 -8
  260. data/rbi/lib/orb/models/customer_update_params.rbi +140 -8
  261. data/rbi/lib/orb/models/customers/balance_transaction_create_params.rbi +8 -4
  262. data/rbi/lib/orb/models/customers/balance_transaction_create_response.rbi +18 -8
  263. data/rbi/lib/orb/models/customers/balance_transaction_list_params.rbi +3 -0
  264. data/rbi/lib/orb/models/customers/balance_transaction_list_response.rbi +18 -8
  265. data/rbi/lib/orb/models/customers/cost_list_by_external_id_params.rbi +9 -5
  266. data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +21 -4
  267. data/rbi/lib/orb/models/customers/cost_list_params.rbi +9 -5
  268. data/rbi/lib/orb/models/customers/cost_list_response.rbi +21 -4
  269. data/rbi/lib/orb/models/customers/credit_list_by_external_id_params.rbi +13 -3
  270. data/rbi/lib/orb/models/customers/credit_list_by_external_id_response.rbi +1 -2
  271. data/rbi/lib/orb/models/customers/credit_list_params.rbi +13 -3
  272. data/rbi/lib/orb/models/customers/credit_list_response.rbi +1 -2
  273. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +40 -18
  274. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +35 -56
  275. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_params.rbi +40 -6
  276. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_response.rbi +35 -56
  277. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +6 -16
  278. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +35 -56
  279. data/rbi/lib/orb/models/customers/credits/ledger_list_params.rbi +6 -4
  280. data/rbi/lib/orb/models/customers/credits/ledger_list_response.rbi +35 -56
  281. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +27 -10
  282. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +25 -10
  283. data/rbi/lib/orb/models/customers/credits/top_up_create_params.rbi +27 -4
  284. data/rbi/lib/orb/models/customers/credits/top_up_create_response.rbi +25 -10
  285. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +8 -2
  286. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +25 -10
  287. data/rbi/lib/orb/models/customers/credits/top_up_list_params.rbi +8 -2
  288. data/rbi/lib/orb/models/customers/credits/top_up_list_response.rbi +25 -4
  289. data/rbi/lib/orb/models/dimensional_price_group.rbi +11 -3
  290. data/rbi/lib/orb/models/dimensional_price_group_create_params.rbi +4 -0
  291. data/rbi/lib/orb/models/dimensional_price_group_list_params.rbi +8 -2
  292. data/rbi/lib/orb/models/evaluate_price_group.rbi +8 -2
  293. data/rbi/lib/orb/models/event_deprecate_response.rbi +4 -2
  294. data/rbi/lib/orb/models/event_ingest_params.rbi +22 -5
  295. data/rbi/lib/orb/models/event_ingest_response.rbi +15 -4
  296. data/rbi/lib/orb/models/event_search_params.rbi +14 -2
  297. data/rbi/lib/orb/models/event_search_response.rbi +14 -3
  298. data/rbi/lib/orb/models/event_update_params.rbi +10 -3
  299. data/rbi/lib/orb/models/event_update_response.rbi +4 -2
  300. data/rbi/lib/orb/models/events/backfill_close_response.rbi +14 -2
  301. data/rbi/lib/orb/models/events/backfill_create_params.rbi +18 -0
  302. data/rbi/lib/orb/models/events/backfill_create_response.rbi +14 -2
  303. data/rbi/lib/orb/models/events/backfill_fetch_response.rbi +14 -2
  304. data/rbi/lib/orb/models/events/backfill_list_params.rbi +8 -2
  305. data/rbi/lib/orb/models/events/backfill_list_response.rbi +14 -2
  306. data/rbi/lib/orb/models/events/backfill_revert_response.rbi +14 -2
  307. data/rbi/lib/orb/models/events/event_volumes.rbi +6 -2
  308. data/rbi/lib/orb/models/events/volume_list_params.rbi +18 -2
  309. data/rbi/lib/orb/models/invoice.rbi +375 -46
  310. data/rbi/lib/orb/models/invoice_create_params.rbi +38 -6
  311. data/rbi/lib/orb/models/invoice_fetch_upcoming_response.rbi +375 -66
  312. data/rbi/lib/orb/models/invoice_issue_params.rbi +9 -2
  313. data/rbi/lib/orb/models/invoice_line_item_create_params.rbi +16 -2
  314. data/rbi/lib/orb/models/invoice_line_item_create_response.rbi +141 -20
  315. data/rbi/lib/orb/models/invoice_list_params.rbi +9 -2
  316. data/rbi/lib/orb/models/invoice_mark_paid_params.rbi +9 -2
  317. data/rbi/lib/orb/models/invoice_update_params.rbi +7 -2
  318. data/rbi/lib/orb/models/item.rbi +1 -2
  319. data/rbi/lib/orb/models/item_create_params.rbi +5 -2
  320. data/rbi/lib/orb/models/item_list_params.rbi +8 -2
  321. data/rbi/lib/orb/models/item_update_params.rbi +1 -8
  322. data/rbi/lib/orb/models/metric_create_params.rbi +15 -2
  323. data/rbi/lib/orb/models/metric_list_params.rbi +3 -0
  324. data/rbi/lib/orb/models/metric_update_params.rbi +7 -2
  325. data/rbi/lib/orb/models/percentage_discount.rbi +11 -4
  326. data/rbi/lib/orb/models/plan.rbi +102 -15
  327. data/rbi/lib/orb/models/plan_create_params.rbi +997 -679
  328. data/rbi/lib/orb/models/plan_list_params.rbi +5 -1
  329. data/rbi/lib/orb/models/plan_update_params.rbi +11 -2
  330. data/rbi/lib/orb/models/plans/external_plan_id_update_params.rbi +11 -2
  331. data/rbi/lib/orb/models/price.rbi +717 -688
  332. data/rbi/lib/orb/models/price_create_params.rbi +137 -53
  333. data/rbi/lib/orb/models/price_evaluate_params.rbi +10 -0
  334. data/rbi/lib/orb/models/price_list_params.rbi +8 -2
  335. data/rbi/lib/orb/models/price_update_params.rbi +7 -2
  336. data/rbi/lib/orb/models/prices/external_price_id_update_params.rbi +7 -2
  337. data/rbi/lib/orb/models/subscription.rbi +174 -11
  338. data/rbi/lib/orb/models/subscription_cancel_params.rbi +8 -5
  339. data/rbi/lib/orb/models/subscription_cancel_response.rbi +187 -14
  340. data/rbi/lib/orb/models/subscription_change_apply_params.rbi +7 -2
  341. data/rbi/lib/orb/models/subscription_change_apply_response.rbi +199 -18
  342. data/rbi/lib/orb/models/subscription_change_cancel_response.rbi +199 -18
  343. data/rbi/lib/orb/models/subscription_change_retrieve_response.rbi +199 -18
  344. data/rbi/lib/orb/models/subscription_create_params.rbi +2282 -1536
  345. data/rbi/lib/orb/models/subscription_create_response.rbi +187 -14
  346. data/rbi/lib/orb/models/subscription_fetch_costs_params.rbi +9 -5
  347. data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +21 -4
  348. data/rbi/lib/orb/models/subscription_fetch_schedule_params.rbi +3 -0
  349. data/rbi/lib/orb/models/subscription_fetch_schedule_response.rbi +8 -2
  350. data/rbi/lib/orb/models/subscription_fetch_usage_params.rbi +13 -4
  351. data/rbi/lib/orb/models/subscription_list_params.rbi +4 -2
  352. data/rbi/lib/orb/models/subscription_price_intervals_params.rbi +1228 -861
  353. data/rbi/lib/orb/models/subscription_price_intervals_response.rbi +187 -14
  354. data/rbi/lib/orb/models/subscription_schedule_plan_change_params.rbi +2288 -1544
  355. data/rbi/lib/orb/models/subscription_schedule_plan_change_response.rbi +187 -14
  356. data/rbi/lib/orb/models/subscription_trigger_phase_params.rbi +10 -2
  357. data/rbi/lib/orb/models/subscription_trigger_phase_response.rbi +187 -14
  358. data/rbi/lib/orb/models/subscription_unschedule_cancellation_response.rbi +187 -14
  359. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +5 -2
  360. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +187 -20
  361. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +187 -14
  362. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_params.rbi +11 -2
  363. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_response.rbi +187 -14
  364. data/rbi/lib/orb/models/subscription_update_params.rbi +15 -0
  365. data/rbi/lib/orb/models/subscription_update_trial_params.rbi +11 -5
  366. data/rbi/lib/orb/models/subscription_update_trial_response.rbi +187 -14
  367. data/rbi/lib/orb/models/subscription_usage.rbi +2 -16
  368. data/rbi/lib/orb/models/trial_discount.rbi +5 -1
  369. data/rbi/lib/orb/models/usage_discount.rbi +11 -3
  370. data/sig/orb/file_part.rbs +21 -0
  371. data/sig/orb/internal/transport/base_client.rbs +9 -3
  372. data/sig/orb/internal/type/array_of.rbs +4 -0
  373. data/sig/orb/internal/type/base_model.rbs +12 -0
  374. data/sig/orb/internal/type/converter.rbs +4 -0
  375. data/sig/orb/internal/type/enum.rbs +4 -2
  376. data/sig/orb/internal/type/{io_like.rbs → file_input.rbs} +1 -1
  377. data/sig/orb/internal/type/hash_of.rbs +4 -0
  378. data/sig/orb/internal/type/union.rbs +4 -0
  379. data/sig/orb/internal/util.rbs +16 -12
  380. data/sig/orb/internal.rbs +1 -1
  381. metadata +9 -5
@@ -4,14 +4,6 @@ module Orb
4
4
  module Internal
5
5
  module Type
6
6
  # @abstract
7
- #
8
- # @example
9
- # # `amount_discount` is a `Orb::Models::AmountDiscount`
10
- # amount_discount => {
11
- # amount_discount: amount_discount,
12
- # applies_to_price_ids: applies_to_price_ids,
13
- # discount_type: discount_type
14
- # }
15
7
  class BaseModel
16
8
  extend Orb::Internal::Type::Converter
17
9
 
@@ -63,7 +55,7 @@ module Orb
63
55
 
64
56
  setter = "#{name_sym}="
65
57
  api_name = info.fetch(:api_name, name_sym)
66
- nilable = info[:nil?]
58
+ nilable = info.fetch(:nil?, false)
67
59
  const = required && !nilable ? info.fetch(:const, Orb::Internal::OMIT) : Orb::Internal::OMIT
68
60
 
69
61
  [name_sym, setter].each { undef_method(_1) } if known_fields.key?(name_sym)
@@ -93,11 +85,13 @@ module Orb
93
85
  state: state
94
86
  )
95
87
  end
96
- rescue StandardError
88
+ rescue StandardError => e
97
89
  cls = self.class.name.split("::").last
98
- # rubocop:disable Layout/LineLength
99
- message = "Failed to parse #{cls}.#{__method__} from #{value.class} to #{target.inspect}. To get the unparsed API response, use #{cls}[:#{__method__}]."
100
- # rubocop:enable Layout/LineLength
90
+ message = [
91
+ "Failed to parse #{cls}.#{__method__} from #{value.class} to #{target.inspect}.",
92
+ "To get the unparsed API response, use #{cls}[#{__method__.inspect}].",
93
+ "Cause: #{e.message}"
94
+ ].join(" ")
101
95
  raise Orb::Errors::ConversionError.new(message)
102
96
  end
103
97
  end
@@ -165,19 +159,33 @@ module Orb
165
159
  @mode = nil
166
160
  end
167
161
 
162
+ # @api public
163
+ #
168
164
  # @param other [Object]
169
165
  #
170
166
  # @return [Boolean]
171
167
  def ==(other)
172
168
  other.is_a?(Class) && other <= Orb::Internal::Type::BaseModel && other.fields == fields
173
169
  end
170
+
171
+ # @api public
172
+ #
173
+ # @return [Integer]
174
+ def hash = fields.hash
174
175
  end
175
176
 
177
+ # @api public
178
+ #
176
179
  # @param other [Object]
177
180
  #
178
181
  # @return [Boolean]
179
182
  def ==(other) = self.class == other.class && @data == other.to_h
180
183
 
184
+ # @api public
185
+ #
186
+ # @return [Integer]
187
+ def hash = [self.class, @data].hash
188
+
181
189
  class << self
182
190
  # @api private
183
191
  #
@@ -291,6 +299,8 @@ module Orb
291
299
  end
292
300
  end
293
301
 
302
+ # @api public
303
+ #
294
304
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
295
305
  # returned.
296
306
  #
@@ -309,6 +319,8 @@ module Orb
309
319
  @data[key]
310
320
  end
311
321
 
322
+ # @api public
323
+ #
312
324
  # Returns a Hash of the data underlying this object. O(1)
313
325
  #
314
326
  # Keys are Symbols and values are the raw values from the response. The return
@@ -338,11 +350,38 @@ module Orb
338
350
  .to_h
339
351
  end
340
352
 
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
+ # @api public
377
+ #
341
378
  # @param a [Object]
342
379
  #
343
380
  # @return [String]
344
381
  def to_json(*a) = Orb::Internal::Type::Converter.dump(self.class, self).to_json(*a)
345
382
 
383
+ # @api public
384
+ #
346
385
  # @param a [Object]
347
386
  #
348
387
  # @return [String]
@@ -350,7 +389,7 @@ module Orb
350
389
 
351
390
  # Create a new instance of a model.
352
391
  #
353
- # @param data [Hash{Symbol=>Object}, Orb::Internal::Type::BaseModel]
392
+ # @param data [Hash{Symbol=>Object}, self]
354
393
  def initialize(data = {})
355
394
  case Orb::Internal::Util.coerce_hash(data)
356
395
  in Hash => coerced
@@ -361,15 +400,38 @@ module Orb
361
400
  end
362
401
  end
363
402
 
364
- # @return [String]
365
- def inspect
366
- rows = self.class.known_fields.keys.map do
367
- "#{_1}=#{@data.key?(_1) ? public_send(_1) : ''}"
368
- rescue Orb::Errors::ConversionError
369
- "#{_1}=#{@data.fetch(_1)}"
403
+ class << self
404
+ # @api private
405
+ #
406
+ # @param depth [Integer]
407
+ #
408
+ # @return [String]
409
+ def inspect(depth: 0)
410
+ return super() if depth.positive?
411
+
412
+ depth = depth.succ
413
+ deferred = fields.transform_values do |field|
414
+ type, required, nilable = field.fetch_values(:type, :required, :nilable)
415
+ inspected = [
416
+ Orb::Internal::Type::Converter.inspect(type, depth: depth),
417
+ !required || nilable ? "nil" : nil
418
+ ].compact.join(" | ")
419
+ -> { inspected }.tap { _1.define_singleton_method(:inspect) { call } }
420
+ end
421
+
422
+ "#{name}[#{deferred.inspect}]"
370
423
  end
371
- "#<#{self.class.name}:0x#{object_id.to_s(16)} #{rows.join(' ')}>"
372
424
  end
425
+
426
+ # @api public
427
+ #
428
+ # @return [String]
429
+ def to_s = self.class.walk(@data).to_s
430
+
431
+ # @api private
432
+ #
433
+ # @return [String]
434
+ def inspect = "#<#{self.class}:0x#{object_id.to_s(16)} #{self}>"
373
435
  end
374
436
  end
375
437
  end
@@ -3,19 +3,27 @@
3
3
  module Orb
4
4
  module Internal
5
5
  module Type
6
+ # @api private
7
+ #
6
8
  # @generic Elem
7
9
  #
8
10
  # This module provides a base implementation for paginated responses in the SDK.
9
11
  module BasePage
10
12
  # rubocop:disable Lint/UnusedMethodArgument
11
13
 
14
+ # @api public
15
+ #
12
16
  # @return [Boolean]
13
17
  def next_page? = (raise NotImplementedError)
14
18
 
19
+ # @api public
20
+ #
15
21
  # @raise [Orb::Errors::APIError]
16
- # @return [Orb::Internal::Type::BasePage]
22
+ # @return [self]
17
23
  def next_page = (raise NotImplementedError)
18
24
 
25
+ # @api public
26
+ #
19
27
  # @param blk [Proc]
20
28
  #
21
29
  # @yieldparam [generic<Elem>]
@@ -36,6 +44,7 @@ module Orb
36
44
  def initialize(client:, req:, headers:, page_data:)
37
45
  @client = client
38
46
  @req = req
47
+ @model = req.fetch(:model)
39
48
  super()
40
49
  end
41
50
 
@@ -11,11 +11,17 @@ module Orb
11
11
  class Boolean
12
12
  extend Orb::Internal::Type::Converter
13
13
 
14
+ private_class_method :new
15
+
16
+ # @api public
17
+ #
14
18
  # @param other [Object]
15
19
  #
16
20
  # @return [Boolean]
17
21
  def self.===(other) = other == true || other == false
18
22
 
23
+ # @api public
24
+ #
19
25
  # @param other [Object]
20
26
  #
21
27
  # @return [Boolean]
@@ -43,12 +43,24 @@ module Orb
43
43
  value.string
44
44
  in Pathname | IO
45
45
  state[:can_retry] = false if value.is_a?(IO)
46
- Orb::Internal::Util::SerializationAdapter.new(value)
46
+ Orb::FilePart.new(value)
47
+ in Orb::FilePart
48
+ state[:can_retry] = false if value.content.is_a?(IO)
49
+ value
47
50
  else
48
51
  value
49
52
  end
50
53
  end
51
54
 
55
+ # @api private
56
+ #
57
+ # @param depth [Integer]
58
+ #
59
+ # @return [String]
60
+ def inspect(depth: 0)
61
+ super()
62
+ end
63
+
52
64
  # rubocop:enable Lint/UnusedMethodArgument
53
65
 
54
66
  class << self
@@ -240,6 +252,21 @@ module Orb
240
252
  Orb::Internal::Type::Unknown.dump(value, state: state)
241
253
  end
242
254
  end
255
+
256
+ # @api private
257
+ #
258
+ # @param target [Object]
259
+ # @param depth [Integer]
260
+ #
261
+ # @return [String]
262
+ def inspect(target, depth:)
263
+ case target
264
+ in Orb::Internal::Type::Converter
265
+ target.inspect(depth: depth.succ)
266
+ else
267
+ target.inspect
268
+ end
269
+ end
243
270
  end
244
271
  end
245
272
  end
@@ -42,27 +42,31 @@ module Orb
42
42
  # All of the valid Symbol values for this enum.
43
43
  #
44
44
  # @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
45
- def values = (@values ||= constants.map { const_get(_1) })
45
+ def values = constants.map { const_get(_1) }
46
46
 
47
- # @api private
47
+ # @api public
48
48
  #
49
- # Guard against thread safety issues by instantiating `@values`.
50
- private def finalize! = values
51
-
52
49
  # @param other [Object]
53
50
  #
54
51
  # @return [Boolean]
55
52
  def ===(other) = values.include?(other)
56
53
 
54
+ # @api public
55
+ #
57
56
  # @param other [Object]
58
57
  #
59
58
  # @return [Boolean]
60
59
  def ==(other)
61
- # rubocop:disable Layout/LineLength
62
- other.is_a?(Module) && other.singleton_class <= Orb::Internal::Type::Enum && other.values.to_set == values.to_set
63
- # rubocop:enable Layout/LineLength
60
+ # rubocop:disable Style/CaseEquality
61
+ Orb::Internal::Type::Enum === other && other.values.to_set == values.to_set
62
+ # rubocop:enable Style/CaseEquality
64
63
  end
65
64
 
65
+ # @api public
66
+ #
67
+ # @return [Integer]
68
+ def hash = values.to_set.hash
69
+
66
70
  # @api private
67
71
  #
68
72
  # Unlike with primitives, `Enum` additionally validates that the value is a member
@@ -103,6 +107,22 @@ module Orb
103
107
  # #
104
108
  # # @return [Symbol, Object]
105
109
  # def dump(value, state:) = super
110
+
111
+ # @api private
112
+ #
113
+ # @param depth [Integer]
114
+ #
115
+ # @return [String]
116
+ def inspect(depth: 0)
117
+ if depth.positive?
118
+ return is_a?(Module) ? super() : self.class.name
119
+ end
120
+
121
+ members = values.map { Orb::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
122
+ prefix = is_a?(Module) ? name : self.class.name
123
+
124
+ "#{prefix}[#{members.join(' | ')}]"
125
+ end
106
126
  end
107
127
  end
108
128
  end
@@ -7,26 +7,35 @@ module Orb
7
7
  #
8
8
  # @abstract
9
9
  #
10
- # Either `Pathname` or `StringIO`.
11
- class IOLike
10
+ # Either `Pathname` or `StringIO`, or `IO`, or `Orb::Internal::Type::FileInput`.
11
+ #
12
+ # Note: when `IO` is used, all retries are disabled, since many IO` streams are
13
+ # not rewindable.
14
+ class FileInput
12
15
  extend Orb::Internal::Type::Converter
13
16
 
17
+ private_class_method :new
18
+
19
+ # @api public
20
+ #
14
21
  # @param other [Object]
15
22
  #
16
23
  # @return [Boolean]
17
24
  def self.===(other)
18
25
  case other
19
- in StringIO | Pathname | IO
26
+ in Pathname | StringIO | IO | String | Orb::FilePart
20
27
  true
21
28
  else
22
29
  false
23
30
  end
24
31
  end
25
32
 
33
+ # @api public
34
+ #
26
35
  # @param other [Object]
27
36
  #
28
37
  # @return [Boolean]
29
- def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::IOLike
38
+ def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::FileInput
30
39
 
31
40
  class << self
32
41
  # @api private
@@ -57,17 +66,28 @@ module Orb
57
66
  end
58
67
  end
59
68
 
60
- # @!parse
61
- # # @api private
62
- # #
63
- # # @param value [Pathname, StringIO, IO, String, Object]
64
- # #
65
- # # @param state [Hash{Symbol=>Object}] .
66
- # #
67
- # # @option state [Boolean] :can_retry
68
- # #
69
- # # @return [Pathname, StringIO, IO, String, Object]
70
- # def dump(value, state:) = super
69
+ # @api private
70
+ #
71
+ # @param value [Pathname, StringIO, IO, String, Object]
72
+ #
73
+ # @param state [Hash{Symbol=>Object}] .
74
+ #
75
+ # @option state [Boolean] :can_retry
76
+ #
77
+ # @return [Pathname, StringIO, IO, String, Object]
78
+ def dump(value, state:)
79
+ # rubocop:disable Lint/DuplicateBranch
80
+ case value
81
+ in IO
82
+ state[:can_retry] = false
83
+ in Orb::FilePart if value.content.is_a?(IO)
84
+ state[:can_retry] = false
85
+ else
86
+ end
87
+ # rubocop:enable Lint/DuplicateBranch
88
+
89
+ value
90
+ end
71
91
  end
72
92
  end
73
93
  end
@@ -13,6 +13,10 @@ module Orb
13
13
  class HashOf
14
14
  include Orb::Internal::Type::Converter
15
15
 
16
+ private_class_method :new
17
+
18
+ # @overload [](type_info, spec = {})
19
+ #
16
20
  # @param type_info [Hash{Symbol=>Object}, Proc, Orb::Internal::Type::Converter, Class]
17
21
  #
18
22
  # @param spec [Hash{Symbol=>Object}] .
@@ -24,8 +28,12 @@ module Orb
24
28
  # @option spec [Proc] :union
25
29
  #
26
30
  # @option spec [Boolean] :"nil?"
27
- def self.[](type_info, spec = {}) = new(type_info, spec)
31
+ #
32
+ # @return [Orb::Internal::Type::HashOf]
33
+ def self.[](...) = new(...)
28
34
 
35
+ # @api public
36
+ #
29
37
  # @param other [Object]
30
38
  #
31
39
  # @return [Boolean]
@@ -46,6 +54,8 @@ module Orb
46
54
  end
47
55
  end
48
56
 
57
+ # @api public
58
+ #
49
59
  # @param other [Object]
50
60
  #
51
61
  # @return [Boolean]
@@ -55,6 +65,11 @@ module Orb
55
65
  # rubocop:enable Layout/LineLength
56
66
  end
57
67
 
68
+ # @api public
69
+ #
70
+ # @return [Integer]
71
+ def hash = [self.class, item_type].hash
72
+
58
73
  # @api private
59
74
  #
60
75
  # @param value [Hash{Object=>Object}, Object]
@@ -140,7 +155,18 @@ module Orb
140
155
  # @option spec [Boolean] :"nil?"
141
156
  def initialize(type_info, spec = {})
142
157
  @item_type_fn = Orb::Internal::Type::Converter.type_info(type_info || spec)
143
- @nilable = spec[:nil?]
158
+ @nilable = spec.fetch(:nil?, false)
159
+ end
160
+
161
+ # @api private
162
+ #
163
+ # @param depth [Integer]
164
+ #
165
+ # @return [String]
166
+ def inspect(depth: 0)
167
+ items = Orb::Internal::Type::Converter.inspect(item_type, depth: depth.succ)
168
+
169
+ "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]"
144
170
  end
145
171
  end
146
172
  end
@@ -12,9 +12,8 @@ module Orb
12
12
 
13
13
  # @param mod [Module]
14
14
  def self.included(mod)
15
- return unless mod <= Orb::Internal::Type::BaseModel
15
+ raise ArgumentError.new(mod) unless mod <= Orb::Internal::Type::BaseModel
16
16
 
17
- mod.extend(Orb::Internal::Type::RequestParameters::Converter)
18
17
  mod.optional(:request_options, Orb::RequestOptions)
19
18
  end
20
19
 
@@ -58,7 +58,7 @@ module Orb
58
58
  #
59
59
  # @return [Array<Array(Symbol, Object)>]
60
60
  protected def derefed_variants
61
- @known_variants.map { |key, variant_fn| [key, variant_fn.call] }
61
+ known_variants.map { |key, variant_fn| [key, variant_fn.call] }
62
62
  end
63
63
 
64
64
  # All of the specified variants for this union.
@@ -127,6 +127,8 @@ module Orb
127
127
  # rubocop:disable Style/HashEachMethods
128
128
  # rubocop:disable Style/CaseEquality
129
129
 
130
+ # @api public
131
+ #
130
132
  # @param other [Object]
131
133
  #
132
134
  # @return [Boolean]
@@ -136,15 +138,20 @@ module Orb
136
138
  end
137
139
  end
138
140
 
141
+ # @api public
142
+ #
139
143
  # @param other [Object]
140
144
  #
141
145
  # @return [Boolean]
142
146
  def ==(other)
143
- # rubocop:disable Layout/LineLength
144
- other.is_a?(Module) && other.singleton_class <= Orb::Internal::Type::Union && other.derefed_variants == derefed_variants
145
- # rubocop:enable Layout/LineLength
147
+ Orb::Internal::Type::Union === other && other.derefed_variants == derefed_variants
146
148
  end
147
149
 
150
+ # @api public
151
+ #
152
+ # @return [Integer]
153
+ def hash = variants.hash
154
+
148
155
  # @api private
149
156
  #
150
157
  # @param value [Object]
@@ -225,6 +232,22 @@ module Orb
225
232
 
226
233
  # rubocop:enable Style/CaseEquality
227
234
  # rubocop:enable Style/HashEachMethods
235
+
236
+ # @api private
237
+ #
238
+ # @param depth [Integer]
239
+ #
240
+ # @return [String]
241
+ def inspect(depth: 0)
242
+ if depth.positive?
243
+ return is_a?(Module) ? super() : self.class.name
244
+ end
245
+
246
+ members = variants.map { Orb::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
247
+ prefix = is_a?(Module) ? name : self.class.name
248
+
249
+ "#{prefix}[#{members.join(' | ')}]"
250
+ end
228
251
  end
229
252
  end
230
253
  end
@@ -13,11 +13,17 @@ module Orb
13
13
 
14
14
  # rubocop:disable Lint/UnusedMethodArgument
15
15
 
16
+ private_class_method :new
17
+
18
+ # @api public
19
+ #
16
20
  # @param other [Object]
17
21
  #
18
22
  # @return [Boolean]
19
23
  def self.===(other) = true
20
24
 
25
+ # @api public
26
+ #
21
27
  # @param other [Object]
22
28
  #
23
29
  # @return [Boolean]