orb-billing 0.1.0.pre.alpha.33

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 (635) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +169 -0
  3. data/lib/orb/client.rb +129 -0
  4. data/lib/orb/errors.rb +317 -0
  5. data/lib/orb/models/alert.rb +225 -0
  6. data/lib/orb/models/alert_create_for_customer_params.rb +77 -0
  7. data/lib/orb/models/alert_create_for_external_customer_params.rb +77 -0
  8. data/lib/orb/models/alert_create_for_subscription_params.rb +74 -0
  9. data/lib/orb/models/alert_disable_params.rb +26 -0
  10. data/lib/orb/models/alert_enable_params.rb +26 -0
  11. data/lib/orb/models/alert_list_params.rb +97 -0
  12. data/lib/orb/models/alert_retrieve_params.rb +19 -0
  13. data/lib/orb/models/alert_update_params.rb +46 -0
  14. data/lib/orb/models/amount_discount.rb +53 -0
  15. data/lib/orb/models/billable_metric.rb +76 -0
  16. data/lib/orb/models/billing_cycle_relative_date.rb +18 -0
  17. data/lib/orb/models/coupon.rb +86 -0
  18. data/lib/orb/models/coupon_archive_params.rb +19 -0
  19. data/lib/orb/models/coupon_create_params.rb +102 -0
  20. data/lib/orb/models/coupon_fetch_params.rb +19 -0
  21. data/lib/orb/models/coupon_list_params.rb +53 -0
  22. data/lib/orb/models/coupons/subscription_list_params.rb +40 -0
  23. data/lib/orb/models/credit_note.rb +522 -0
  24. data/lib/orb/models/credit_note_create_params.rb +77 -0
  25. data/lib/orb/models/credit_note_fetch_params.rb +19 -0
  26. data/lib/orb/models/credit_note_list_params.rb +73 -0
  27. data/lib/orb/models/customer.rb +872 -0
  28. data/lib/orb/models/customer_create_params.rb +843 -0
  29. data/lib/orb/models/customer_delete_params.rb +19 -0
  30. data/lib/orb/models/customer_fetch_by_external_id_params.rb +19 -0
  31. data/lib/orb/models/customer_fetch_params.rb +19 -0
  32. data/lib/orb/models/customer_list_params.rb +73 -0
  33. data/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rb +19 -0
  34. data/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rb +19 -0
  35. data/lib/orb/models/customer_update_by_external_id_params.rb +848 -0
  36. data/lib/orb/models/customer_update_params.rb +838 -0
  37. data/lib/orb/models/customers/balance_transaction_create_params.rb +53 -0
  38. data/lib/orb/models/customers/balance_transaction_create_response.rb +167 -0
  39. data/lib/orb/models/customers/balance_transaction_list_params.rb +75 -0
  40. data/lib/orb/models/customers/balance_transaction_list_response.rb +167 -0
  41. data/lib/orb/models/customers/cost_list_by_external_id_params.rb +69 -0
  42. data/lib/orb/models/customers/cost_list_by_external_id_response.rb +106 -0
  43. data/lib/orb/models/customers/cost_list_params.rb +69 -0
  44. data/lib/orb/models/customers/cost_list_response.rb +106 -0
  45. data/lib/orb/models/customers/credit_list_by_external_id_params.rb +59 -0
  46. data/lib/orb/models/customers/credit_list_by_external_id_response.rb +72 -0
  47. data/lib/orb/models/customers/credit_list_params.rb +59 -0
  48. data/lib/orb/models/customers/credit_list_response.rb +72 -0
  49. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +215 -0
  50. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +1311 -0
  51. data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +214 -0
  52. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +1310 -0
  53. data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +141 -0
  54. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +1310 -0
  55. data/lib/orb/models/customers/credits/ledger_list_params.rb +141 -0
  56. data/lib/orb/models/customers/credits/ledger_list_response.rb +1306 -0
  57. data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +159 -0
  58. data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +154 -0
  59. data/lib/orb/models/customers/credits/top_up_create_params.rb +158 -0
  60. data/lib/orb/models/customers/credits/top_up_create_response.rb +153 -0
  61. data/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rb +29 -0
  62. data/lib/orb/models/customers/credits/top_up_delete_params.rb +29 -0
  63. data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +42 -0
  64. data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +154 -0
  65. data/lib/orb/models/customers/credits/top_up_list_params.rb +42 -0
  66. data/lib/orb/models/customers/credits/top_up_list_response.rb +153 -0
  67. data/lib/orb/models/dimensional_price_group.rb +64 -0
  68. data/lib/orb/models/dimensional_price_group_create_params.rb +63 -0
  69. data/lib/orb/models/dimensional_price_group_list_params.rb +38 -0
  70. data/lib/orb/models/dimensional_price_group_retrieve_params.rb +19 -0
  71. data/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rb +21 -0
  72. data/lib/orb/models/dimensional_price_groups.rb +25 -0
  73. data/lib/orb/models/discount.rb +23 -0
  74. data/lib/orb/models/evaluate_price_group.rb +48 -0
  75. data/lib/orb/models/event_deprecate_params.rb +19 -0
  76. data/lib/orb/models/event_deprecate_response.rb +21 -0
  77. data/lib/orb/models/event_ingest_params.rb +100 -0
  78. data/lib/orb/models/event_ingest_response.rb +77 -0
  79. data/lib/orb/models/event_search_params.rb +45 -0
  80. data/lib/orb/models/event_search_response.rb +87 -0
  81. data/lib/orb/models/event_update_params.rb +58 -0
  82. data/lib/orb/models/event_update_response.rb +21 -0
  83. data/lib/orb/models/events/backfill_close_params.rb +21 -0
  84. data/lib/orb/models/events/backfill_close_response.rb +131 -0
  85. data/lib/orb/models/events/backfill_create_params.rb +97 -0
  86. data/lib/orb/models/events/backfill_create_response.rb +131 -0
  87. data/lib/orb/models/events/backfill_fetch_params.rb +21 -0
  88. data/lib/orb/models/events/backfill_fetch_response.rb +131 -0
  89. data/lib/orb/models/events/backfill_list_params.rb +40 -0
  90. data/lib/orb/models/events/backfill_list_response.rb +131 -0
  91. data/lib/orb/models/events/backfill_revert_params.rb +21 -0
  92. data/lib/orb/models/events/backfill_revert_response.rb +131 -0
  93. data/lib/orb/models/events/event_volumes.rb +54 -0
  94. data/lib/orb/models/events/volume_list_params.rb +64 -0
  95. data/lib/orb/models/invoice.rb +2218 -0
  96. data/lib/orb/models/invoice_create_params.rb +200 -0
  97. data/lib/orb/models/invoice_fetch_params.rb +19 -0
  98. data/lib/orb/models/invoice_fetch_upcoming_params.rb +25 -0
  99. data/lib/orb/models/invoice_fetch_upcoming_response.rb +2226 -0
  100. data/lib/orb/models/invoice_issue_params.rb +34 -0
  101. data/lib/orb/models/invoice_level_discount.rb +21 -0
  102. data/lib/orb/models/invoice_line_item_create_params.rb +62 -0
  103. data/lib/orb/models/invoice_line_item_create_response.rb +929 -0
  104. data/lib/orb/models/invoice_list_params.rb +197 -0
  105. data/lib/orb/models/invoice_mark_paid_params.rb +40 -0
  106. data/lib/orb/models/invoice_pay_params.rb +19 -0
  107. data/lib/orb/models/invoice_update_params.rb +28 -0
  108. data/lib/orb/models/invoice_void_params.rb +19 -0
  109. data/lib/orb/models/item.rb +82 -0
  110. data/lib/orb/models/item_create_params.rb +26 -0
  111. data/lib/orb/models/item_fetch_params.rb +19 -0
  112. data/lib/orb/models/item_list_params.rb +38 -0
  113. data/lib/orb/models/item_update_params.rb +73 -0
  114. data/lib/orb/models/metric_create_params.rb +56 -0
  115. data/lib/orb/models/metric_fetch_params.rb +19 -0
  116. data/lib/orb/models/metric_list_params.rb +73 -0
  117. data/lib/orb/models/metric_update_params.rb +28 -0
  118. data/lib/orb/models/pagination_metadata.rb +25 -0
  119. data/lib/orb/models/percentage_discount.rb +54 -0
  120. data/lib/orb/models/plan.rb +894 -0
  121. data/lib/orb/models/plan_create_params.rb +6702 -0
  122. data/lib/orb/models/plan_fetch_params.rb +19 -0
  123. data/lib/orb/models/plan_list_params.rb +100 -0
  124. data/lib/orb/models/plan_update_params.rb +37 -0
  125. data/lib/orb/models/plans/external_plan_id_fetch_params.rb +21 -0
  126. data/lib/orb/models/plans/external_plan_id_update_params.rb +39 -0
  127. data/lib/orb/models/price.rb +12229 -0
  128. data/lib/orb/models/price_create_params.rb +808 -0
  129. data/lib/orb/models/price_evaluate_params.rb +80 -0
  130. data/lib/orb/models/price_evaluate_response.rb +20 -0
  131. data/lib/orb/models/price_fetch_params.rb +19 -0
  132. data/lib/orb/models/price_list_params.rb +38 -0
  133. data/lib/orb/models/price_update_params.rb +28 -0
  134. data/lib/orb/models/prices/external_price_id_fetch_params.rb +21 -0
  135. data/lib/orb/models/prices/external_price_id_update_params.rb +30 -0
  136. data/lib/orb/models/subscription.rb +1233 -0
  137. data/lib/orb/models/subscription_cancel_params.rb +58 -0
  138. data/lib/orb/models/subscription_cancel_response.rb +1217 -0
  139. data/lib/orb/models/subscription_create_params.rb +15065 -0
  140. data/lib/orb/models/subscription_create_response.rb +1217 -0
  141. data/lib/orb/models/subscription_fetch_costs_params.rb +67 -0
  142. data/lib/orb/models/subscription_fetch_costs_response.rb +104 -0
  143. data/lib/orb/models/subscription_fetch_params.rb +19 -0
  144. data/lib/orb/models/subscription_fetch_schedule_params.rb +73 -0
  145. data/lib/orb/models/subscription_fetch_schedule_response.rb +68 -0
  146. data/lib/orb/models/subscription_fetch_usage_params.rb +135 -0
  147. data/lib/orb/models/subscription_list_params.rb +108 -0
  148. data/lib/orb/models/subscription_price_intervals_params.rb +8358 -0
  149. data/lib/orb/models/subscription_price_intervals_response.rb +1224 -0
  150. data/lib/orb/models/subscription_schedule_plan_change_params.rb +15088 -0
  151. data/lib/orb/models/subscription_schedule_plan_change_response.rb +1224 -0
  152. data/lib/orb/models/subscription_trigger_phase_params.rb +36 -0
  153. data/lib/orb/models/subscription_trigger_phase_response.rb +1224 -0
  154. data/lib/orb/models/subscription_unschedule_cancellation_params.rb +19 -0
  155. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +1224 -0
  156. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rb +26 -0
  157. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +1228 -0
  158. data/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rb +19 -0
  159. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +1224 -0
  160. data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +90 -0
  161. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +1224 -0
  162. data/lib/orb/models/subscription_update_params.rb +74 -0
  163. data/lib/orb/models/subscription_update_trial_params.rb +59 -0
  164. data/lib/orb/models/subscription_update_trial_response.rb +1222 -0
  165. data/lib/orb/models/subscription_usage.rb +258 -0
  166. data/lib/orb/models/subscriptions.rb +25 -0
  167. data/lib/orb/models/top_level_ping_params.rb +19 -0
  168. data/lib/orb/models/top_level_ping_response.rb +20 -0
  169. data/lib/orb/models/trial_discount.rb +69 -0
  170. data/lib/orb/models/usage_discount.rb +54 -0
  171. data/lib/orb/page.rb +114 -0
  172. data/lib/orb/request_options.rb +75 -0
  173. data/lib/orb/resources/alerts.rb +239 -0
  174. data/lib/orb/resources/coupons/subscriptions.rb +43 -0
  175. data/lib/orb/resources/coupons.rb +115 -0
  176. data/lib/orb/resources/credit_notes.rb +87 -0
  177. data/lib/orb/resources/customers/balance_transactions.rb +96 -0
  178. data/lib/orb/resources/customers/costs.rb +298 -0
  179. data/lib/orb/resources/customers/credits/ledger.rb +527 -0
  180. data/lib/orb/resources/customers/credits/top_ups.rb +192 -0
  181. data/lib/orb/resources/customers/credits.rb +88 -0
  182. data/lib/orb/resources/customers.rb +321 -0
  183. data/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rb +38 -0
  184. data/lib/orb/resources/dimensional_price_groups.rb +93 -0
  185. data/lib/orb/resources/events/backfills.rb +174 -0
  186. data/lib/orb/resources/events/volume.rb +52 -0
  187. data/lib/orb/resources/events.rb +415 -0
  188. data/lib/orb/resources/invoice_line_items.rb +41 -0
  189. data/lib/orb/resources/invoices.rb +266 -0
  190. data/lib/orb/resources/items.rb +95 -0
  191. data/lib/orb/resources/metrics.rb +114 -0
  192. data/lib/orb/resources/plans/external_plan_id.rb +76 -0
  193. data/lib/orb/resources/plans.rb +133 -0
  194. data/lib/orb/resources/prices/external_price_id.rb +61 -0
  195. data/lib/orb/resources/prices.rb +197 -0
  196. data/lib/orb/resources/subscriptions.rb +1278 -0
  197. data/lib/orb/resources/top_level.rb +37 -0
  198. data/lib/orb/transport/base_client.rb +459 -0
  199. data/lib/orb/transport/pooled_net_requester.rb +182 -0
  200. data/lib/orb/type/array_of.rb +112 -0
  201. data/lib/orb/type/base_model.rb +367 -0
  202. data/lib/orb/type/base_page.rb +61 -0
  203. data/lib/orb/type/boolean_model.rb +52 -0
  204. data/lib/orb/type/converter.rb +217 -0
  205. data/lib/orb/type/enum.rb +101 -0
  206. data/lib/orb/type/hash_of.rb +132 -0
  207. data/lib/orb/type/request_parameters.rb +38 -0
  208. data/lib/orb/type/union.rb +225 -0
  209. data/lib/orb/type/unknown.rb +56 -0
  210. data/lib/orb/type.rb +23 -0
  211. data/lib/orb/util.rb +722 -0
  212. data/lib/orb/version.rb +5 -0
  213. data/lib/orb.rb +247 -0
  214. data/manifest.yaml +15 -0
  215. data/rbi/lib/orb/client.rbi +90 -0
  216. data/rbi/lib/orb/errors.rbi +246 -0
  217. data/rbi/lib/orb/models/alert.rbi +239 -0
  218. data/rbi/lib/orb/models/alert_create_for_customer_params.rbi +86 -0
  219. data/rbi/lib/orb/models/alert_create_for_external_customer_params.rbi +88 -0
  220. data/rbi/lib/orb/models/alert_create_for_subscription_params.rbi +83 -0
  221. data/rbi/lib/orb/models/alert_disable_params.rbi +28 -0
  222. data/rbi/lib/orb/models/alert_enable_params.rbi +28 -0
  223. data/rbi/lib/orb/models/alert_list_params.rbi +95 -0
  224. data/rbi/lib/orb/models/alert_retrieve_params.rbi +20 -0
  225. data/rbi/lib/orb/models/alert_update_params.rbi +51 -0
  226. data/rbi/lib/orb/models/amount_discount.rbi +62 -0
  227. data/rbi/lib/orb/models/billable_metric.rbi +83 -0
  228. data/rbi/lib/orb/models/billing_cycle_relative_date.rbi +19 -0
  229. data/rbi/lib/orb/models/coupon.rbi +90 -0
  230. data/rbi/lib/orb/models/coupon_archive_params.rbi +20 -0
  231. data/rbi/lib/orb/models/coupon_create_params.rbi +120 -0
  232. data/rbi/lib/orb/models/coupon_fetch_params.rbi +20 -0
  233. data/rbi/lib/orb/models/coupon_list_params.rbi +59 -0
  234. data/rbi/lib/orb/models/coupons/subscription_list_params.rbi +41 -0
  235. data/rbi/lib/orb/models/credit_note.rbi +546 -0
  236. data/rbi/lib/orb/models/credit_note_create_params.rbi +84 -0
  237. data/rbi/lib/orb/models/credit_note_fetch_params.rbi +20 -0
  238. data/rbi/lib/orb/models/credit_note_list_params.rbi +74 -0
  239. data/rbi/lib/orb/models/customer.rbi +941 -0
  240. data/rbi/lib/orb/models/customer_create_params.rbi +923 -0
  241. data/rbi/lib/orb/models/customer_delete_params.rbi +20 -0
  242. data/rbi/lib/orb/models/customer_fetch_by_external_id_params.rbi +20 -0
  243. data/rbi/lib/orb/models/customer_fetch_params.rbi +20 -0
  244. data/rbi/lib/orb/models/customer_list_params.rbi +74 -0
  245. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +20 -0
  246. data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rbi +20 -0
  247. data/rbi/lib/orb/models/customer_update_by_external_id_params.rbi +945 -0
  248. data/rbi/lib/orb/models/customer_update_params.rbi +919 -0
  249. data/rbi/lib/orb/models/customers/balance_transaction_create_params.rbi +64 -0
  250. data/rbi/lib/orb/models/customers/balance_transaction_create_response.rbi +199 -0
  251. data/rbi/lib/orb/models/customers/balance_transaction_list_params.rbi +76 -0
  252. data/rbi/lib/orb/models/customers/balance_transaction_list_response.rbi +191 -0
  253. data/rbi/lib/orb/models/customers/cost_list_by_external_id_params.rbi +86 -0
  254. data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +214 -0
  255. data/rbi/lib/orb/models/customers/cost_list_params.rbi +84 -0
  256. data/rbi/lib/orb/models/customers/cost_list_response.rbi +212 -0
  257. data/rbi/lib/orb/models/customers/credit_list_by_external_id_params.rbi +64 -0
  258. data/rbi/lib/orb/models/customers/credit_list_by_external_id_response.rbi +87 -0
  259. data/rbi/lib/orb/models/customers/credit_list_params.rbi +64 -0
  260. data/rbi/lib/orb/models/customers/credit_list_response.rbi +86 -0
  261. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +270 -0
  262. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +1670 -0
  263. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_params.rbi +238 -0
  264. data/rbi/lib/orb/models/customers/credits/ledger_create_entry_response.rbi +1626 -0
  265. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +181 -0
  266. data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +1654 -0
  267. data/rbi/lib/orb/models/customers/credits/ledger_list_params.rbi +144 -0
  268. data/rbi/lib/orb/models/customers/credits/ledger_list_response.rbi +1588 -0
  269. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +196 -0
  270. data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +198 -0
  271. data/rbi/lib/orb/models/customers/credits/top_up_create_params.rbi +176 -0
  272. data/rbi/lib/orb/models/customers/credits/top_up_create_response.rbi +175 -0
  273. data/rbi/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rbi +31 -0
  274. data/rbi/lib/orb/models/customers/credits/top_up_delete_params.rbi +28 -0
  275. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +49 -0
  276. data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +188 -0
  277. data/rbi/lib/orb/models/customers/credits/top_up_list_params.rbi +49 -0
  278. data/rbi/lib/orb/models/customers/credits/top_up_list_response.rbi +168 -0
  279. data/rbi/lib/orb/models/dimensional_price_group.rbi +75 -0
  280. data/rbi/lib/orb/models/dimensional_price_group_create_params.rbi +66 -0
  281. data/rbi/lib/orb/models/dimensional_price_group_list_params.rbi +39 -0
  282. data/rbi/lib/orb/models/dimensional_price_group_retrieve_params.rbi +20 -0
  283. data/rbi/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +22 -0
  284. data/rbi/lib/orb/models/dimensional_price_groups.rbi +35 -0
  285. data/rbi/lib/orb/models/discount.rbi +18 -0
  286. data/rbi/lib/orb/models/evaluate_price_group.rbi +45 -0
  287. data/rbi/lib/orb/models/event_deprecate_params.rbi +20 -0
  288. data/rbi/lib/orb/models/event_deprecate_response.rbi +19 -0
  289. data/rbi/lib/orb/models/event_ingest_params.rbi +120 -0
  290. data/rbi/lib/orb/models/event_ingest_response.rbi +79 -0
  291. data/rbi/lib/orb/models/event_search_params.rbi +53 -0
  292. data/rbi/lib/orb/models/event_search_response.rbi +100 -0
  293. data/rbi/lib/orb/models/event_update_params.rbi +71 -0
  294. data/rbi/lib/orb/models/event_update_response.rbi +19 -0
  295. data/rbi/lib/orb/models/events/backfill_close_params.rbi +22 -0
  296. data/rbi/lib/orb/models/events/backfill_close_response.rbi +127 -0
  297. data/rbi/lib/orb/models/events/backfill_create_params.rbi +97 -0
  298. data/rbi/lib/orb/models/events/backfill_create_response.rbi +128 -0
  299. data/rbi/lib/orb/models/events/backfill_fetch_params.rbi +22 -0
  300. data/rbi/lib/orb/models/events/backfill_fetch_response.rbi +127 -0
  301. data/rbi/lib/orb/models/events/backfill_list_params.rbi +41 -0
  302. data/rbi/lib/orb/models/events/backfill_list_response.rbi +127 -0
  303. data/rbi/lib/orb/models/events/backfill_revert_params.rbi +22 -0
  304. data/rbi/lib/orb/models/events/backfill_revert_response.rbi +128 -0
  305. data/rbi/lib/orb/models/events/event_volumes.rbi +47 -0
  306. data/rbi/lib/orb/models/events/volume_list_params.rbi +69 -0
  307. data/rbi/lib/orb/models/invoice.rbi +2466 -0
  308. data/rbi/lib/orb/models/invoice_create_params.rbi +230 -0
  309. data/rbi/lib/orb/models/invoice_fetch_params.rbi +20 -0
  310. data/rbi/lib/orb/models/invoice_fetch_upcoming_params.rbi +24 -0
  311. data/rbi/lib/orb/models/invoice_fetch_upcoming_response.rbi +2646 -0
  312. data/rbi/lib/orb/models/invoice_issue_params.rbi +32 -0
  313. data/rbi/lib/orb/models/invoice_level_discount.rbi +16 -0
  314. data/rbi/lib/orb/models/invoice_line_item_create_params.rbi +67 -0
  315. data/rbi/lib/orb/models/invoice_line_item_create_response.rbi +1164 -0
  316. data/rbi/lib/orb/models/invoice_list_params.rbi +187 -0
  317. data/rbi/lib/orb/models/invoice_mark_paid_params.rbi +48 -0
  318. data/rbi/lib/orb/models/invoice_pay_params.rbi +20 -0
  319. data/rbi/lib/orb/models/invoice_update_params.rbi +36 -0
  320. data/rbi/lib/orb/models/invoice_void_params.rbi +20 -0
  321. data/rbi/lib/orb/models/item.rbi +101 -0
  322. data/rbi/lib/orb/models/item_create_params.rbi +25 -0
  323. data/rbi/lib/orb/models/item_fetch_params.rbi +20 -0
  324. data/rbi/lib/orb/models/item_list_params.rbi +39 -0
  325. data/rbi/lib/orb/models/item_update_params.rbi +113 -0
  326. data/rbi/lib/orb/models/metric_create_params.rbi +62 -0
  327. data/rbi/lib/orb/models/metric_fetch_params.rbi +20 -0
  328. data/rbi/lib/orb/models/metric_list_params.rbi +74 -0
  329. data/rbi/lib/orb/models/metric_update_params.rbi +36 -0
  330. data/rbi/lib/orb/models/pagination_metadata.rbi +21 -0
  331. data/rbi/lib/orb/models/percentage_discount.rbi +63 -0
  332. data/rbi/lib/orb/models/plan.rbi +1071 -0
  333. data/rbi/lib/orb/models/plan_create_params.rbi +10069 -0
  334. data/rbi/lib/orb/models/plan_fetch_params.rbi +20 -0
  335. data/rbi/lib/orb/models/plan_list_params.rbi +100 -0
  336. data/rbi/lib/orb/models/plan_update_params.rbi +46 -0
  337. data/rbi/lib/orb/models/plans/external_plan_id_fetch_params.rbi +22 -0
  338. data/rbi/lib/orb/models/plans/external_plan_id_update_params.rbi +48 -0
  339. data/rbi/lib/orb/models/price.rbi +15341 -0
  340. data/rbi/lib/orb/models/price_create_params.rbi +885 -0
  341. data/rbi/lib/orb/models/price_evaluate_params.rbi +81 -0
  342. data/rbi/lib/orb/models/price_evaluate_response.rbi +21 -0
  343. data/rbi/lib/orb/models/price_fetch_params.rbi +20 -0
  344. data/rbi/lib/orb/models/price_list_params.rbi +39 -0
  345. data/rbi/lib/orb/models/price_update_params.rbi +36 -0
  346. data/rbi/lib/orb/models/prices/external_price_id_fetch_params.rbi +22 -0
  347. data/rbi/lib/orb/models/prices/external_price_id_update_params.rbi +38 -0
  348. data/rbi/lib/orb/models/subscription.rbi +1381 -0
  349. data/rbi/lib/orb/models/subscription_cancel_params.rbi +75 -0
  350. data/rbi/lib/orb/models/subscription_cancel_response.rbi +1374 -0
  351. data/rbi/lib/orb/models/subscription_create_params.rbi +23422 -0
  352. data/rbi/lib/orb/models/subscription_create_response.rbi +1374 -0
  353. data/rbi/lib/orb/models/subscription_fetch_costs_params.rbi +82 -0
  354. data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +210 -0
  355. data/rbi/lib/orb/models/subscription_fetch_params.rbi +20 -0
  356. data/rbi/lib/orb/models/subscription_fetch_schedule_params.rbi +74 -0
  357. data/rbi/lib/orb/models/subscription_fetch_schedule_response.rbi +81 -0
  358. data/rbi/lib/orb/models/subscription_fetch_usage_params.rbi +137 -0
  359. data/rbi/lib/orb/models/subscription_list_params.rbi +108 -0
  360. data/rbi/lib/orb/models/subscription_price_intervals_params.rbi +12991 -0
  361. data/rbi/lib/orb/models/subscription_price_intervals_response.rbi +1387 -0
  362. data/rbi/lib/orb/models/subscription_schedule_plan_change_params.rbi +23589 -0
  363. data/rbi/lib/orb/models/subscription_schedule_plan_change_response.rbi +1390 -0
  364. data/rbi/lib/orb/models/subscription_trigger_phase_params.rbi +45 -0
  365. data/rbi/lib/orb/models/subscription_trigger_phase_response.rbi +1381 -0
  366. data/rbi/lib/orb/models/subscription_unschedule_cancellation_params.rbi +20 -0
  367. data/rbi/lib/orb/models/subscription_unschedule_cancellation_response.rbi +1400 -0
  368. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +25 -0
  369. data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +1451 -0
  370. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rbi +20 -0
  371. data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +1410 -0
  372. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_params.rbi +104 -0
  373. data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_response.rbi +1400 -0
  374. data/rbi/lib/orb/models/subscription_update_params.rbi +77 -0
  375. data/rbi/lib/orb/models/subscription_update_trial_params.rbi +63 -0
  376. data/rbi/lib/orb/models/subscription_update_trial_response.rbi +1378 -0
  377. data/rbi/lib/orb/models/subscription_usage.rbi +323 -0
  378. data/rbi/lib/orb/models/subscriptions.rbi +33 -0
  379. data/rbi/lib/orb/models/top_level_ping_params.rbi +20 -0
  380. data/rbi/lib/orb/models/top_level_ping_response.rbi +18 -0
  381. data/rbi/lib/orb/models/trial_discount.rbi +73 -0
  382. data/rbi/lib/orb/models/usage_discount.rbi +62 -0
  383. data/rbi/lib/orb/page.rbi +35 -0
  384. data/rbi/lib/orb/request_options.rbi +48 -0
  385. data/rbi/lib/orb/resources/alerts.rbi +216 -0
  386. data/rbi/lib/orb/resources/coupons/subscriptions.rbi +38 -0
  387. data/rbi/lib/orb/resources/coupons.rbi +96 -0
  388. data/rbi/lib/orb/resources/credit_notes.rbi +74 -0
  389. data/rbi/lib/orb/resources/customers/balance_transactions.rbi +92 -0
  390. data/rbi/lib/orb/resources/customers/costs.rbi +304 -0
  391. data/rbi/lib/orb/resources/customers/credits/ledger.rbi +645 -0
  392. data/rbi/lib/orb/resources/customers/credits/top_ups.rbi +180 -0
  393. data/rbi/lib/orb/resources/customers/credits.rbi +88 -0
  394. data/rbi/lib/orb/resources/customers.rbi +714 -0
  395. data/rbi/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +25 -0
  396. data/rbi/lib/orb/resources/dimensional_price_groups.rbi +78 -0
  397. data/rbi/lib/orb/resources/events/backfills.rbi +161 -0
  398. data/rbi/lib/orb/resources/events/volume.rbi +57 -0
  399. data/rbi/lib/orb/resources/events.rbi +408 -0
  400. data/rbi/lib/orb/resources/invoice_line_items.rbi +44 -0
  401. data/rbi/lib/orb/resources/invoices.rbi +262 -0
  402. data/rbi/lib/orb/resources/items.rbi +65 -0
  403. data/rbi/lib/orb/resources/metrics.rbi +102 -0
  404. data/rbi/lib/orb/resources/plans/external_plan_id.rbi +67 -0
  405. data/rbi/lib/orb/resources/plans.rbi +170 -0
  406. data/rbi/lib/orb/resources/prices/external_price_id.rbi +110 -0
  407. data/rbi/lib/orb/resources/prices.rbi +371 -0
  408. data/rbi/lib/orb/resources/subscriptions.rbi +1469 -0
  409. data/rbi/lib/orb/resources/top_level.rbi +25 -0
  410. data/rbi/lib/orb/transport/base_client.rbi +205 -0
  411. data/rbi/lib/orb/transport/pooled_net_requester.rbi +64 -0
  412. data/rbi/lib/orb/type/array_of.rbi +82 -0
  413. data/rbi/lib/orb/type/base_model.rbi +197 -0
  414. data/rbi/lib/orb/type/base_page.rbi +38 -0
  415. data/rbi/lib/orb/type/boolean_model.rbi +41 -0
  416. data/rbi/lib/orb/type/converter.rbi +95 -0
  417. data/rbi/lib/orb/type/enum.rbi +58 -0
  418. data/rbi/lib/orb/type/hash_of.rbi +86 -0
  419. data/rbi/lib/orb/type/request_parameters.rbi +20 -0
  420. data/rbi/lib/orb/type/union.rbi +66 -0
  421. data/rbi/lib/orb/type/unknown.rbi +37 -0
  422. data/rbi/lib/orb/type.rbi +23 -0
  423. data/rbi/lib/orb/util.rbi +278 -0
  424. data/rbi/lib/orb/version.rbi +5 -0
  425. data/sig/orb/client.rbs +53 -0
  426. data/sig/orb/errors.rbs +201 -0
  427. data/sig/orb/models/alert.rbs +142 -0
  428. data/sig/orb/models/alert_create_for_customer_params.rbs +56 -0
  429. data/sig/orb/models/alert_create_for_external_customer_params.rbs +56 -0
  430. data/sig/orb/models/alert_create_for_subscription_params.rbs +52 -0
  431. data/sig/orb/models/alert_disable_params.rbs +20 -0
  432. data/sig/orb/models/alert_enable_params.rbs +20 -0
  433. data/sig/orb/models/alert_list_params.rbs +57 -0
  434. data/sig/orb/models/alert_retrieve_params.rbs +14 -0
  435. data/sig/orb/models/alert_update_params.rbs +31 -0
  436. data/sig/orb/models/amount_discount.rbs +40 -0
  437. data/sig/orb/models/billable_metric.rbs +50 -0
  438. data/sig/orb/models/billing_cycle_relative_date.rbs +14 -0
  439. data/sig/orb/models/coupon.rbs +51 -0
  440. data/sig/orb/models/coupon_archive_params.rbs +14 -0
  441. data/sig/orb/models/coupon_create_params.rbs +77 -0
  442. data/sig/orb/models/coupon_fetch_params.rbs +14 -0
  443. data/sig/orb/models/coupon_list_params.rbs +37 -0
  444. data/sig/orb/models/coupons/subscription_list_params.rbs +27 -0
  445. data/sig/orb/models/credit_note.rbs +345 -0
  446. data/sig/orb/models/credit_note_create_params.rbs +57 -0
  447. data/sig/orb/models/credit_note_fetch_params.rbs +14 -0
  448. data/sig/orb/models/credit_note_list_params.rbs +45 -0
  449. data/sig/orb/models/customer.rbs +628 -0
  450. data/sig/orb/models/customer_create_params.rbs +624 -0
  451. data/sig/orb/models/customer_delete_params.rbs +14 -0
  452. data/sig/orb/models/customer_fetch_by_external_id_params.rbs +14 -0
  453. data/sig/orb/models/customer_fetch_params.rbs +14 -0
  454. data/sig/orb/models/customer_list_params.rbs +45 -0
  455. data/sig/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbs +15 -0
  456. data/sig/orb/models/customer_sync_payment_methods_from_gateway_params.rbs +15 -0
  457. data/sig/orb/models/customer_update_by_external_id_params.rbs +620 -0
  458. data/sig/orb/models/customer_update_params.rbs +620 -0
  459. data/sig/orb/models/customers/balance_transaction_create_params.rbs +44 -0
  460. data/sig/orb/models/customers/balance_transaction_create_response.rbs +114 -0
  461. data/sig/orb/models/customers/balance_transaction_list_params.rbs +47 -0
  462. data/sig/orb/models/customers/balance_transaction_list_response.rbs +114 -0
  463. data/sig/orb/models/customers/cost_list_by_external_id_params.rbs +48 -0
  464. data/sig/orb/models/customers/cost_list_by_external_id_response.rbs +82 -0
  465. data/sig/orb/models/customers/cost_list_params.rbs +48 -0
  466. data/sig/orb/models/customers/cost_list_response.rbs +80 -0
  467. data/sig/orb/models/customers/credit_list_by_external_id_params.rbs +41 -0
  468. data/sig/orb/models/customers/credit_list_by_external_id_response.rbs +55 -0
  469. data/sig/orb/models/customers/credit_list_params.rbs +41 -0
  470. data/sig/orb/models/customers/credit_list_response.rbs +55 -0
  471. data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbs +120 -0
  472. data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbs +814 -0
  473. data/sig/orb/models/customers/credits/ledger_create_entry_params.rbs +120 -0
  474. data/sig/orb/models/customers/credits/ledger_create_entry_response.rbs +814 -0
  475. data/sig/orb/models/customers/credits/ledger_list_by_external_id_params.rbs +99 -0
  476. data/sig/orb/models/customers/credits/ledger_list_by_external_id_response.rbs +814 -0
  477. data/sig/orb/models/customers/credits/ledger_list_params.rbs +99 -0
  478. data/sig/orb/models/customers/credits/ledger_list_response.rbs +814 -0
  479. data/sig/orb/models/customers/credits/top_up_create_by_external_id_params.rbs +95 -0
  480. data/sig/orb/models/customers/credits/top_up_create_by_external_id_response.rbs +90 -0
  481. data/sig/orb/models/customers/credits/top_up_create_params.rbs +95 -0
  482. data/sig/orb/models/customers/credits/top_up_create_response.rbs +90 -0
  483. data/sig/orb/models/customers/credits/top_up_delete_by_external_id_params.rbs +24 -0
  484. data/sig/orb/models/customers/credits/top_up_delete_params.rbs +24 -0
  485. data/sig/orb/models/customers/credits/top_up_list_by_external_id_params.rbs +29 -0
  486. data/sig/orb/models/customers/credits/top_up_list_by_external_id_response.rbs +90 -0
  487. data/sig/orb/models/customers/credits/top_up_list_params.rbs +29 -0
  488. data/sig/orb/models/customers/credits/top_up_list_response.rbs +90 -0
  489. data/sig/orb/models/dimensional_price_group.rbs +38 -0
  490. data/sig/orb/models/dimensional_price_group_create_params.rbs +39 -0
  491. data/sig/orb/models/dimensional_price_group_list_params.rbs +25 -0
  492. data/sig/orb/models/dimensional_price_group_retrieve_params.rbs +15 -0
  493. data/sig/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbs +17 -0
  494. data/sig/orb/models/dimensional_price_groups.rbs +22 -0
  495. data/sig/orb/models/discount.rbs +15 -0
  496. data/sig/orb/models/evaluate_price_group.rbs +34 -0
  497. data/sig/orb/models/event_deprecate_params.rbs +14 -0
  498. data/sig/orb/models/event_deprecate_response.rbs +13 -0
  499. data/sig/orb/models/event_ingest_params.rbs +68 -0
  500. data/sig/orb/models/event_ingest_response.rbs +53 -0
  501. data/sig/orb/models/event_search_params.rbs +31 -0
  502. data/sig/orb/models/event_search_response.rbs +55 -0
  503. data/sig/orb/models/event_update_params.rbs +39 -0
  504. data/sig/orb/models/event_update_response.rbs +13 -0
  505. data/sig/orb/models/events/backfill_close_params.rbs +16 -0
  506. data/sig/orb/models/events/backfill_close_response.rbs +73 -0
  507. data/sig/orb/models/events/backfill_create_params.rbs +51 -0
  508. data/sig/orb/models/events/backfill_create_response.rbs +73 -0
  509. data/sig/orb/models/events/backfill_fetch_params.rbs +16 -0
  510. data/sig/orb/models/events/backfill_fetch_response.rbs +73 -0
  511. data/sig/orb/models/events/backfill_list_params.rbs +27 -0
  512. data/sig/orb/models/events/backfill_list_response.rbs +73 -0
  513. data/sig/orb/models/events/backfill_revert_params.rbs +16 -0
  514. data/sig/orb/models/events/backfill_revert_response.rbs +73 -0
  515. data/sig/orb/models/events/event_volumes.rbs +39 -0
  516. data/sig/orb/models/events/volume_list_params.rbs +41 -0
  517. data/sig/orb/models/invoice.rbs +1430 -0
  518. data/sig/orb/models/invoice_create_params.rbs +120 -0
  519. data/sig/orb/models/invoice_fetch_params.rbs +14 -0
  520. data/sig/orb/models/invoice_fetch_upcoming_params.rbs +20 -0
  521. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +1430 -0
  522. data/sig/orb/models/invoice_issue_params.rbs +21 -0
  523. data/sig/orb/models/invoice_level_discount.rbs +14 -0
  524. data/sig/orb/models/invoice_line_item_create_params.rbs +43 -0
  525. data/sig/orb/models/invoice_line_item_create_response.rbs +546 -0
  526. data/sig/orb/models/invoice_list_params.rbs +122 -0
  527. data/sig/orb/models/invoice_mark_paid_params.rbs +27 -0
  528. data/sig/orb/models/invoice_pay_params.rbs +14 -0
  529. data/sig/orb/models/invoice_update_params.rbs +20 -0
  530. data/sig/orb/models/invoice_void_params.rbs +14 -0
  531. data/sig/orb/models/item.rbs +72 -0
  532. data/sig/orb/models/item_create_params.rbs +19 -0
  533. data/sig/orb/models/item_fetch_params.rbs +14 -0
  534. data/sig/orb/models/item_list_params.rbs +25 -0
  535. data/sig/orb/models/item_update_params.rbs +69 -0
  536. data/sig/orb/models/metric_create_params.rbs +39 -0
  537. data/sig/orb/models/metric_fetch_params.rbs +14 -0
  538. data/sig/orb/models/metric_list_params.rbs +45 -0
  539. data/sig/orb/models/metric_update_params.rbs +20 -0
  540. data/sig/orb/models/pagination_metadata.rbs +15 -0
  541. data/sig/orb/models/percentage_discount.rbs +40 -0
  542. data/sig/orb/models/plan.rbs +529 -0
  543. data/sig/orb/models/plan_create_params.rbs +3991 -0
  544. data/sig/orb/models/plan_fetch_params.rbs +14 -0
  545. data/sig/orb/models/plan_list_params.rbs +65 -0
  546. data/sig/orb/models/plan_update_params.rbs +24 -0
  547. data/sig/orb/models/plans/external_plan_id_fetch_params.rbs +16 -0
  548. data/sig/orb/models/plans/external_plan_id_update_params.rbs +26 -0
  549. data/sig/orb/models/price.rbs +8108 -0
  550. data/sig/orb/models/price_create_params.rbs +520 -0
  551. data/sig/orb/models/price_evaluate_params.rbs +45 -0
  552. data/sig/orb/models/price_evaluate_response.rbs +14 -0
  553. data/sig/orb/models/price_fetch_params.rbs +14 -0
  554. data/sig/orb/models/price_list_params.rbs +25 -0
  555. data/sig/orb/models/price_update_params.rbs +20 -0
  556. data/sig/orb/models/prices/external_price_id_fetch_params.rbs +16 -0
  557. data/sig/orb/models/prices/external_price_id_update_params.rbs +22 -0
  558. data/sig/orb/models/subscription.rbs +687 -0
  559. data/sig/orb/models/subscription_cancel_params.rbs +44 -0
  560. data/sig/orb/models/subscription_cancel_response.rbs +687 -0
  561. data/sig/orb/models/subscription_create_params.rbs +9141 -0
  562. data/sig/orb/models/subscription_create_response.rbs +687 -0
  563. data/sig/orb/models/subscription_fetch_costs_params.rbs +46 -0
  564. data/sig/orb/models/subscription_fetch_costs_response.rbs +78 -0
  565. data/sig/orb/models/subscription_fetch_params.rbs +14 -0
  566. data/sig/orb/models/subscription_fetch_schedule_params.rbs +45 -0
  567. data/sig/orb/models/subscription_fetch_schedule_response.rbs +48 -0
  568. data/sig/orb/models/subscription_fetch_usage_params.rbs +80 -0
  569. data/sig/orb/models/subscription_list_params.rbs +69 -0
  570. data/sig/orb/models/subscription_price_intervals_params.rbs +5117 -0
  571. data/sig/orb/models/subscription_price_intervals_response.rbs +687 -0
  572. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +9133 -0
  573. data/sig/orb/models/subscription_schedule_plan_change_response.rbs +687 -0
  574. data/sig/orb/models/subscription_trigger_phase_params.rbs +24 -0
  575. data/sig/orb/models/subscription_trigger_phase_response.rbs +687 -0
  576. data/sig/orb/models/subscription_unschedule_cancellation_params.rbs +15 -0
  577. data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +687 -0
  578. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbs +20 -0
  579. data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +687 -0
  580. data/sig/orb/models/subscription_unschedule_pending_plan_changes_params.rbs +15 -0
  581. data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +687 -0
  582. data/sig/orb/models/subscription_update_fixed_fee_quantity_params.rbs +55 -0
  583. data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +687 -0
  584. data/sig/orb/models/subscription_update_params.rbs +39 -0
  585. data/sig/orb/models/subscription_update_trial_params.rbs +39 -0
  586. data/sig/orb/models/subscription_update_trial_response.rbs +687 -0
  587. data/sig/orb/models/subscription_usage.rbs +196 -0
  588. data/sig/orb/models/subscriptions.rbs +22 -0
  589. data/sig/orb/models/top_level_ping_params.rbs +14 -0
  590. data/sig/orb/models/top_level_ping_response.rbs +13 -0
  591. data/sig/orb/models/trial_discount.rbs +44 -0
  592. data/sig/orb/models/usage_discount.rbs +40 -0
  593. data/sig/orb/page.rbs +22 -0
  594. data/sig/orb/request_options.rbs +32 -0
  595. data/sig/orb/resources/alerts.rbs +67 -0
  596. data/sig/orb/resources/coupons/subscriptions.rbs +16 -0
  597. data/sig/orb/resources/coupons.rbs +35 -0
  598. data/sig/orb/resources/credit_notes.rbs +29 -0
  599. data/sig/orb/resources/customers/balance_transactions.rbs +28 -0
  600. data/sig/orb/resources/customers/costs.rbs +27 -0
  601. data/sig/orb/resources/customers/credits/ledger.rbs +75 -0
  602. data/sig/orb/resources/customers/credits/top_ups.rbs +63 -0
  603. data/sig/orb/resources/customers/credits.rbs +31 -0
  604. data/sig/orb/resources/customers.rbs +114 -0
  605. data/sig/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbs +14 -0
  606. data/sig/orb/resources/dimensional_price_groups.rbs +29 -0
  607. data/sig/orb/resources/events/backfills.rbs +41 -0
  608. data/sig/orb/resources/events/volume.rbs +17 -0
  609. data/sig/orb/resources/events.rbs +40 -0
  610. data/sig/orb/resources/invoice_line_items.rbs +17 -0
  611. data/sig/orb/resources/invoices.rbs +84 -0
  612. data/sig/orb/resources/items.rbs +30 -0
  613. data/sig/orb/resources/metrics.rbs +37 -0
  614. data/sig/orb/resources/plans/external_plan_id.rbs +21 -0
  615. data/sig/orb/resources/plans.rbs +44 -0
  616. data/sig/orb/resources/prices/external_price_id.rbs +20 -0
  617. data/sig/orb/resources/prices.rbs +83 -0
  618. data/sig/orb/resources/subscriptions.rbs +194 -0
  619. data/sig/orb/resources/top_level.rbs +11 -0
  620. data/sig/orb/transport/base_client.rbs +110 -0
  621. data/sig/orb/transport/pooled_net_requester.rbs +39 -0
  622. data/sig/orb/type/array_of.rbs +36 -0
  623. data/sig/orb/type/base_model.rbs +77 -0
  624. data/sig/orb/type/base_page.rbs +22 -0
  625. data/sig/orb/type/boolean_model.rbs +18 -0
  626. data/sig/orb/type/converter.rbs +36 -0
  627. data/sig/orb/type/enum.rbs +22 -0
  628. data/sig/orb/type/hash_of.rbs +36 -0
  629. data/sig/orb/type/request_parameters.rbs +13 -0
  630. data/sig/orb/type/union.rbs +37 -0
  631. data/sig/orb/type/unknown.rbs +15 -0
  632. data/sig/orb/type.rbs +22 -0
  633. data/sig/orb/util.rbs +132 -0
  634. data/sig/orb/version.rbs +3 -0
  635. metadata +692 -0
@@ -0,0 +1,2466 @@
1
+ # typed: strong
2
+
3
+ module Orb
4
+ module Models
5
+ class Invoice < Orb::BaseModel
6
+ sig { returns(String) }
7
+ attr_accessor :id
8
+
9
+ # This is the final amount required to be charged to the customer and reflects the
10
+ # application of the customer balance to the `total` of the invoice.
11
+ sig { returns(String) }
12
+ attr_accessor :amount_due
13
+
14
+ sig { returns(Orb::Models::Invoice::AutoCollection) }
15
+ attr_reader :auto_collection
16
+
17
+ sig { params(auto_collection: T.any(Orb::Models::Invoice::AutoCollection, Orb::Util::AnyHash)).void }
18
+ attr_writer :auto_collection
19
+
20
+ sig { returns(T.nilable(Orb::Models::Invoice::BillingAddress)) }
21
+ attr_reader :billing_address
22
+
23
+ sig { params(billing_address: T.nilable(T.any(Orb::Models::Invoice::BillingAddress, Orb::Util::AnyHash))).void }
24
+ attr_writer :billing_address
25
+
26
+ # The creation time of the resource in Orb.
27
+ sig { returns(Time) }
28
+ attr_accessor :created_at
29
+
30
+ # A list of credit notes associated with the invoice
31
+ sig { returns(T::Array[Orb::Models::Invoice::CreditNote]) }
32
+ attr_accessor :credit_notes
33
+
34
+ # An ISO 4217 currency string or `credits`
35
+ sig { returns(String) }
36
+ attr_accessor :currency
37
+
38
+ sig { returns(Orb::Models::Invoice::Customer) }
39
+ attr_reader :customer
40
+
41
+ sig { params(customer: T.any(Orb::Models::Invoice::Customer, Orb::Util::AnyHash)).void }
42
+ attr_writer :customer
43
+
44
+ sig { returns(T::Array[Orb::Models::Invoice::CustomerBalanceTransaction]) }
45
+ attr_accessor :customer_balance_transactions
46
+
47
+ # Tax IDs are commonly required to be displayed on customer invoices, which are
48
+ # added to the headers of invoices.
49
+ #
50
+ # ### Supported Tax ID Countries and Types
51
+ #
52
+ # | Country | Type | Description |
53
+ # | -------------------- | ------------ | ------------------------------------------------------------------------------------------------------- |
54
+ # | Andorra | `ad_nrt` | Andorran NRT Number |
55
+ # | Argentina | `ar_cuit` | Argentinian Tax ID Number |
56
+ # | Australia | `au_abn` | Australian Business Number (AU ABN) |
57
+ # | Australia | `au_arn` | Australian Taxation Office Reference Number |
58
+ # | Austria | `eu_vat` | European VAT Number |
59
+ # | Bahrain | `bh_vat` | Bahraini VAT Number |
60
+ # | Belgium | `eu_vat` | European VAT Number |
61
+ # | Bolivia | `bo_tin` | Bolivian Tax ID |
62
+ # | Brazil | `br_cnpj` | Brazilian CNPJ Number |
63
+ # | Brazil | `br_cpf` | Brazilian CPF Number |
64
+ # | Bulgaria | `bg_uic` | Bulgaria Unified Identification Code |
65
+ # | Bulgaria | `eu_vat` | European VAT Number |
66
+ # | Canada | `ca_bn` | Canadian BN |
67
+ # | Canada | `ca_gst_hst` | Canadian GST/HST Number |
68
+ # | Canada | `ca_pst_bc` | Canadian PST Number (British Columbia) |
69
+ # | Canada | `ca_pst_mb` | Canadian PST Number (Manitoba) |
70
+ # | Canada | `ca_pst_sk` | Canadian PST Number (Saskatchewan) |
71
+ # | Canada | `ca_qst` | Canadian QST Number (Québec) |
72
+ # | Chile | `cl_tin` | Chilean TIN |
73
+ # | China | `cn_tin` | Chinese Tax ID |
74
+ # | Colombia | `co_nit` | Colombian NIT Number |
75
+ # | Costa Rica | `cr_tin` | Costa Rican Tax ID |
76
+ # | Croatia | `eu_vat` | European VAT Number |
77
+ # | Cyprus | `eu_vat` | European VAT Number |
78
+ # | Czech Republic | `eu_vat` | European VAT Number |
79
+ # | Denmark | `eu_vat` | European VAT Number |
80
+ # | Dominican Republic | `do_rcn` | Dominican RCN Number |
81
+ # | Ecuador | `ec_ruc` | Ecuadorian RUC Number |
82
+ # | Egypt | `eg_tin` | Egyptian Tax Identification Number |
83
+ # | El Salvador | `sv_nit` | El Salvadorian NIT Number |
84
+ # | Estonia | `eu_vat` | European VAT Number |
85
+ # | EU | `eu_oss_vat` | European One Stop Shop VAT Number for non-Union scheme |
86
+ # | Finland | `eu_vat` | European VAT Number |
87
+ # | France | `eu_vat` | European VAT Number |
88
+ # | Georgia | `ge_vat` | Georgian VAT |
89
+ # | Germany | `eu_vat` | European VAT Number |
90
+ # | Greece | `eu_vat` | European VAT Number |
91
+ # | Hong Kong | `hk_br` | Hong Kong BR Number |
92
+ # | Hungary | `eu_vat` | European VAT Number |
93
+ # | Hungary | `hu_tin` | Hungary Tax Number (adószám) |
94
+ # | Iceland | `is_vat` | Icelandic VAT |
95
+ # | India | `in_gst` | Indian GST Number |
96
+ # | Indonesia | `id_npwp` | Indonesian NPWP Number |
97
+ # | Ireland | `eu_vat` | European VAT Number |
98
+ # | Israel | `il_vat` | Israel VAT |
99
+ # | Italy | `eu_vat` | European VAT Number |
100
+ # | Japan | `jp_cn` | Japanese Corporate Number (_Hōjin Bangō_) |
101
+ # | Japan | `jp_rn` | Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_) |
102
+ # | Japan | `jp_trn` | Japanese Tax Registration Number (_Tōroku Bangō_) |
103
+ # | Kazakhstan | `kz_bin` | Kazakhstani Business Identification Number |
104
+ # | Kenya | `ke_pin` | Kenya Revenue Authority Personal Identification Number |
105
+ # | Latvia | `eu_vat` | European VAT Number |
106
+ # | Liechtenstein | `li_uid` | Liechtensteinian UID Number |
107
+ # | Lithuania | `eu_vat` | European VAT Number |
108
+ # | Luxembourg | `eu_vat` | European VAT Number |
109
+ # | Malaysia | `my_frp` | Malaysian FRP Number |
110
+ # | Malaysia | `my_itn` | Malaysian ITN |
111
+ # | Malaysia | `my_sst` | Malaysian SST Number |
112
+ # | Malta | `eu_vat ` | European VAT Number |
113
+ # | Mexico | `mx_rfc` | Mexican RFC Number |
114
+ # | Netherlands | `eu_vat` | European VAT Number |
115
+ # | New Zealand | `nz_gst` | New Zealand GST Number |
116
+ # | Nigeria | `ng_tin` | Nigerian Tax Identification Number |
117
+ # | Norway | `no_vat` | Norwegian VAT Number |
118
+ # | Norway | `no_voec` | Norwegian VAT on e-commerce Number |
119
+ # | Oman | `om_vat` | Omani VAT Number |
120
+ # | Peru | `pe_ruc` | Peruvian RUC Number |
121
+ # | Philippines | `ph_tin ` | Philippines Tax Identification Number |
122
+ # | Poland | `eu_vat` | European VAT Number |
123
+ # | Portugal | `eu_vat` | European VAT Number |
124
+ # | Romania | `eu_vat` | European VAT Number |
125
+ # | Romania | `ro_tin` | Romanian Tax ID Number |
126
+ # | Russia | `ru_inn` | Russian INN |
127
+ # | Russia | `ru_kpp` | Russian KPP |
128
+ # | Saudi Arabia | `sa_vat` | Saudi Arabia VAT |
129
+ # | Serbia | `rs_pib` | Serbian PIB Number |
130
+ # | Singapore | `sg_gst` | Singaporean GST |
131
+ # | Singapore | `sg_uen` | Singaporean UEN |
132
+ # | Slovakia | `eu_vat` | European VAT Number |
133
+ # | Slovenia | `eu_vat` | European VAT Number |
134
+ # | Slovenia | `si_tin` | Slovenia Tax Number (davčna številka) |
135
+ # | South Africa | `za_vat` | South African VAT Number |
136
+ # | South Korea | `kr_brn` | Korean BRN |
137
+ # | Spain | `es_cif` | Spanish NIF Number (previously Spanish CIF Number) |
138
+ # | Spain | `eu_vat` | European VAT Number |
139
+ # | Sweden | `eu_vat` | European VAT Number |
140
+ # | Switzerland | `ch_vat` | Switzerland VAT Number |
141
+ # | Taiwan | `tw_vat` | Taiwanese VAT |
142
+ # | Thailand | `th_vat` | Thai VAT |
143
+ # | Turkey | `tr_tin` | Turkish Tax Identification Number |
144
+ # | Ukraine | `ua_vat` | Ukrainian VAT |
145
+ # | United Arab Emirates | `ae_trn` | United Arab Emirates TRN |
146
+ # | United Kingdom | `eu_vat` | Northern Ireland VAT Number |
147
+ # | United Kingdom | `gb_vat` | United Kingdom VAT Number |
148
+ # | United States | `us_ein` | United States EIN |
149
+ # | Uruguay | `uy_ruc` | Uruguayan RUC Number |
150
+ # | Venezuela | `ve_rif` | Venezuelan RIF Number |
151
+ # | Vietnam | `vn_tin` | Vietnamese Tax ID Number |
152
+ sig { returns(T.nilable(Orb::Models::Invoice::CustomerTaxID)) }
153
+ attr_reader :customer_tax_id
154
+
155
+ sig { params(customer_tax_id: T.nilable(T.any(Orb::Models::Invoice::CustomerTaxID, Orb::Util::AnyHash))).void }
156
+ attr_writer :customer_tax_id
157
+
158
+ # This field is deprecated in favor of `discounts`. If a `discounts` list is
159
+ # provided, the first discount in the list will be returned. If the list is empty,
160
+ # `None` will be returned.
161
+ sig { returns(T.anything) }
162
+ attr_accessor :discount
163
+
164
+ sig do
165
+ returns(
166
+ T::Array[T.any(Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount)]
167
+ )
168
+ end
169
+ attr_accessor :discounts
170
+
171
+ # When the invoice payment is due. The due date is null if the invoice is not yet
172
+ # finalized.
173
+ sig { returns(T.nilable(Time)) }
174
+ attr_accessor :due_date
175
+
176
+ # If the invoice has a status of `draft`, this will be the time that the invoice
177
+ # will be eligible to be issued, otherwise it will be `null`. If `auto-issue` is
178
+ # true, the invoice will automatically begin issuing at this time.
179
+ sig { returns(T.nilable(Time)) }
180
+ attr_accessor :eligible_to_issue_at
181
+
182
+ # A URL for the customer-facing invoice portal. This URL expires 30 days after the
183
+ # invoice's due date, or 60 days after being re-generated through the UI.
184
+ sig { returns(T.nilable(String)) }
185
+ attr_accessor :hosted_invoice_url
186
+
187
+ # The scheduled date of the invoice
188
+ sig { returns(Time) }
189
+ attr_accessor :invoice_date
190
+
191
+ # Automatically generated invoice number to help track and reconcile invoices.
192
+ # Invoice numbers have a prefix such as `RFOBWG`. These can be sequential per
193
+ # account or customer.
194
+ sig { returns(String) }
195
+ attr_accessor :invoice_number
196
+
197
+ # The link to download the PDF representation of the `Invoice`.
198
+ sig { returns(T.nilable(String)) }
199
+ attr_accessor :invoice_pdf
200
+
201
+ sig { returns(Orb::Models::Invoice::InvoiceSource::TaggedSymbol) }
202
+ attr_accessor :invoice_source
203
+
204
+ # If the invoice failed to issue, this will be the last time it failed to issue
205
+ # (even if it is now in a different state.)
206
+ sig { returns(T.nilable(Time)) }
207
+ attr_accessor :issue_failed_at
208
+
209
+ # If the invoice has been issued, this will be the time it transitioned to
210
+ # `issued` (even if it is now in a different state.)
211
+ sig { returns(T.nilable(Time)) }
212
+ attr_accessor :issued_at
213
+
214
+ # The breakdown of prices in this invoice.
215
+ sig { returns(T::Array[Orb::Models::Invoice::LineItem]) }
216
+ attr_accessor :line_items
217
+
218
+ sig { returns(T.nilable(Orb::Models::Invoice::Maximum)) }
219
+ attr_reader :maximum
220
+
221
+ sig { params(maximum: T.nilable(T.any(Orb::Models::Invoice::Maximum, Orb::Util::AnyHash))).void }
222
+ attr_writer :maximum
223
+
224
+ sig { returns(T.nilable(String)) }
225
+ attr_accessor :maximum_amount
226
+
227
+ # Free-form text which is available on the invoice PDF and the Orb invoice portal.
228
+ sig { returns(T.nilable(String)) }
229
+ attr_accessor :memo
230
+
231
+ # User specified key-value pairs for the resource. If not present, this defaults
232
+ # to an empty dictionary. Individual keys can be removed by setting the value to
233
+ # `null`, and the entire metadata mapping can be cleared by setting `metadata` to
234
+ # `null`.
235
+ sig { returns(T::Hash[Symbol, String]) }
236
+ attr_accessor :metadata
237
+
238
+ sig { returns(T.nilable(Orb::Models::Invoice::Minimum)) }
239
+ attr_reader :minimum
240
+
241
+ sig { params(minimum: T.nilable(T.any(Orb::Models::Invoice::Minimum, Orb::Util::AnyHash))).void }
242
+ attr_writer :minimum
243
+
244
+ sig { returns(T.nilable(String)) }
245
+ attr_accessor :minimum_amount
246
+
247
+ # If the invoice has a status of `paid`, this gives a timestamp when the invoice
248
+ # was paid.
249
+ sig { returns(T.nilable(Time)) }
250
+ attr_accessor :paid_at
251
+
252
+ # A list of payment attempts associated with the invoice
253
+ sig { returns(T::Array[Orb::Models::Invoice::PaymentAttempt]) }
254
+ attr_accessor :payment_attempts
255
+
256
+ # If payment was attempted on this invoice but failed, this will be the time of
257
+ # the most recent attempt.
258
+ sig { returns(T.nilable(Time)) }
259
+ attr_accessor :payment_failed_at
260
+
261
+ # If payment was attempted on this invoice, this will be the start time of the
262
+ # most recent attempt. This field is especially useful for delayed-notification
263
+ # payment mechanisms (like bank transfers), where payment can take 3 days or more.
264
+ sig { returns(T.nilable(Time)) }
265
+ attr_accessor :payment_started_at
266
+
267
+ # If the invoice is in draft, this timestamp will reflect when the invoice is
268
+ # scheduled to be issued.
269
+ sig { returns(T.nilable(Time)) }
270
+ attr_accessor :scheduled_issue_at
271
+
272
+ sig { returns(T.nilable(Orb::Models::Invoice::ShippingAddress)) }
273
+ attr_reader :shipping_address
274
+
275
+ sig { params(shipping_address: T.nilable(T.any(Orb::Models::Invoice::ShippingAddress, Orb::Util::AnyHash))).void }
276
+ attr_writer :shipping_address
277
+
278
+ sig { returns(Orb::Models::Invoice::Status::TaggedSymbol) }
279
+ attr_accessor :status
280
+
281
+ sig { returns(T.nilable(Orb::Models::Invoice::Subscription)) }
282
+ attr_reader :subscription
283
+
284
+ sig { params(subscription: T.nilable(T.any(Orb::Models::Invoice::Subscription, Orb::Util::AnyHash))).void }
285
+ attr_writer :subscription
286
+
287
+ # The total before any discounts and minimums are applied.
288
+ sig { returns(String) }
289
+ attr_accessor :subtotal
290
+
291
+ # If the invoice failed to sync, this will be the last time an external invoicing
292
+ # provider sync was attempted. This field will always be `null` for invoices using
293
+ # Orb Invoicing.
294
+ sig { returns(T.nilable(Time)) }
295
+ attr_accessor :sync_failed_at
296
+
297
+ # The total after any minimums and discounts have been applied.
298
+ sig { returns(String) }
299
+ attr_accessor :total
300
+
301
+ # If the invoice has a status of `void`, this gives a timestamp when the invoice
302
+ # was voided.
303
+ sig { returns(T.nilable(Time)) }
304
+ attr_accessor :voided_at
305
+
306
+ # This is true if the invoice will be automatically issued in the future, and
307
+ # false otherwise.
308
+ sig { returns(T::Boolean) }
309
+ attr_accessor :will_auto_issue
310
+
311
+ # An [`Invoice`](/core-concepts#invoice) is a fundamental billing entity,
312
+ # representing the request for payment for a single subscription. This includes a
313
+ # set of line items, which correspond to prices in the subscription's plan and can
314
+ # represent fixed recurring fees or usage-based fees. They are generated at the
315
+ # end of a billing period, or as the result of an action, such as a cancellation.
316
+ sig do
317
+ params(
318
+ id: String,
319
+ amount_due: String,
320
+ auto_collection: T.any(Orb::Models::Invoice::AutoCollection, Orb::Util::AnyHash),
321
+ billing_address: T.nilable(T.any(Orb::Models::Invoice::BillingAddress, Orb::Util::AnyHash)),
322
+ created_at: Time,
323
+ credit_notes: T::Array[T.any(Orb::Models::Invoice::CreditNote, Orb::Util::AnyHash)],
324
+ currency: String,
325
+ customer: T.any(Orb::Models::Invoice::Customer, Orb::Util::AnyHash),
326
+ customer_balance_transactions: T::Array[T.any(Orb::Models::Invoice::CustomerBalanceTransaction, Orb::Util::AnyHash)],
327
+ customer_tax_id: T.nilable(T.any(Orb::Models::Invoice::CustomerTaxID, Orb::Util::AnyHash)),
328
+ discount: T.anything,
329
+ discounts: T::Array[
330
+ T.any(
331
+ Orb::Models::PercentageDiscount,
332
+ Orb::Util::AnyHash,
333
+ Orb::Models::AmountDiscount,
334
+ Orb::Models::TrialDiscount
335
+ )
336
+ ],
337
+ due_date: T.nilable(Time),
338
+ eligible_to_issue_at: T.nilable(Time),
339
+ hosted_invoice_url: T.nilable(String),
340
+ invoice_date: Time,
341
+ invoice_number: String,
342
+ invoice_pdf: T.nilable(String),
343
+ invoice_source: Orb::Models::Invoice::InvoiceSource::OrSymbol,
344
+ issue_failed_at: T.nilable(Time),
345
+ issued_at: T.nilable(Time),
346
+ line_items: T::Array[T.any(Orb::Models::Invoice::LineItem, Orb::Util::AnyHash)],
347
+ maximum: T.nilable(T.any(Orb::Models::Invoice::Maximum, Orb::Util::AnyHash)),
348
+ maximum_amount: T.nilable(String),
349
+ memo: T.nilable(String),
350
+ metadata: T::Hash[Symbol, String],
351
+ minimum: T.nilable(T.any(Orb::Models::Invoice::Minimum, Orb::Util::AnyHash)),
352
+ minimum_amount: T.nilable(String),
353
+ paid_at: T.nilable(Time),
354
+ payment_attempts: T::Array[T.any(Orb::Models::Invoice::PaymentAttempt, Orb::Util::AnyHash)],
355
+ payment_failed_at: T.nilable(Time),
356
+ payment_started_at: T.nilable(Time),
357
+ scheduled_issue_at: T.nilable(Time),
358
+ shipping_address: T.nilable(T.any(Orb::Models::Invoice::ShippingAddress, Orb::Util::AnyHash)),
359
+ status: Orb::Models::Invoice::Status::OrSymbol,
360
+ subscription: T.nilable(T.any(Orb::Models::Invoice::Subscription, Orb::Util::AnyHash)),
361
+ subtotal: String,
362
+ sync_failed_at: T.nilable(Time),
363
+ total: String,
364
+ voided_at: T.nilable(Time),
365
+ will_auto_issue: T::Boolean
366
+ )
367
+ .returns(T.attached_class)
368
+ end
369
+ def self.new(
370
+ id:,
371
+ amount_due:,
372
+ auto_collection:,
373
+ billing_address:,
374
+ created_at:,
375
+ credit_notes:,
376
+ currency:,
377
+ customer:,
378
+ customer_balance_transactions:,
379
+ customer_tax_id:,
380
+ discount:,
381
+ discounts:,
382
+ due_date:,
383
+ eligible_to_issue_at:,
384
+ hosted_invoice_url:,
385
+ invoice_date:,
386
+ invoice_number:,
387
+ invoice_pdf:,
388
+ invoice_source:,
389
+ issue_failed_at:,
390
+ issued_at:,
391
+ line_items:,
392
+ maximum:,
393
+ maximum_amount:,
394
+ memo:,
395
+ metadata:,
396
+ minimum:,
397
+ minimum_amount:,
398
+ paid_at:,
399
+ payment_attempts:,
400
+ payment_failed_at:,
401
+ payment_started_at:,
402
+ scheduled_issue_at:,
403
+ shipping_address:,
404
+ status:,
405
+ subscription:,
406
+ subtotal:,
407
+ sync_failed_at:,
408
+ total:,
409
+ voided_at:,
410
+ will_auto_issue:
411
+ )
412
+ end
413
+
414
+ sig do
415
+ override
416
+ .returns(
417
+ {
418
+ id: String,
419
+ amount_due: String,
420
+ auto_collection: Orb::Models::Invoice::AutoCollection,
421
+ billing_address: T.nilable(Orb::Models::Invoice::BillingAddress),
422
+ created_at: Time,
423
+ credit_notes: T::Array[Orb::Models::Invoice::CreditNote],
424
+ currency: String,
425
+ customer: Orb::Models::Invoice::Customer,
426
+ customer_balance_transactions: T::Array[Orb::Models::Invoice::CustomerBalanceTransaction],
427
+ customer_tax_id: T.nilable(Orb::Models::Invoice::CustomerTaxID),
428
+ discount: T.anything,
429
+ discounts: T::Array[T.any(Orb::Models::PercentageDiscount, Orb::Models::AmountDiscount, Orb::Models::TrialDiscount)],
430
+ due_date: T.nilable(Time),
431
+ eligible_to_issue_at: T.nilable(Time),
432
+ hosted_invoice_url: T.nilable(String),
433
+ invoice_date: Time,
434
+ invoice_number: String,
435
+ invoice_pdf: T.nilable(String),
436
+ invoice_source: Orb::Models::Invoice::InvoiceSource::TaggedSymbol,
437
+ issue_failed_at: T.nilable(Time),
438
+ issued_at: T.nilable(Time),
439
+ line_items: T::Array[Orb::Models::Invoice::LineItem],
440
+ maximum: T.nilable(Orb::Models::Invoice::Maximum),
441
+ maximum_amount: T.nilable(String),
442
+ memo: T.nilable(String),
443
+ metadata: T::Hash[Symbol, String],
444
+ minimum: T.nilable(Orb::Models::Invoice::Minimum),
445
+ minimum_amount: T.nilable(String),
446
+ paid_at: T.nilable(Time),
447
+ payment_attempts: T::Array[Orb::Models::Invoice::PaymentAttempt],
448
+ payment_failed_at: T.nilable(Time),
449
+ payment_started_at: T.nilable(Time),
450
+ scheduled_issue_at: T.nilable(Time),
451
+ shipping_address: T.nilable(Orb::Models::Invoice::ShippingAddress),
452
+ status: Orb::Models::Invoice::Status::TaggedSymbol,
453
+ subscription: T.nilable(Orb::Models::Invoice::Subscription),
454
+ subtotal: String,
455
+ sync_failed_at: T.nilable(Time),
456
+ total: String,
457
+ voided_at: T.nilable(Time),
458
+ will_auto_issue: T::Boolean
459
+ }
460
+ )
461
+ end
462
+ def to_hash
463
+ end
464
+
465
+ class AutoCollection < Orb::BaseModel
466
+ # True only if auto-collection is enabled for this invoice.
467
+ sig { returns(T.nilable(T::Boolean)) }
468
+ attr_accessor :enabled
469
+
470
+ # If the invoice is scheduled for auto-collection, this field will reflect when
471
+ # the next attempt will occur. If dunning has been exhausted, or auto-collection
472
+ # is not enabled for this invoice, this field will be `null`.
473
+ sig { returns(T.nilable(Time)) }
474
+ attr_accessor :next_attempt_at
475
+
476
+ # Number of auto-collection payment attempts.
477
+ sig { returns(T.nilable(Integer)) }
478
+ attr_accessor :num_attempts
479
+
480
+ # If Orb has ever attempted payment auto-collection for this invoice, this field
481
+ # will reflect when that attempt occurred. In conjunction with `next_attempt_at`,
482
+ # this can be used to tell whether the invoice is currently in dunning (that is,
483
+ # `previously_attempted_at` is non-null, and `next_attempt_time` is non-null), or
484
+ # if dunning has been exhausted (`previously_attempted_at` is non-null, but
485
+ # `next_attempt_time` is null).
486
+ sig { returns(T.nilable(Time)) }
487
+ attr_accessor :previously_attempted_at
488
+
489
+ sig do
490
+ params(
491
+ enabled: T.nilable(T::Boolean),
492
+ next_attempt_at: T.nilable(Time),
493
+ num_attempts: T.nilable(Integer),
494
+ previously_attempted_at: T.nilable(Time)
495
+ )
496
+ .returns(T.attached_class)
497
+ end
498
+ def self.new(enabled:, next_attempt_at:, num_attempts:, previously_attempted_at:)
499
+ end
500
+
501
+ sig do
502
+ override
503
+ .returns(
504
+ {
505
+ enabled: T.nilable(T::Boolean),
506
+ next_attempt_at: T.nilable(Time),
507
+ num_attempts: T.nilable(Integer),
508
+ previously_attempted_at: T.nilable(Time)
509
+ }
510
+ )
511
+ end
512
+ def to_hash
513
+ end
514
+ end
515
+
516
+ class BillingAddress < Orb::BaseModel
517
+ sig { returns(T.nilable(String)) }
518
+ attr_accessor :city
519
+
520
+ sig { returns(T.nilable(String)) }
521
+ attr_accessor :country
522
+
523
+ sig { returns(T.nilable(String)) }
524
+ attr_accessor :line1
525
+
526
+ sig { returns(T.nilable(String)) }
527
+ attr_accessor :line2
528
+
529
+ sig { returns(T.nilable(String)) }
530
+ attr_accessor :postal_code
531
+
532
+ sig { returns(T.nilable(String)) }
533
+ attr_accessor :state
534
+
535
+ sig do
536
+ params(
537
+ city: T.nilable(String),
538
+ country: T.nilable(String),
539
+ line1: T.nilable(String),
540
+ line2: T.nilable(String),
541
+ postal_code: T.nilable(String),
542
+ state: T.nilable(String)
543
+ )
544
+ .returns(T.attached_class)
545
+ end
546
+ def self.new(city:, country:, line1:, line2:, postal_code:, state:)
547
+ end
548
+
549
+ sig do
550
+ override
551
+ .returns(
552
+ {
553
+ city: T.nilable(String),
554
+ country: T.nilable(String),
555
+ line1: T.nilable(String),
556
+ line2: T.nilable(String),
557
+ postal_code: T.nilable(String),
558
+ state: T.nilable(String)
559
+ }
560
+ )
561
+ end
562
+ def to_hash
563
+ end
564
+ end
565
+
566
+ class CreditNote < Orb::BaseModel
567
+ sig { returns(String) }
568
+ attr_accessor :id
569
+
570
+ sig { returns(String) }
571
+ attr_accessor :credit_note_number
572
+
573
+ # An optional memo supplied on the credit note.
574
+ sig { returns(T.nilable(String)) }
575
+ attr_accessor :memo
576
+
577
+ sig { returns(String) }
578
+ attr_accessor :reason
579
+
580
+ sig { returns(String) }
581
+ attr_accessor :total
582
+
583
+ sig { returns(String) }
584
+ attr_accessor :type
585
+
586
+ # If the credit note has a status of `void`, this gives a timestamp when the
587
+ # credit note was voided.
588
+ sig { returns(T.nilable(Time)) }
589
+ attr_accessor :voided_at
590
+
591
+ sig do
592
+ params(
593
+ id: String,
594
+ credit_note_number: String,
595
+ memo: T.nilable(String),
596
+ reason: String,
597
+ total: String,
598
+ type: String,
599
+ voided_at: T.nilable(Time)
600
+ )
601
+ .returns(T.attached_class)
602
+ end
603
+ def self.new(id:, credit_note_number:, memo:, reason:, total:, type:, voided_at:)
604
+ end
605
+
606
+ sig do
607
+ override
608
+ .returns(
609
+ {
610
+ id: String,
611
+ credit_note_number: String,
612
+ memo: T.nilable(String),
613
+ reason: String,
614
+ total: String,
615
+ type: String,
616
+ voided_at: T.nilable(Time)
617
+ }
618
+ )
619
+ end
620
+ def to_hash
621
+ end
622
+ end
623
+
624
+ class Customer < Orb::BaseModel
625
+ sig { returns(String) }
626
+ attr_accessor :id
627
+
628
+ sig { returns(T.nilable(String)) }
629
+ attr_accessor :external_customer_id
630
+
631
+ sig { params(id: String, external_customer_id: T.nilable(String)).returns(T.attached_class) }
632
+ def self.new(id:, external_customer_id:)
633
+ end
634
+
635
+ sig { override.returns({id: String, external_customer_id: T.nilable(String)}) }
636
+ def to_hash
637
+ end
638
+ end
639
+
640
+ class CustomerBalanceTransaction < Orb::BaseModel
641
+ # A unique id for this transaction.
642
+ sig { returns(String) }
643
+ attr_accessor :id
644
+
645
+ sig { returns(Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol) }
646
+ attr_accessor :action
647
+
648
+ # The value of the amount changed in the transaction.
649
+ sig { returns(String) }
650
+ attr_accessor :amount
651
+
652
+ # The creation time of this transaction.
653
+ sig { returns(Time) }
654
+ attr_accessor :created_at
655
+
656
+ sig { returns(T.nilable(Orb::Models::Invoice::CustomerBalanceTransaction::CreditNote)) }
657
+ attr_reader :credit_note
658
+
659
+ sig do
660
+ params(
661
+ credit_note: T.nilable(T.any(Orb::Models::Invoice::CustomerBalanceTransaction::CreditNote, Orb::Util::AnyHash))
662
+ )
663
+ .void
664
+ end
665
+ attr_writer :credit_note
666
+
667
+ # An optional description provided for manual customer balance adjustments.
668
+ sig { returns(T.nilable(String)) }
669
+ attr_accessor :description
670
+
671
+ # The new value of the customer's balance prior to the transaction, in the
672
+ # customer's currency.
673
+ sig { returns(String) }
674
+ attr_accessor :ending_balance
675
+
676
+ sig { returns(T.nilable(Orb::Models::Invoice::CustomerBalanceTransaction::Invoice)) }
677
+ attr_reader :invoice
678
+
679
+ sig do
680
+ params(
681
+ invoice: T.nilable(T.any(Orb::Models::Invoice::CustomerBalanceTransaction::Invoice, Orb::Util::AnyHash))
682
+ )
683
+ .void
684
+ end
685
+ attr_writer :invoice
686
+
687
+ # The original value of the customer's balance prior to the transaction, in the
688
+ # customer's currency.
689
+ sig { returns(String) }
690
+ attr_accessor :starting_balance
691
+
692
+ sig { returns(Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol) }
693
+ attr_accessor :type
694
+
695
+ sig do
696
+ params(
697
+ id: String,
698
+ action: Orb::Models::Invoice::CustomerBalanceTransaction::Action::OrSymbol,
699
+ amount: String,
700
+ created_at: Time,
701
+ credit_note: T.nilable(T.any(Orb::Models::Invoice::CustomerBalanceTransaction::CreditNote, Orb::Util::AnyHash)),
702
+ description: T.nilable(String),
703
+ ending_balance: String,
704
+ invoice: T.nilable(T.any(Orb::Models::Invoice::CustomerBalanceTransaction::Invoice, Orb::Util::AnyHash)),
705
+ starting_balance: String,
706
+ type: Orb::Models::Invoice::CustomerBalanceTransaction::Type::OrSymbol
707
+ )
708
+ .returns(T.attached_class)
709
+ end
710
+ def self.new(
711
+ id:,
712
+ action:,
713
+ amount:,
714
+ created_at:,
715
+ credit_note:,
716
+ description:,
717
+ ending_balance:,
718
+ invoice:,
719
+ starting_balance:,
720
+ type:
721
+ )
722
+ end
723
+
724
+ sig do
725
+ override
726
+ .returns(
727
+ {
728
+ id: String,
729
+ action: Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol,
730
+ amount: String,
731
+ created_at: Time,
732
+ credit_note: T.nilable(Orb::Models::Invoice::CustomerBalanceTransaction::CreditNote),
733
+ description: T.nilable(String),
734
+ ending_balance: String,
735
+ invoice: T.nilable(Orb::Models::Invoice::CustomerBalanceTransaction::Invoice),
736
+ starting_balance: String,
737
+ type: Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol
738
+ }
739
+ )
740
+ end
741
+ def to_hash
742
+ end
743
+
744
+ module Action
745
+ extend Orb::Enum
746
+
747
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::CustomerBalanceTransaction::Action) }
748
+ OrSymbol =
749
+ T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol) }
750
+
751
+ APPLIED_TO_INVOICE =
752
+ T.let(:applied_to_invoice, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
753
+ MANUAL_ADJUSTMENT =
754
+ T.let(:manual_adjustment, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
755
+ PRORATED_REFUND =
756
+ T.let(:prorated_refund, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
757
+ REVERT_PRORATED_REFUND =
758
+ T.let(:revert_prorated_refund, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
759
+ RETURN_FROM_VOIDING =
760
+ T.let(:return_from_voiding, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
761
+ CREDIT_NOTE_APPLIED =
762
+ T.let(:credit_note_applied, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
763
+ CREDIT_NOTE_VOIDED =
764
+ T.let(:credit_note_voided, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
765
+ OVERPAYMENT_REFUND =
766
+ T.let(:overpayment_refund, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
767
+ EXTERNAL_PAYMENT =
768
+ T.let(:external_payment, Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol)
769
+
770
+ sig { override.returns(T::Array[Orb::Models::Invoice::CustomerBalanceTransaction::Action::TaggedSymbol]) }
771
+ def self.values
772
+ end
773
+ end
774
+
775
+ class CreditNote < Orb::BaseModel
776
+ # The id of the Credit note
777
+ sig { returns(String) }
778
+ attr_accessor :id
779
+
780
+ sig { params(id: String).returns(T.attached_class) }
781
+ def self.new(id:)
782
+ end
783
+
784
+ sig { override.returns({id: String}) }
785
+ def to_hash
786
+ end
787
+ end
788
+
789
+ class Invoice < Orb::BaseModel
790
+ # The Invoice id
791
+ sig { returns(String) }
792
+ attr_accessor :id
793
+
794
+ sig { params(id: String).returns(T.attached_class) }
795
+ def self.new(id:)
796
+ end
797
+
798
+ sig { override.returns({id: String}) }
799
+ def to_hash
800
+ end
801
+ end
802
+
803
+ module Type
804
+ extend Orb::Enum
805
+
806
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::CustomerBalanceTransaction::Type) }
807
+ OrSymbol =
808
+ T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol) }
809
+
810
+ INCREMENT = T.let(:increment, Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol)
811
+ DECREMENT = T.let(:decrement, Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol)
812
+
813
+ sig { override.returns(T::Array[Orb::Models::Invoice::CustomerBalanceTransaction::Type::TaggedSymbol]) }
814
+ def self.values
815
+ end
816
+ end
817
+ end
818
+
819
+ class CustomerTaxID < Orb::BaseModel
820
+ sig { returns(Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol) }
821
+ attr_accessor :country
822
+
823
+ sig { returns(Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol) }
824
+ attr_accessor :type
825
+
826
+ sig { returns(String) }
827
+ attr_accessor :value
828
+
829
+ # Tax IDs are commonly required to be displayed on customer invoices, which are
830
+ # added to the headers of invoices.
831
+ #
832
+ # ### Supported Tax ID Countries and Types
833
+ #
834
+ # | Country | Type | Description |
835
+ # | -------------------- | ------------ | ------------------------------------------------------------------------------------------------------- |
836
+ # | Andorra | `ad_nrt` | Andorran NRT Number |
837
+ # | Argentina | `ar_cuit` | Argentinian Tax ID Number |
838
+ # | Australia | `au_abn` | Australian Business Number (AU ABN) |
839
+ # | Australia | `au_arn` | Australian Taxation Office Reference Number |
840
+ # | Austria | `eu_vat` | European VAT Number |
841
+ # | Bahrain | `bh_vat` | Bahraini VAT Number |
842
+ # | Belgium | `eu_vat` | European VAT Number |
843
+ # | Bolivia | `bo_tin` | Bolivian Tax ID |
844
+ # | Brazil | `br_cnpj` | Brazilian CNPJ Number |
845
+ # | Brazil | `br_cpf` | Brazilian CPF Number |
846
+ # | Bulgaria | `bg_uic` | Bulgaria Unified Identification Code |
847
+ # | Bulgaria | `eu_vat` | European VAT Number |
848
+ # | Canada | `ca_bn` | Canadian BN |
849
+ # | Canada | `ca_gst_hst` | Canadian GST/HST Number |
850
+ # | Canada | `ca_pst_bc` | Canadian PST Number (British Columbia) |
851
+ # | Canada | `ca_pst_mb` | Canadian PST Number (Manitoba) |
852
+ # | Canada | `ca_pst_sk` | Canadian PST Number (Saskatchewan) |
853
+ # | Canada | `ca_qst` | Canadian QST Number (Québec) |
854
+ # | Chile | `cl_tin` | Chilean TIN |
855
+ # | China | `cn_tin` | Chinese Tax ID |
856
+ # | Colombia | `co_nit` | Colombian NIT Number |
857
+ # | Costa Rica | `cr_tin` | Costa Rican Tax ID |
858
+ # | Croatia | `eu_vat` | European VAT Number |
859
+ # | Cyprus | `eu_vat` | European VAT Number |
860
+ # | Czech Republic | `eu_vat` | European VAT Number |
861
+ # | Denmark | `eu_vat` | European VAT Number |
862
+ # | Dominican Republic | `do_rcn` | Dominican RCN Number |
863
+ # | Ecuador | `ec_ruc` | Ecuadorian RUC Number |
864
+ # | Egypt | `eg_tin` | Egyptian Tax Identification Number |
865
+ # | El Salvador | `sv_nit` | El Salvadorian NIT Number |
866
+ # | Estonia | `eu_vat` | European VAT Number |
867
+ # | EU | `eu_oss_vat` | European One Stop Shop VAT Number for non-Union scheme |
868
+ # | Finland | `eu_vat` | European VAT Number |
869
+ # | France | `eu_vat` | European VAT Number |
870
+ # | Georgia | `ge_vat` | Georgian VAT |
871
+ # | Germany | `eu_vat` | European VAT Number |
872
+ # | Greece | `eu_vat` | European VAT Number |
873
+ # | Hong Kong | `hk_br` | Hong Kong BR Number |
874
+ # | Hungary | `eu_vat` | European VAT Number |
875
+ # | Hungary | `hu_tin` | Hungary Tax Number (adószám) |
876
+ # | Iceland | `is_vat` | Icelandic VAT |
877
+ # | India | `in_gst` | Indian GST Number |
878
+ # | Indonesia | `id_npwp` | Indonesian NPWP Number |
879
+ # | Ireland | `eu_vat` | European VAT Number |
880
+ # | Israel | `il_vat` | Israel VAT |
881
+ # | Italy | `eu_vat` | European VAT Number |
882
+ # | Japan | `jp_cn` | Japanese Corporate Number (_Hōjin Bangō_) |
883
+ # | Japan | `jp_rn` | Japanese Registered Foreign Businesses' Registration Number (_Tōroku Kokugai Jigyōsha no Tōroku Bangō_) |
884
+ # | Japan | `jp_trn` | Japanese Tax Registration Number (_Tōroku Bangō_) |
885
+ # | Kazakhstan | `kz_bin` | Kazakhstani Business Identification Number |
886
+ # | Kenya | `ke_pin` | Kenya Revenue Authority Personal Identification Number |
887
+ # | Latvia | `eu_vat` | European VAT Number |
888
+ # | Liechtenstein | `li_uid` | Liechtensteinian UID Number |
889
+ # | Lithuania | `eu_vat` | European VAT Number |
890
+ # | Luxembourg | `eu_vat` | European VAT Number |
891
+ # | Malaysia | `my_frp` | Malaysian FRP Number |
892
+ # | Malaysia | `my_itn` | Malaysian ITN |
893
+ # | Malaysia | `my_sst` | Malaysian SST Number |
894
+ # | Malta | `eu_vat ` | European VAT Number |
895
+ # | Mexico | `mx_rfc` | Mexican RFC Number |
896
+ # | Netherlands | `eu_vat` | European VAT Number |
897
+ # | New Zealand | `nz_gst` | New Zealand GST Number |
898
+ # | Nigeria | `ng_tin` | Nigerian Tax Identification Number |
899
+ # | Norway | `no_vat` | Norwegian VAT Number |
900
+ # | Norway | `no_voec` | Norwegian VAT on e-commerce Number |
901
+ # | Oman | `om_vat` | Omani VAT Number |
902
+ # | Peru | `pe_ruc` | Peruvian RUC Number |
903
+ # | Philippines | `ph_tin ` | Philippines Tax Identification Number |
904
+ # | Poland | `eu_vat` | European VAT Number |
905
+ # | Portugal | `eu_vat` | European VAT Number |
906
+ # | Romania | `eu_vat` | European VAT Number |
907
+ # | Romania | `ro_tin` | Romanian Tax ID Number |
908
+ # | Russia | `ru_inn` | Russian INN |
909
+ # | Russia | `ru_kpp` | Russian KPP |
910
+ # | Saudi Arabia | `sa_vat` | Saudi Arabia VAT |
911
+ # | Serbia | `rs_pib` | Serbian PIB Number |
912
+ # | Singapore | `sg_gst` | Singaporean GST |
913
+ # | Singapore | `sg_uen` | Singaporean UEN |
914
+ # | Slovakia | `eu_vat` | European VAT Number |
915
+ # | Slovenia | `eu_vat` | European VAT Number |
916
+ # | Slovenia | `si_tin` | Slovenia Tax Number (davčna številka) |
917
+ # | South Africa | `za_vat` | South African VAT Number |
918
+ # | South Korea | `kr_brn` | Korean BRN |
919
+ # | Spain | `es_cif` | Spanish NIF Number (previously Spanish CIF Number) |
920
+ # | Spain | `eu_vat` | European VAT Number |
921
+ # | Sweden | `eu_vat` | European VAT Number |
922
+ # | Switzerland | `ch_vat` | Switzerland VAT Number |
923
+ # | Taiwan | `tw_vat` | Taiwanese VAT |
924
+ # | Thailand | `th_vat` | Thai VAT |
925
+ # | Turkey | `tr_tin` | Turkish Tax Identification Number |
926
+ # | Ukraine | `ua_vat` | Ukrainian VAT |
927
+ # | United Arab Emirates | `ae_trn` | United Arab Emirates TRN |
928
+ # | United Kingdom | `eu_vat` | Northern Ireland VAT Number |
929
+ # | United Kingdom | `gb_vat` | United Kingdom VAT Number |
930
+ # | United States | `us_ein` | United States EIN |
931
+ # | Uruguay | `uy_ruc` | Uruguayan RUC Number |
932
+ # | Venezuela | `ve_rif` | Venezuelan RIF Number |
933
+ # | Vietnam | `vn_tin` | Vietnamese Tax ID Number |
934
+ sig do
935
+ params(
936
+ country: Orb::Models::Invoice::CustomerTaxID::Country::OrSymbol,
937
+ type: Orb::Models::Invoice::CustomerTaxID::Type::OrSymbol,
938
+ value: String
939
+ )
940
+ .returns(T.attached_class)
941
+ end
942
+ def self.new(country:, type:, value:)
943
+ end
944
+
945
+ sig do
946
+ override
947
+ .returns(
948
+ {
949
+ country: Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol,
950
+ type: Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol,
951
+ value: String
952
+ }
953
+ )
954
+ end
955
+ def to_hash
956
+ end
957
+
958
+ module Country
959
+ extend Orb::Enum
960
+
961
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::CustomerTaxID::Country) }
962
+ OrSymbol =
963
+ T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol) }
964
+
965
+ AD = T.let(:AD, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
966
+ AE = T.let(:AE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
967
+ AR = T.let(:AR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
968
+ AT = T.let(:AT, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
969
+ AU = T.let(:AU, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
970
+ BE = T.let(:BE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
971
+ BG = T.let(:BG, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
972
+ BH = T.let(:BH, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
973
+ BO = T.let(:BO, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
974
+ BR = T.let(:BR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
975
+ CA = T.let(:CA, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
976
+ CH = T.let(:CH, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
977
+ CL = T.let(:CL, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
978
+ CN = T.let(:CN, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
979
+ CO = T.let(:CO, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
980
+ CR = T.let(:CR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
981
+ CY = T.let(:CY, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
982
+ CZ = T.let(:CZ, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
983
+ DE = T.let(:DE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
984
+ DK = T.let(:DK, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
985
+ EE = T.let(:EE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
986
+ DO = T.let(:DO, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
987
+ EC = T.let(:EC, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
988
+ EG = T.let(:EG, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
989
+ ES = T.let(:ES, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
990
+ EU = T.let(:EU, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
991
+ FI = T.let(:FI, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
992
+ FR = T.let(:FR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
993
+ GB = T.let(:GB, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
994
+ GE = T.let(:GE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
995
+ GR = T.let(:GR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
996
+ HK = T.let(:HK, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
997
+ HR = T.let(:HR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
998
+ HU = T.let(:HU, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
999
+ ID = T.let(:ID, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1000
+ IE = T.let(:IE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1001
+ IL = T.let(:IL, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1002
+ IN = T.let(:IN, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1003
+ IS = T.let(:IS, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1004
+ IT = T.let(:IT, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1005
+ JP = T.let(:JP, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1006
+ KE = T.let(:KE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1007
+ KR = T.let(:KR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1008
+ KZ = T.let(:KZ, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1009
+ LI = T.let(:LI, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1010
+ LT = T.let(:LT, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1011
+ LU = T.let(:LU, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1012
+ LV = T.let(:LV, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1013
+ MT = T.let(:MT, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1014
+ MX = T.let(:MX, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1015
+ MY = T.let(:MY, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1016
+ NG = T.let(:NG, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1017
+ NL = T.let(:NL, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1018
+ NO = T.let(:NO, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1019
+ NZ = T.let(:NZ, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1020
+ OM = T.let(:OM, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1021
+ PE = T.let(:PE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1022
+ PH = T.let(:PH, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1023
+ PL = T.let(:PL, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1024
+ PT = T.let(:PT, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1025
+ RO = T.let(:RO, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1026
+ RS = T.let(:RS, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1027
+ RU = T.let(:RU, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1028
+ SA = T.let(:SA, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1029
+ SE = T.let(:SE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1030
+ SG = T.let(:SG, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1031
+ SI = T.let(:SI, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1032
+ SK = T.let(:SK, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1033
+ SV = T.let(:SV, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1034
+ TH = T.let(:TH, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1035
+ TR = T.let(:TR, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1036
+ TW = T.let(:TW, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1037
+ UA = T.let(:UA, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1038
+ US = T.let(:US, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1039
+ UY = T.let(:UY, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1040
+ VE = T.let(:VE, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1041
+ VN = T.let(:VN, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1042
+ ZA = T.let(:ZA, Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol)
1043
+
1044
+ sig { override.returns(T::Array[Orb::Models::Invoice::CustomerTaxID::Country::TaggedSymbol]) }
1045
+ def self.values
1046
+ end
1047
+ end
1048
+
1049
+ module Type
1050
+ extend Orb::Enum
1051
+
1052
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::CustomerTaxID::Type) }
1053
+ OrSymbol =
1054
+ T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol) }
1055
+
1056
+ AD_NRT = T.let(:ad_nrt, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1057
+ AE_TRN = T.let(:ae_trn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1058
+ AR_CUIT = T.let(:ar_cuit, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1059
+ EU_VAT = T.let(:eu_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1060
+ AU_ABN = T.let(:au_abn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1061
+ AU_ARN = T.let(:au_arn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1062
+ BG_UIC = T.let(:bg_uic, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1063
+ BH_VAT = T.let(:bh_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1064
+ BO_TIN = T.let(:bo_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1065
+ BR_CNPJ = T.let(:br_cnpj, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1066
+ BR_CPF = T.let(:br_cpf, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1067
+ CA_BN = T.let(:ca_bn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1068
+ CA_GST_HST = T.let(:ca_gst_hst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1069
+ CA_PST_BC = T.let(:ca_pst_bc, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1070
+ CA_PST_MB = T.let(:ca_pst_mb, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1071
+ CA_PST_SK = T.let(:ca_pst_sk, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1072
+ CA_QST = T.let(:ca_qst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1073
+ CH_VAT = T.let(:ch_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1074
+ CL_TIN = T.let(:cl_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1075
+ CN_TIN = T.let(:cn_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1076
+ CO_NIT = T.let(:co_nit, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1077
+ CR_TIN = T.let(:cr_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1078
+ DO_RCN = T.let(:do_rcn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1079
+ EC_RUC = T.let(:ec_ruc, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1080
+ EG_TIN = T.let(:eg_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1081
+ ES_CIF = T.let(:es_cif, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1082
+ EU_OSS_VAT = T.let(:eu_oss_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1083
+ GB_VAT = T.let(:gb_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1084
+ GE_VAT = T.let(:ge_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1085
+ HK_BR = T.let(:hk_br, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1086
+ HU_TIN = T.let(:hu_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1087
+ ID_NPWP = T.let(:id_npwp, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1088
+ IL_VAT = T.let(:il_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1089
+ IN_GST = T.let(:in_gst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1090
+ IS_VAT = T.let(:is_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1091
+ JP_CN = T.let(:jp_cn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1092
+ JP_RN = T.let(:jp_rn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1093
+ JP_TRN = T.let(:jp_trn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1094
+ KE_PIN = T.let(:ke_pin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1095
+ KR_BRN = T.let(:kr_brn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1096
+ KZ_BIN = T.let(:kz_bin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1097
+ LI_UID = T.let(:li_uid, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1098
+ MX_RFC = T.let(:mx_rfc, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1099
+ MY_FRP = T.let(:my_frp, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1100
+ MY_ITN = T.let(:my_itn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1101
+ MY_SST = T.let(:my_sst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1102
+ NG_TIN = T.let(:ng_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1103
+ NO_VAT = T.let(:no_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1104
+ NO_VOEC = T.let(:no_voec, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1105
+ NZ_GST = T.let(:nz_gst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1106
+ OM_VAT = T.let(:om_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1107
+ PE_RUC = T.let(:pe_ruc, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1108
+ PH_TIN = T.let(:ph_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1109
+ RO_TIN = T.let(:ro_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1110
+ RS_PIB = T.let(:rs_pib, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1111
+ RU_INN = T.let(:ru_inn, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1112
+ RU_KPP = T.let(:ru_kpp, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1113
+ SA_VAT = T.let(:sa_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1114
+ SG_GST = T.let(:sg_gst, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1115
+ SG_UEN = T.let(:sg_uen, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1116
+ SI_TIN = T.let(:si_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1117
+ SV_NIT = T.let(:sv_nit, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1118
+ TH_VAT = T.let(:th_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1119
+ TR_TIN = T.let(:tr_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1120
+ TW_VAT = T.let(:tw_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1121
+ UA_VAT = T.let(:ua_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1122
+ US_EIN = T.let(:us_ein, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1123
+ UY_RUC = T.let(:uy_ruc, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1124
+ VE_RIF = T.let(:ve_rif, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1125
+ VN_TIN = T.let(:vn_tin, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1126
+ ZA_VAT = T.let(:za_vat, Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol)
1127
+
1128
+ sig { override.returns(T::Array[Orb::Models::Invoice::CustomerTaxID::Type::TaggedSymbol]) }
1129
+ def self.values
1130
+ end
1131
+ end
1132
+ end
1133
+
1134
+ module InvoiceSource
1135
+ extend Orb::Enum
1136
+
1137
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::InvoiceSource) }
1138
+ OrSymbol = T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::InvoiceSource::TaggedSymbol) }
1139
+
1140
+ SUBSCRIPTION = T.let(:subscription, Orb::Models::Invoice::InvoiceSource::TaggedSymbol)
1141
+ PARTIAL = T.let(:partial, Orb::Models::Invoice::InvoiceSource::TaggedSymbol)
1142
+ ONE_OFF = T.let(:one_off, Orb::Models::Invoice::InvoiceSource::TaggedSymbol)
1143
+
1144
+ sig { override.returns(T::Array[Orb::Models::Invoice::InvoiceSource::TaggedSymbol]) }
1145
+ def self.values
1146
+ end
1147
+ end
1148
+
1149
+ class LineItem < Orb::BaseModel
1150
+ # A unique ID for this line item.
1151
+ sig { returns(String) }
1152
+ attr_accessor :id
1153
+
1154
+ # The line amount after any adjustments and before overage conversion, credits and
1155
+ # partial invoicing.
1156
+ sig { returns(String) }
1157
+ attr_accessor :adjusted_subtotal
1158
+
1159
+ # All adjustments applied to the line item in the order they were applied based on
1160
+ # invoice calculations (ie. usage discounts -> amount discounts -> percentage
1161
+ # discounts -> minimums -> maximums).
1162
+ sig do
1163
+ returns(
1164
+ T::Array[
1165
+ T.any(
1166
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryUsageDiscountAdjustment,
1167
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryAmountDiscountAdjustment,
1168
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment,
1169
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMinimumAdjustment,
1170
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMaximumAdjustment
1171
+ )
1172
+ ]
1173
+ )
1174
+ end
1175
+ attr_accessor :adjustments
1176
+
1177
+ # The final amount for a line item after all adjustments and pre paid credits have
1178
+ # been applied.
1179
+ sig { returns(String) }
1180
+ attr_accessor :amount
1181
+
1182
+ # The number of prepaid credits applied.
1183
+ sig { returns(String) }
1184
+ attr_accessor :credits_applied
1185
+
1186
+ sig do
1187
+ returns(
1188
+ T.nilable(
1189
+ T.any(
1190
+ Orb::Models::PercentageDiscount,
1191
+ Orb::Models::TrialDiscount,
1192
+ Orb::Models::UsageDiscount,
1193
+ Orb::Models::AmountDiscount
1194
+ )
1195
+ )
1196
+ )
1197
+ end
1198
+ attr_accessor :discount
1199
+
1200
+ # The end date of the range of time applied for this line item's price.
1201
+ sig { returns(Time) }
1202
+ attr_accessor :end_date
1203
+
1204
+ # An additional filter that was used to calculate the usage for this line item.
1205
+ sig { returns(T.nilable(String)) }
1206
+ attr_accessor :filter
1207
+
1208
+ # [DEPRECATED] For configured prices that are split by a grouping key, this will
1209
+ # be populated with the key and a value. The `amount` and `subtotal` will be the
1210
+ # values for this particular grouping.
1211
+ sig { returns(T.nilable(String)) }
1212
+ attr_accessor :grouping
1213
+
1214
+ # This field is deprecated in favor of `adjustments`.
1215
+ sig { returns(T.nilable(Orb::Models::Invoice::LineItem::Maximum)) }
1216
+ attr_reader :maximum
1217
+
1218
+ sig { params(maximum: T.nilable(T.any(Orb::Models::Invoice::LineItem::Maximum, Orb::Util::AnyHash))).void }
1219
+ attr_writer :maximum
1220
+
1221
+ # This field is deprecated in favor of `adjustments`.
1222
+ sig { returns(T.nilable(String)) }
1223
+ attr_accessor :maximum_amount
1224
+
1225
+ # This field is deprecated in favor of `adjustments`.
1226
+ sig { returns(T.nilable(Orb::Models::Invoice::LineItem::Minimum)) }
1227
+ attr_reader :minimum
1228
+
1229
+ sig { params(minimum: T.nilable(T.any(Orb::Models::Invoice::LineItem::Minimum, Orb::Util::AnyHash))).void }
1230
+ attr_writer :minimum
1231
+
1232
+ # This field is deprecated in favor of `adjustments`.
1233
+ sig { returns(T.nilable(String)) }
1234
+ attr_accessor :minimum_amount
1235
+
1236
+ # The name of the price associated with this line item.
1237
+ sig { returns(String) }
1238
+ attr_accessor :name
1239
+
1240
+ # Any amount applied from a partial invoice
1241
+ sig { returns(String) }
1242
+ attr_accessor :partially_invoiced_amount
1243
+
1244
+ # The Price resource represents a price that can be billed on a subscription,
1245
+ # resulting in a charge on an invoice in the form of an invoice line item. Prices
1246
+ # take a quantity and determine an amount to bill.
1247
+ #
1248
+ # Orb supports a few different pricing models out of the box. Each of these models
1249
+ # is serialized differently in a given Price object. The model_type field
1250
+ # determines the key for the configuration object that is present.
1251
+ #
1252
+ # For more on the types of prices, see
1253
+ # [the core concepts documentation](/core-concepts#plan-and-price)
1254
+ sig do
1255
+ returns(
1256
+ T.nilable(
1257
+ T.any(
1258
+ Orb::Models::Price::UnitPrice,
1259
+ Orb::Models::Price::PackagePrice,
1260
+ Orb::Models::Price::MatrixPrice,
1261
+ Orb::Models::Price::TieredPrice,
1262
+ Orb::Models::Price::TieredBpsPrice,
1263
+ Orb::Models::Price::BpsPrice,
1264
+ Orb::Models::Price::BulkBpsPrice,
1265
+ Orb::Models::Price::BulkPrice,
1266
+ Orb::Models::Price::ThresholdTotalAmountPrice,
1267
+ Orb::Models::Price::TieredPackagePrice,
1268
+ Orb::Models::Price::GroupedTieredPrice,
1269
+ Orb::Models::Price::TieredWithMinimumPrice,
1270
+ Orb::Models::Price::TieredPackageWithMinimumPrice,
1271
+ Orb::Models::Price::PackageWithAllocationPrice,
1272
+ Orb::Models::Price::UnitWithPercentPrice,
1273
+ Orb::Models::Price::MatrixWithAllocationPrice,
1274
+ Orb::Models::Price::TieredWithProrationPrice,
1275
+ Orb::Models::Price::UnitWithProrationPrice,
1276
+ Orb::Models::Price::GroupedAllocationPrice,
1277
+ Orb::Models::Price::GroupedWithProratedMinimumPrice,
1278
+ Orb::Models::Price::GroupedWithMeteredMinimumPrice,
1279
+ Orb::Models::Price::MatrixWithDisplayNamePrice,
1280
+ Orb::Models::Price::BulkWithProrationPrice,
1281
+ Orb::Models::Price::GroupedTieredPackagePrice,
1282
+ Orb::Models::Price::MaxGroupTieredPackagePrice,
1283
+ Orb::Models::Price::ScalableMatrixWithUnitPricingPrice,
1284
+ Orb::Models::Price::ScalableMatrixWithTieredPricingPrice,
1285
+ Orb::Models::Price::CumulativeGroupedBulkPrice
1286
+ )
1287
+ )
1288
+ )
1289
+ end
1290
+ attr_accessor :price
1291
+
1292
+ # Either the fixed fee quantity or the usage during the service period.
1293
+ sig { returns(Float) }
1294
+ attr_accessor :quantity
1295
+
1296
+ # The start date of the range of time applied for this line item's price.
1297
+ sig { returns(Time) }
1298
+ attr_accessor :start_date
1299
+
1300
+ # For complex pricing structures, the line item can be broken down further in
1301
+ # `sub_line_items`.
1302
+ sig do
1303
+ returns(
1304
+ T::Array[
1305
+ T.any(
1306
+ Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem,
1307
+ Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem,
1308
+ Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem
1309
+ )
1310
+ ]
1311
+ )
1312
+ end
1313
+ attr_accessor :sub_line_items
1314
+
1315
+ # The line amount before before any adjustments.
1316
+ sig { returns(String) }
1317
+ attr_accessor :subtotal
1318
+
1319
+ # An array of tax rates and their incurred tax amounts. Empty if no tax
1320
+ # integration is configured.
1321
+ sig { returns(T::Array[Orb::Models::Invoice::LineItem::TaxAmount]) }
1322
+ attr_accessor :tax_amounts
1323
+
1324
+ # A list of customer ids that were used to calculate the usage for this line item.
1325
+ sig { returns(T.nilable(T::Array[String])) }
1326
+ attr_accessor :usage_customer_ids
1327
+
1328
+ sig do
1329
+ params(
1330
+ id: String,
1331
+ adjusted_subtotal: String,
1332
+ adjustments: T::Array[
1333
+ T.any(
1334
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryUsageDiscountAdjustment,
1335
+ Orb::Util::AnyHash,
1336
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryAmountDiscountAdjustment,
1337
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment,
1338
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMinimumAdjustment,
1339
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMaximumAdjustment
1340
+ )
1341
+ ],
1342
+ amount: String,
1343
+ credits_applied: String,
1344
+ discount: T.nilable(
1345
+ T.any(
1346
+ Orb::Models::PercentageDiscount,
1347
+ Orb::Util::AnyHash,
1348
+ Orb::Models::TrialDiscount,
1349
+ Orb::Models::UsageDiscount,
1350
+ Orb::Models::AmountDiscount
1351
+ )
1352
+ ),
1353
+ end_date: Time,
1354
+ filter: T.nilable(String),
1355
+ grouping: T.nilable(String),
1356
+ maximum: T.nilable(T.any(Orb::Models::Invoice::LineItem::Maximum, Orb::Util::AnyHash)),
1357
+ maximum_amount: T.nilable(String),
1358
+ minimum: T.nilable(T.any(Orb::Models::Invoice::LineItem::Minimum, Orb::Util::AnyHash)),
1359
+ minimum_amount: T.nilable(String),
1360
+ name: String,
1361
+ partially_invoiced_amount: String,
1362
+ price: T.nilable(
1363
+ T.any(
1364
+ Orb::Models::Price::UnitPrice,
1365
+ Orb::Util::AnyHash,
1366
+ Orb::Models::Price::PackagePrice,
1367
+ Orb::Models::Price::MatrixPrice,
1368
+ Orb::Models::Price::TieredPrice,
1369
+ Orb::Models::Price::TieredBpsPrice,
1370
+ Orb::Models::Price::BpsPrice,
1371
+ Orb::Models::Price::BulkBpsPrice,
1372
+ Orb::Models::Price::BulkPrice,
1373
+ Orb::Models::Price::ThresholdTotalAmountPrice,
1374
+ Orb::Models::Price::TieredPackagePrice,
1375
+ Orb::Models::Price::GroupedTieredPrice,
1376
+ Orb::Models::Price::TieredWithMinimumPrice,
1377
+ Orb::Models::Price::TieredPackageWithMinimumPrice,
1378
+ Orb::Models::Price::PackageWithAllocationPrice,
1379
+ Orb::Models::Price::UnitWithPercentPrice,
1380
+ Orb::Models::Price::MatrixWithAllocationPrice,
1381
+ Orb::Models::Price::TieredWithProrationPrice,
1382
+ Orb::Models::Price::UnitWithProrationPrice,
1383
+ Orb::Models::Price::GroupedAllocationPrice,
1384
+ Orb::Models::Price::GroupedWithProratedMinimumPrice,
1385
+ Orb::Models::Price::GroupedWithMeteredMinimumPrice,
1386
+ Orb::Models::Price::MatrixWithDisplayNamePrice,
1387
+ Orb::Models::Price::BulkWithProrationPrice,
1388
+ Orb::Models::Price::GroupedTieredPackagePrice,
1389
+ Orb::Models::Price::MaxGroupTieredPackagePrice,
1390
+ Orb::Models::Price::ScalableMatrixWithUnitPricingPrice,
1391
+ Orb::Models::Price::ScalableMatrixWithTieredPricingPrice,
1392
+ Orb::Models::Price::CumulativeGroupedBulkPrice
1393
+ )
1394
+ ),
1395
+ quantity: Float,
1396
+ start_date: Time,
1397
+ sub_line_items: T::Array[
1398
+ T.any(
1399
+ Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem,
1400
+ Orb::Util::AnyHash,
1401
+ Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem,
1402
+ Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem
1403
+ )
1404
+ ],
1405
+ subtotal: String,
1406
+ tax_amounts: T::Array[T.any(Orb::Models::Invoice::LineItem::TaxAmount, Orb::Util::AnyHash)],
1407
+ usage_customer_ids: T.nilable(T::Array[String])
1408
+ )
1409
+ .returns(T.attached_class)
1410
+ end
1411
+ def self.new(
1412
+ id:,
1413
+ adjusted_subtotal:,
1414
+ adjustments:,
1415
+ amount:,
1416
+ credits_applied:,
1417
+ discount:,
1418
+ end_date:,
1419
+ filter:,
1420
+ grouping:,
1421
+ maximum:,
1422
+ maximum_amount:,
1423
+ minimum:,
1424
+ minimum_amount:,
1425
+ name:,
1426
+ partially_invoiced_amount:,
1427
+ price:,
1428
+ quantity:,
1429
+ start_date:,
1430
+ sub_line_items:,
1431
+ subtotal:,
1432
+ tax_amounts:,
1433
+ usage_customer_ids:
1434
+ )
1435
+ end
1436
+
1437
+ sig do
1438
+ override
1439
+ .returns(
1440
+ {
1441
+ id: String,
1442
+ adjusted_subtotal: String,
1443
+ adjustments: T::Array[
1444
+ T.any(
1445
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryUsageDiscountAdjustment,
1446
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryAmountDiscountAdjustment,
1447
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment,
1448
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMinimumAdjustment,
1449
+ Orb::Models::Invoice::LineItem::Adjustment::MonetaryMaximumAdjustment
1450
+ )
1451
+ ],
1452
+ amount: String,
1453
+ credits_applied: String,
1454
+ discount: T.nilable(
1455
+ T.any(
1456
+ Orb::Models::PercentageDiscount,
1457
+ Orb::Models::TrialDiscount,
1458
+ Orb::Models::UsageDiscount,
1459
+ Orb::Models::AmountDiscount
1460
+ )
1461
+ ),
1462
+ end_date: Time,
1463
+ filter: T.nilable(String),
1464
+ grouping: T.nilable(String),
1465
+ maximum: T.nilable(Orb::Models::Invoice::LineItem::Maximum),
1466
+ maximum_amount: T.nilable(String),
1467
+ minimum: T.nilable(Orb::Models::Invoice::LineItem::Minimum),
1468
+ minimum_amount: T.nilable(String),
1469
+ name: String,
1470
+ partially_invoiced_amount: String,
1471
+ price: T.nilable(
1472
+ T.any(
1473
+ Orb::Models::Price::UnitPrice,
1474
+ Orb::Models::Price::PackagePrice,
1475
+ Orb::Models::Price::MatrixPrice,
1476
+ Orb::Models::Price::TieredPrice,
1477
+ Orb::Models::Price::TieredBpsPrice,
1478
+ Orb::Models::Price::BpsPrice,
1479
+ Orb::Models::Price::BulkBpsPrice,
1480
+ Orb::Models::Price::BulkPrice,
1481
+ Orb::Models::Price::ThresholdTotalAmountPrice,
1482
+ Orb::Models::Price::TieredPackagePrice,
1483
+ Orb::Models::Price::GroupedTieredPrice,
1484
+ Orb::Models::Price::TieredWithMinimumPrice,
1485
+ Orb::Models::Price::TieredPackageWithMinimumPrice,
1486
+ Orb::Models::Price::PackageWithAllocationPrice,
1487
+ Orb::Models::Price::UnitWithPercentPrice,
1488
+ Orb::Models::Price::MatrixWithAllocationPrice,
1489
+ Orb::Models::Price::TieredWithProrationPrice,
1490
+ Orb::Models::Price::UnitWithProrationPrice,
1491
+ Orb::Models::Price::GroupedAllocationPrice,
1492
+ Orb::Models::Price::GroupedWithProratedMinimumPrice,
1493
+ Orb::Models::Price::GroupedWithMeteredMinimumPrice,
1494
+ Orb::Models::Price::MatrixWithDisplayNamePrice,
1495
+ Orb::Models::Price::BulkWithProrationPrice,
1496
+ Orb::Models::Price::GroupedTieredPackagePrice,
1497
+ Orb::Models::Price::MaxGroupTieredPackagePrice,
1498
+ Orb::Models::Price::ScalableMatrixWithUnitPricingPrice,
1499
+ Orb::Models::Price::ScalableMatrixWithTieredPricingPrice,
1500
+ Orb::Models::Price::CumulativeGroupedBulkPrice
1501
+ )
1502
+ ),
1503
+ quantity: Float,
1504
+ start_date: Time,
1505
+ sub_line_items: T::Array[
1506
+ T.any(
1507
+ Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem,
1508
+ Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem,
1509
+ Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem
1510
+ )
1511
+ ],
1512
+ subtotal: String,
1513
+ tax_amounts: T::Array[Orb::Models::Invoice::LineItem::TaxAmount],
1514
+ usage_customer_ids: T.nilable(T::Array[String])
1515
+ }
1516
+ )
1517
+ end
1518
+ def to_hash
1519
+ end
1520
+
1521
+ module Adjustment
1522
+ extend Orb::Union
1523
+
1524
+ class MonetaryUsageDiscountAdjustment < Orb::BaseModel
1525
+ sig { returns(String) }
1526
+ attr_accessor :id
1527
+
1528
+ sig { returns(Symbol) }
1529
+ attr_accessor :adjustment_type
1530
+
1531
+ # The value applied by an adjustment.
1532
+ sig { returns(String) }
1533
+ attr_accessor :amount
1534
+
1535
+ # The price IDs that this adjustment applies to.
1536
+ sig { returns(T::Array[String]) }
1537
+ attr_accessor :applies_to_price_ids
1538
+
1539
+ # True for adjustments that apply to an entire invocice, false for adjustments
1540
+ # that apply to only one price.
1541
+ sig { returns(T::Boolean) }
1542
+ attr_accessor :is_invoice_level
1543
+
1544
+ # The reason for the adjustment.
1545
+ sig { returns(T.nilable(String)) }
1546
+ attr_accessor :reason
1547
+
1548
+ # The number of usage units by which to discount the price this adjustment applies
1549
+ # to in a given billing period.
1550
+ sig { returns(Float) }
1551
+ attr_accessor :usage_discount
1552
+
1553
+ sig do
1554
+ params(
1555
+ id: String,
1556
+ amount: String,
1557
+ applies_to_price_ids: T::Array[String],
1558
+ is_invoice_level: T::Boolean,
1559
+ reason: T.nilable(String),
1560
+ usage_discount: Float,
1561
+ adjustment_type: Symbol
1562
+ )
1563
+ .returns(T.attached_class)
1564
+ end
1565
+ def self.new(
1566
+ id:,
1567
+ amount:,
1568
+ applies_to_price_ids:,
1569
+ is_invoice_level:,
1570
+ reason:,
1571
+ usage_discount:,
1572
+ adjustment_type: :usage_discount
1573
+ )
1574
+ end
1575
+
1576
+ sig do
1577
+ override
1578
+ .returns(
1579
+ {
1580
+ id: String,
1581
+ adjustment_type: Symbol,
1582
+ amount: String,
1583
+ applies_to_price_ids: T::Array[String],
1584
+ is_invoice_level: T::Boolean,
1585
+ reason: T.nilable(String),
1586
+ usage_discount: Float
1587
+ }
1588
+ )
1589
+ end
1590
+ def to_hash
1591
+ end
1592
+ end
1593
+
1594
+ class MonetaryAmountDiscountAdjustment < Orb::BaseModel
1595
+ sig { returns(String) }
1596
+ attr_accessor :id
1597
+
1598
+ sig { returns(Symbol) }
1599
+ attr_accessor :adjustment_type
1600
+
1601
+ # The value applied by an adjustment.
1602
+ sig { returns(String) }
1603
+ attr_accessor :amount
1604
+
1605
+ # The amount by which to discount the prices this adjustment applies to in a given
1606
+ # billing period.
1607
+ sig { returns(String) }
1608
+ attr_accessor :amount_discount
1609
+
1610
+ # The price IDs that this adjustment applies to.
1611
+ sig { returns(T::Array[String]) }
1612
+ attr_accessor :applies_to_price_ids
1613
+
1614
+ # True for adjustments that apply to an entire invocice, false for adjustments
1615
+ # that apply to only one price.
1616
+ sig { returns(T::Boolean) }
1617
+ attr_accessor :is_invoice_level
1618
+
1619
+ # The reason for the adjustment.
1620
+ sig { returns(T.nilable(String)) }
1621
+ attr_accessor :reason
1622
+
1623
+ sig do
1624
+ params(
1625
+ id: String,
1626
+ amount: String,
1627
+ amount_discount: String,
1628
+ applies_to_price_ids: T::Array[String],
1629
+ is_invoice_level: T::Boolean,
1630
+ reason: T.nilable(String),
1631
+ adjustment_type: Symbol
1632
+ )
1633
+ .returns(T.attached_class)
1634
+ end
1635
+ def self.new(
1636
+ id:,
1637
+ amount:,
1638
+ amount_discount:,
1639
+ applies_to_price_ids:,
1640
+ is_invoice_level:,
1641
+ reason:,
1642
+ adjustment_type: :amount_discount
1643
+ )
1644
+ end
1645
+
1646
+ sig do
1647
+ override
1648
+ .returns(
1649
+ {
1650
+ id: String,
1651
+ adjustment_type: Symbol,
1652
+ amount: String,
1653
+ amount_discount: String,
1654
+ applies_to_price_ids: T::Array[String],
1655
+ is_invoice_level: T::Boolean,
1656
+ reason: T.nilable(String)
1657
+ }
1658
+ )
1659
+ end
1660
+ def to_hash
1661
+ end
1662
+ end
1663
+
1664
+ class MonetaryPercentageDiscountAdjustment < Orb::BaseModel
1665
+ sig { returns(String) }
1666
+ attr_accessor :id
1667
+
1668
+ sig { returns(Symbol) }
1669
+ attr_accessor :adjustment_type
1670
+
1671
+ # The value applied by an adjustment.
1672
+ sig { returns(String) }
1673
+ attr_accessor :amount
1674
+
1675
+ # The price IDs that this adjustment applies to.
1676
+ sig { returns(T::Array[String]) }
1677
+ attr_accessor :applies_to_price_ids
1678
+
1679
+ # True for adjustments that apply to an entire invocice, false for adjustments
1680
+ # that apply to only one price.
1681
+ sig { returns(T::Boolean) }
1682
+ attr_accessor :is_invoice_level
1683
+
1684
+ # The percentage (as a value between 0 and 1) by which to discount the price
1685
+ # intervals this adjustment applies to in a given billing period.
1686
+ sig { returns(Float) }
1687
+ attr_accessor :percentage_discount
1688
+
1689
+ # The reason for the adjustment.
1690
+ sig { returns(T.nilable(String)) }
1691
+ attr_accessor :reason
1692
+
1693
+ sig do
1694
+ params(
1695
+ id: String,
1696
+ amount: String,
1697
+ applies_to_price_ids: T::Array[String],
1698
+ is_invoice_level: T::Boolean,
1699
+ percentage_discount: Float,
1700
+ reason: T.nilable(String),
1701
+ adjustment_type: Symbol
1702
+ )
1703
+ .returns(T.attached_class)
1704
+ end
1705
+ def self.new(
1706
+ id:,
1707
+ amount:,
1708
+ applies_to_price_ids:,
1709
+ is_invoice_level:,
1710
+ percentage_discount:,
1711
+ reason:,
1712
+ adjustment_type: :percentage_discount
1713
+ )
1714
+ end
1715
+
1716
+ sig do
1717
+ override
1718
+ .returns(
1719
+ {
1720
+ id: String,
1721
+ adjustment_type: Symbol,
1722
+ amount: String,
1723
+ applies_to_price_ids: T::Array[String],
1724
+ is_invoice_level: T::Boolean,
1725
+ percentage_discount: Float,
1726
+ reason: T.nilable(String)
1727
+ }
1728
+ )
1729
+ end
1730
+ def to_hash
1731
+ end
1732
+ end
1733
+
1734
+ class MonetaryMinimumAdjustment < Orb::BaseModel
1735
+ sig { returns(String) }
1736
+ attr_accessor :id
1737
+
1738
+ sig { returns(Symbol) }
1739
+ attr_accessor :adjustment_type
1740
+
1741
+ # The value applied by an adjustment.
1742
+ sig { returns(String) }
1743
+ attr_accessor :amount
1744
+
1745
+ # The price IDs that this adjustment applies to.
1746
+ sig { returns(T::Array[String]) }
1747
+ attr_accessor :applies_to_price_ids
1748
+
1749
+ # True for adjustments that apply to an entire invocice, false for adjustments
1750
+ # that apply to only one price.
1751
+ sig { returns(T::Boolean) }
1752
+ attr_accessor :is_invoice_level
1753
+
1754
+ # The item ID that revenue from this minimum will be attributed to.
1755
+ sig { returns(String) }
1756
+ attr_accessor :item_id
1757
+
1758
+ # The minimum amount to charge in a given billing period for the prices this
1759
+ # adjustment applies to.
1760
+ sig { returns(String) }
1761
+ attr_accessor :minimum_amount
1762
+
1763
+ # The reason for the adjustment.
1764
+ sig { returns(T.nilable(String)) }
1765
+ attr_accessor :reason
1766
+
1767
+ sig do
1768
+ params(
1769
+ id: String,
1770
+ amount: String,
1771
+ applies_to_price_ids: T::Array[String],
1772
+ is_invoice_level: T::Boolean,
1773
+ item_id: String,
1774
+ minimum_amount: String,
1775
+ reason: T.nilable(String),
1776
+ adjustment_type: Symbol
1777
+ )
1778
+ .returns(T.attached_class)
1779
+ end
1780
+ def self.new(
1781
+ id:,
1782
+ amount:,
1783
+ applies_to_price_ids:,
1784
+ is_invoice_level:,
1785
+ item_id:,
1786
+ minimum_amount:,
1787
+ reason:,
1788
+ adjustment_type: :minimum
1789
+ )
1790
+ end
1791
+
1792
+ sig do
1793
+ override
1794
+ .returns(
1795
+ {
1796
+ id: String,
1797
+ adjustment_type: Symbol,
1798
+ amount: String,
1799
+ applies_to_price_ids: T::Array[String],
1800
+ is_invoice_level: T::Boolean,
1801
+ item_id: String,
1802
+ minimum_amount: String,
1803
+ reason: T.nilable(String)
1804
+ }
1805
+ )
1806
+ end
1807
+ def to_hash
1808
+ end
1809
+ end
1810
+
1811
+ class MonetaryMaximumAdjustment < Orb::BaseModel
1812
+ sig { returns(String) }
1813
+ attr_accessor :id
1814
+
1815
+ sig { returns(Symbol) }
1816
+ attr_accessor :adjustment_type
1817
+
1818
+ # The value applied by an adjustment.
1819
+ sig { returns(String) }
1820
+ attr_accessor :amount
1821
+
1822
+ # The price IDs that this adjustment applies to.
1823
+ sig { returns(T::Array[String]) }
1824
+ attr_accessor :applies_to_price_ids
1825
+
1826
+ # True for adjustments that apply to an entire invocice, false for adjustments
1827
+ # that apply to only one price.
1828
+ sig { returns(T::Boolean) }
1829
+ attr_accessor :is_invoice_level
1830
+
1831
+ # The maximum amount to charge in a given billing period for the prices this
1832
+ # adjustment applies to.
1833
+ sig { returns(String) }
1834
+ attr_accessor :maximum_amount
1835
+
1836
+ # The reason for the adjustment.
1837
+ sig { returns(T.nilable(String)) }
1838
+ attr_accessor :reason
1839
+
1840
+ sig do
1841
+ params(
1842
+ id: String,
1843
+ amount: String,
1844
+ applies_to_price_ids: T::Array[String],
1845
+ is_invoice_level: T::Boolean,
1846
+ maximum_amount: String,
1847
+ reason: T.nilable(String),
1848
+ adjustment_type: Symbol
1849
+ )
1850
+ .returns(T.attached_class)
1851
+ end
1852
+ def self.new(
1853
+ id:,
1854
+ amount:,
1855
+ applies_to_price_ids:,
1856
+ is_invoice_level:,
1857
+ maximum_amount:,
1858
+ reason:,
1859
+ adjustment_type: :maximum
1860
+ )
1861
+ end
1862
+
1863
+ sig do
1864
+ override
1865
+ .returns(
1866
+ {
1867
+ id: String,
1868
+ adjustment_type: Symbol,
1869
+ amount: String,
1870
+ applies_to_price_ids: T::Array[String],
1871
+ is_invoice_level: T::Boolean,
1872
+ maximum_amount: String,
1873
+ reason: T.nilable(String)
1874
+ }
1875
+ )
1876
+ end
1877
+ def to_hash
1878
+ end
1879
+ end
1880
+
1881
+ sig do
1882
+ override
1883
+ .returns(
1884
+ [Orb::Models::Invoice::LineItem::Adjustment::MonetaryUsageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryAmountDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryMinimumAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryMaximumAdjustment]
1885
+ )
1886
+ end
1887
+ def self.variants
1888
+ end
1889
+ end
1890
+
1891
+ class Maximum < Orb::BaseModel
1892
+ # List of price_ids that this maximum amount applies to. For plan/plan phase
1893
+ # maximums, this can be a subset of prices.
1894
+ sig { returns(T::Array[String]) }
1895
+ attr_accessor :applies_to_price_ids
1896
+
1897
+ # Maximum amount applied
1898
+ sig { returns(String) }
1899
+ attr_accessor :maximum_amount
1900
+
1901
+ # This field is deprecated in favor of `adjustments`.
1902
+ sig do
1903
+ params(applies_to_price_ids: T::Array[String], maximum_amount: String).returns(T.attached_class)
1904
+ end
1905
+ def self.new(applies_to_price_ids:, maximum_amount:)
1906
+ end
1907
+
1908
+ sig { override.returns({applies_to_price_ids: T::Array[String], maximum_amount: String}) }
1909
+ def to_hash
1910
+ end
1911
+ end
1912
+
1913
+ class Minimum < Orb::BaseModel
1914
+ # List of price_ids that this minimum amount applies to. For plan/plan phase
1915
+ # minimums, this can be a subset of prices.
1916
+ sig { returns(T::Array[String]) }
1917
+ attr_accessor :applies_to_price_ids
1918
+
1919
+ # Minimum amount applied
1920
+ sig { returns(String) }
1921
+ attr_accessor :minimum_amount
1922
+
1923
+ # This field is deprecated in favor of `adjustments`.
1924
+ sig do
1925
+ params(applies_to_price_ids: T::Array[String], minimum_amount: String).returns(T.attached_class)
1926
+ end
1927
+ def self.new(applies_to_price_ids:, minimum_amount:)
1928
+ end
1929
+
1930
+ sig { override.returns({applies_to_price_ids: T::Array[String], minimum_amount: String}) }
1931
+ def to_hash
1932
+ end
1933
+ end
1934
+
1935
+ module SubLineItem
1936
+ extend Orb::Union
1937
+
1938
+ class MatrixSubLineItem < Orb::BaseModel
1939
+ # The total amount for this sub line item.
1940
+ sig { returns(String) }
1941
+ attr_accessor :amount
1942
+
1943
+ sig { returns(T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::Grouping)) }
1944
+ attr_reader :grouping
1945
+
1946
+ sig do
1947
+ params(
1948
+ grouping: T.nilable(
1949
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::Grouping, Orb::Util::AnyHash)
1950
+ )
1951
+ )
1952
+ .void
1953
+ end
1954
+ attr_writer :grouping
1955
+
1956
+ sig { returns(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::MatrixConfig) }
1957
+ attr_reader :matrix_config
1958
+
1959
+ sig do
1960
+ params(
1961
+ matrix_config: T.any(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::MatrixConfig, Orb::Util::AnyHash)
1962
+ )
1963
+ .void
1964
+ end
1965
+ attr_writer :matrix_config
1966
+
1967
+ sig { returns(String) }
1968
+ attr_accessor :name
1969
+
1970
+ sig { returns(Float) }
1971
+ attr_accessor :quantity
1972
+
1973
+ sig { returns(Symbol) }
1974
+ attr_accessor :type
1975
+
1976
+ sig do
1977
+ params(
1978
+ amount: String,
1979
+ grouping: T.nilable(
1980
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::Grouping, Orb::Util::AnyHash)
1981
+ ),
1982
+ matrix_config: T.any(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::MatrixConfig, Orb::Util::AnyHash),
1983
+ name: String,
1984
+ quantity: Float,
1985
+ type: Symbol
1986
+ )
1987
+ .returns(T.attached_class)
1988
+ end
1989
+ def self.new(amount:, grouping:, matrix_config:, name:, quantity:, type: :matrix)
1990
+ end
1991
+
1992
+ sig do
1993
+ override
1994
+ .returns(
1995
+ {
1996
+ amount: String,
1997
+ grouping: T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::Grouping),
1998
+ matrix_config: Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem::MatrixConfig,
1999
+ name: String,
2000
+ quantity: Float,
2001
+ type: Symbol
2002
+ }
2003
+ )
2004
+ end
2005
+ def to_hash
2006
+ end
2007
+
2008
+ class Grouping < Orb::BaseModel
2009
+ sig { returns(String) }
2010
+ attr_accessor :key
2011
+
2012
+ # No value indicates the default group
2013
+ sig { returns(T.nilable(String)) }
2014
+ attr_accessor :value
2015
+
2016
+ sig { params(key: String, value: T.nilable(String)).returns(T.attached_class) }
2017
+ def self.new(key:, value:)
2018
+ end
2019
+
2020
+ sig { override.returns({key: String, value: T.nilable(String)}) }
2021
+ def to_hash
2022
+ end
2023
+ end
2024
+
2025
+ class MatrixConfig < Orb::BaseModel
2026
+ # The ordered dimension values for this line item.
2027
+ sig { returns(T::Array[T.nilable(String)]) }
2028
+ attr_accessor :dimension_values
2029
+
2030
+ sig { params(dimension_values: T::Array[T.nilable(String)]).returns(T.attached_class) }
2031
+ def self.new(dimension_values:)
2032
+ end
2033
+
2034
+ sig { override.returns({dimension_values: T::Array[T.nilable(String)]}) }
2035
+ def to_hash
2036
+ end
2037
+ end
2038
+ end
2039
+
2040
+ class TierSubLineItem < Orb::BaseModel
2041
+ # The total amount for this sub line item.
2042
+ sig { returns(String) }
2043
+ attr_accessor :amount
2044
+
2045
+ sig { returns(T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::Grouping)) }
2046
+ attr_reader :grouping
2047
+
2048
+ sig do
2049
+ params(
2050
+ grouping: T.nilable(
2051
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::Grouping, Orb::Util::AnyHash)
2052
+ )
2053
+ )
2054
+ .void
2055
+ end
2056
+ attr_writer :grouping
2057
+
2058
+ sig { returns(String) }
2059
+ attr_accessor :name
2060
+
2061
+ sig { returns(Float) }
2062
+ attr_accessor :quantity
2063
+
2064
+ sig { returns(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::TierConfig) }
2065
+ attr_reader :tier_config
2066
+
2067
+ sig do
2068
+ params(
2069
+ tier_config: T.any(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::TierConfig, Orb::Util::AnyHash)
2070
+ )
2071
+ .void
2072
+ end
2073
+ attr_writer :tier_config
2074
+
2075
+ sig { returns(Symbol) }
2076
+ attr_accessor :type
2077
+
2078
+ sig do
2079
+ params(
2080
+ amount: String,
2081
+ grouping: T.nilable(
2082
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::Grouping, Orb::Util::AnyHash)
2083
+ ),
2084
+ name: String,
2085
+ quantity: Float,
2086
+ tier_config: T.any(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::TierConfig, Orb::Util::AnyHash),
2087
+ type: Symbol
2088
+ )
2089
+ .returns(T.attached_class)
2090
+ end
2091
+ def self.new(amount:, grouping:, name:, quantity:, tier_config:, type: :tier)
2092
+ end
2093
+
2094
+ sig do
2095
+ override
2096
+ .returns(
2097
+ {
2098
+ amount: String,
2099
+ grouping: T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::Grouping),
2100
+ name: String,
2101
+ quantity: Float,
2102
+ tier_config: Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem::TierConfig,
2103
+ type: Symbol
2104
+ }
2105
+ )
2106
+ end
2107
+ def to_hash
2108
+ end
2109
+
2110
+ class Grouping < Orb::BaseModel
2111
+ sig { returns(String) }
2112
+ attr_accessor :key
2113
+
2114
+ # No value indicates the default group
2115
+ sig { returns(T.nilable(String)) }
2116
+ attr_accessor :value
2117
+
2118
+ sig { params(key: String, value: T.nilable(String)).returns(T.attached_class) }
2119
+ def self.new(key:, value:)
2120
+ end
2121
+
2122
+ sig { override.returns({key: String, value: T.nilable(String)}) }
2123
+ def to_hash
2124
+ end
2125
+ end
2126
+
2127
+ class TierConfig < Orb::BaseModel
2128
+ sig { returns(Float) }
2129
+ attr_accessor :first_unit
2130
+
2131
+ sig { returns(T.nilable(Float)) }
2132
+ attr_accessor :last_unit
2133
+
2134
+ sig { returns(String) }
2135
+ attr_accessor :unit_amount
2136
+
2137
+ sig do
2138
+ params(
2139
+ first_unit: Float,
2140
+ last_unit: T.nilable(Float),
2141
+ unit_amount: String
2142
+ ).returns(T.attached_class)
2143
+ end
2144
+ def self.new(first_unit:, last_unit:, unit_amount:)
2145
+ end
2146
+
2147
+ sig { override.returns({first_unit: Float, last_unit: T.nilable(Float), unit_amount: String}) }
2148
+ def to_hash
2149
+ end
2150
+ end
2151
+ end
2152
+
2153
+ class OtherSubLineItem < Orb::BaseModel
2154
+ # The total amount for this sub line item.
2155
+ sig { returns(String) }
2156
+ attr_accessor :amount
2157
+
2158
+ sig { returns(T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem::Grouping)) }
2159
+ attr_reader :grouping
2160
+
2161
+ sig do
2162
+ params(
2163
+ grouping: T.nilable(
2164
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem::Grouping, Orb::Util::AnyHash)
2165
+ )
2166
+ )
2167
+ .void
2168
+ end
2169
+ attr_writer :grouping
2170
+
2171
+ sig { returns(String) }
2172
+ attr_accessor :name
2173
+
2174
+ sig { returns(Float) }
2175
+ attr_accessor :quantity
2176
+
2177
+ sig { returns(Symbol) }
2178
+ attr_accessor :type
2179
+
2180
+ sig do
2181
+ params(
2182
+ amount: String,
2183
+ grouping: T.nilable(
2184
+ T.any(Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem::Grouping, Orb::Util::AnyHash)
2185
+ ),
2186
+ name: String,
2187
+ quantity: Float,
2188
+ type: Symbol
2189
+ )
2190
+ .returns(T.attached_class)
2191
+ end
2192
+ def self.new(amount:, grouping:, name:, quantity:, type: :"'null'")
2193
+ end
2194
+
2195
+ sig do
2196
+ override
2197
+ .returns(
2198
+ {
2199
+ amount: String,
2200
+ grouping: T.nilable(Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem::Grouping),
2201
+ name: String,
2202
+ quantity: Float,
2203
+ type: Symbol
2204
+ }
2205
+ )
2206
+ end
2207
+ def to_hash
2208
+ end
2209
+
2210
+ class Grouping < Orb::BaseModel
2211
+ sig { returns(String) }
2212
+ attr_accessor :key
2213
+
2214
+ # No value indicates the default group
2215
+ sig { returns(T.nilable(String)) }
2216
+ attr_accessor :value
2217
+
2218
+ sig { params(key: String, value: T.nilable(String)).returns(T.attached_class) }
2219
+ def self.new(key:, value:)
2220
+ end
2221
+
2222
+ sig { override.returns({key: String, value: T.nilable(String)}) }
2223
+ def to_hash
2224
+ end
2225
+ end
2226
+ end
2227
+
2228
+ sig do
2229
+ override
2230
+ .returns(
2231
+ [Orb::Models::Invoice::LineItem::SubLineItem::MatrixSubLineItem, Orb::Models::Invoice::LineItem::SubLineItem::TierSubLineItem, Orb::Models::Invoice::LineItem::SubLineItem::OtherSubLineItem]
2232
+ )
2233
+ end
2234
+ def self.variants
2235
+ end
2236
+ end
2237
+
2238
+ class TaxAmount < Orb::BaseModel
2239
+ # The amount of additional tax incurred by this tax rate.
2240
+ sig { returns(String) }
2241
+ attr_accessor :amount
2242
+
2243
+ # The human-readable description of the applied tax rate.
2244
+ sig { returns(String) }
2245
+ attr_accessor :tax_rate_description
2246
+
2247
+ # The tax rate percentage, out of 100.
2248
+ sig { returns(T.nilable(String)) }
2249
+ attr_accessor :tax_rate_percentage
2250
+
2251
+ sig do
2252
+ params(amount: String, tax_rate_description: String, tax_rate_percentage: T.nilable(String))
2253
+ .returns(T.attached_class)
2254
+ end
2255
+ def self.new(amount:, tax_rate_description:, tax_rate_percentage:)
2256
+ end
2257
+
2258
+ sig do
2259
+ override.returns(
2260
+ {
2261
+ amount: String,
2262
+ tax_rate_description: String,
2263
+ tax_rate_percentage: T.nilable(String)
2264
+ }
2265
+ )
2266
+ end
2267
+ def to_hash
2268
+ end
2269
+ end
2270
+ end
2271
+
2272
+ class Maximum < Orb::BaseModel
2273
+ # List of price_ids that this maximum amount applies to. For plan/plan phase
2274
+ # maximums, this can be a subset of prices.
2275
+ sig { returns(T::Array[String]) }
2276
+ attr_accessor :applies_to_price_ids
2277
+
2278
+ # Maximum amount applied
2279
+ sig { returns(String) }
2280
+ attr_accessor :maximum_amount
2281
+
2282
+ sig do
2283
+ params(applies_to_price_ids: T::Array[String], maximum_amount: String).returns(T.attached_class)
2284
+ end
2285
+ def self.new(applies_to_price_ids:, maximum_amount:)
2286
+ end
2287
+
2288
+ sig { override.returns({applies_to_price_ids: T::Array[String], maximum_amount: String}) }
2289
+ def to_hash
2290
+ end
2291
+ end
2292
+
2293
+ class Minimum < Orb::BaseModel
2294
+ # List of price_ids that this minimum amount applies to. For plan/plan phase
2295
+ # minimums, this can be a subset of prices.
2296
+ sig { returns(T::Array[String]) }
2297
+ attr_accessor :applies_to_price_ids
2298
+
2299
+ # Minimum amount applied
2300
+ sig { returns(String) }
2301
+ attr_accessor :minimum_amount
2302
+
2303
+ sig do
2304
+ params(applies_to_price_ids: T::Array[String], minimum_amount: String).returns(T.attached_class)
2305
+ end
2306
+ def self.new(applies_to_price_ids:, minimum_amount:)
2307
+ end
2308
+
2309
+ sig { override.returns({applies_to_price_ids: T::Array[String], minimum_amount: String}) }
2310
+ def to_hash
2311
+ end
2312
+ end
2313
+
2314
+ class PaymentAttempt < Orb::BaseModel
2315
+ # The ID of the payment attempt.
2316
+ sig { returns(String) }
2317
+ attr_accessor :id
2318
+
2319
+ # The amount of the payment attempt.
2320
+ sig { returns(String) }
2321
+ attr_accessor :amount
2322
+
2323
+ # The time at which the payment attempt was created.
2324
+ sig { returns(Time) }
2325
+ attr_accessor :created_at
2326
+
2327
+ # The payment provider that attempted to collect the payment.
2328
+ sig { returns(T.nilable(Orb::Models::Invoice::PaymentAttempt::PaymentProvider::TaggedSymbol)) }
2329
+ attr_accessor :payment_provider
2330
+
2331
+ # The ID of the payment attempt in the payment provider.
2332
+ sig { returns(T.nilable(String)) }
2333
+ attr_accessor :payment_provider_id
2334
+
2335
+ # Whether the payment attempt succeeded.
2336
+ sig { returns(T::Boolean) }
2337
+ attr_accessor :succeeded
2338
+
2339
+ sig do
2340
+ params(
2341
+ id: String,
2342
+ amount: String,
2343
+ created_at: Time,
2344
+ payment_provider: T.nilable(Orb::Models::Invoice::PaymentAttempt::PaymentProvider::OrSymbol),
2345
+ payment_provider_id: T.nilable(String),
2346
+ succeeded: T::Boolean
2347
+ )
2348
+ .returns(T.attached_class)
2349
+ end
2350
+ def self.new(id:, amount:, created_at:, payment_provider:, payment_provider_id:, succeeded:)
2351
+ end
2352
+
2353
+ sig do
2354
+ override
2355
+ .returns(
2356
+ {
2357
+ id: String,
2358
+ amount: String,
2359
+ created_at: Time,
2360
+ payment_provider: T.nilable(Orb::Models::Invoice::PaymentAttempt::PaymentProvider::TaggedSymbol),
2361
+ payment_provider_id: T.nilable(String),
2362
+ succeeded: T::Boolean
2363
+ }
2364
+ )
2365
+ end
2366
+ def to_hash
2367
+ end
2368
+
2369
+ # The payment provider that attempted to collect the payment.
2370
+ module PaymentProvider
2371
+ extend Orb::Enum
2372
+
2373
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::PaymentAttempt::PaymentProvider) }
2374
+ OrSymbol =
2375
+ T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::PaymentAttempt::PaymentProvider::TaggedSymbol) }
2376
+
2377
+ STRIPE = T.let(:stripe, Orb::Models::Invoice::PaymentAttempt::PaymentProvider::TaggedSymbol)
2378
+
2379
+ sig { override.returns(T::Array[Orb::Models::Invoice::PaymentAttempt::PaymentProvider::TaggedSymbol]) }
2380
+ def self.values
2381
+ end
2382
+ end
2383
+ end
2384
+
2385
+ class ShippingAddress < Orb::BaseModel
2386
+ sig { returns(T.nilable(String)) }
2387
+ attr_accessor :city
2388
+
2389
+ sig { returns(T.nilable(String)) }
2390
+ attr_accessor :country
2391
+
2392
+ sig { returns(T.nilable(String)) }
2393
+ attr_accessor :line1
2394
+
2395
+ sig { returns(T.nilable(String)) }
2396
+ attr_accessor :line2
2397
+
2398
+ sig { returns(T.nilable(String)) }
2399
+ attr_accessor :postal_code
2400
+
2401
+ sig { returns(T.nilable(String)) }
2402
+ attr_accessor :state
2403
+
2404
+ sig do
2405
+ params(
2406
+ city: T.nilable(String),
2407
+ country: T.nilable(String),
2408
+ line1: T.nilable(String),
2409
+ line2: T.nilable(String),
2410
+ postal_code: T.nilable(String),
2411
+ state: T.nilable(String)
2412
+ )
2413
+ .returns(T.attached_class)
2414
+ end
2415
+ def self.new(city:, country:, line1:, line2:, postal_code:, state:)
2416
+ end
2417
+
2418
+ sig do
2419
+ override
2420
+ .returns(
2421
+ {
2422
+ city: T.nilable(String),
2423
+ country: T.nilable(String),
2424
+ line1: T.nilable(String),
2425
+ line2: T.nilable(String),
2426
+ postal_code: T.nilable(String),
2427
+ state: T.nilable(String)
2428
+ }
2429
+ )
2430
+ end
2431
+ def to_hash
2432
+ end
2433
+ end
2434
+
2435
+ module Status
2436
+ extend Orb::Enum
2437
+
2438
+ TaggedSymbol = T.type_alias { T.all(Symbol, Orb::Models::Invoice::Status) }
2439
+ OrSymbol = T.type_alias { T.any(Symbol, String, Orb::Models::Invoice::Status::TaggedSymbol) }
2440
+
2441
+ ISSUED = T.let(:issued, Orb::Models::Invoice::Status::TaggedSymbol)
2442
+ PAID = T.let(:paid, Orb::Models::Invoice::Status::TaggedSymbol)
2443
+ SYNCED = T.let(:synced, Orb::Models::Invoice::Status::TaggedSymbol)
2444
+ VOID = T.let(:void, Orb::Models::Invoice::Status::TaggedSymbol)
2445
+ DRAFT = T.let(:draft, Orb::Models::Invoice::Status::TaggedSymbol)
2446
+
2447
+ sig { override.returns(T::Array[Orb::Models::Invoice::Status::TaggedSymbol]) }
2448
+ def self.values
2449
+ end
2450
+ end
2451
+
2452
+ class Subscription < Orb::BaseModel
2453
+ sig { returns(String) }
2454
+ attr_accessor :id
2455
+
2456
+ sig { params(id: String).returns(T.attached_class) }
2457
+ def self.new(id:)
2458
+ end
2459
+
2460
+ sig { override.returns({id: String}) }
2461
+ def to_hash
2462
+ end
2463
+ end
2464
+ end
2465
+ end
2466
+ end