modern_treasury 0.1.0.pre.alpha.16 → 0.1.0.pre.alpha.18

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 (880) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +635 -0
  4. data/README.md +94 -24
  5. data/SECURITY.md +27 -0
  6. data/lib/modern_treasury/client.rb +12 -9
  7. data/lib/modern_treasury/errors.rb +168 -159
  8. data/lib/modern_treasury/internal/page.rb +90 -0
  9. data/lib/modern_treasury/internal/transport/base_client.rb +490 -0
  10. data/lib/modern_treasury/internal/transport/pooled_net_requester.rb +197 -0
  11. data/lib/modern_treasury/internal/type/array_of.rb +143 -0
  12. data/lib/modern_treasury/internal/type/base_model.rb +411 -0
  13. data/lib/modern_treasury/internal/type/base_page.rb +47 -0
  14. data/lib/modern_treasury/internal/type/boolean.rb +60 -0
  15. data/lib/modern_treasury/internal/type/converter.rb +271 -0
  16. data/lib/modern_treasury/internal/type/enum.rb +125 -0
  17. data/lib/modern_treasury/internal/type/hash_of.rb +163 -0
  18. data/lib/modern_treasury/internal/type/io_like.rb +77 -0
  19. data/lib/modern_treasury/internal/type/request_parameters.rb +49 -0
  20. data/lib/modern_treasury/internal/type/union.rb +222 -0
  21. data/lib/modern_treasury/internal/type/unknown.rb +64 -0
  22. data/lib/modern_treasury/internal/util.rb +782 -0
  23. data/lib/modern_treasury/internal.rb +12 -0
  24. data/lib/modern_treasury/models/account_collection_flow.rb +17 -14
  25. data/lib/modern_treasury/models/account_collection_flow_create_params.rb +8 -7
  26. data/lib/modern_treasury/models/account_collection_flow_list_params.rb +5 -4
  27. data/lib/modern_treasury/models/account_collection_flow_retrieve_params.rb +5 -4
  28. data/lib/modern_treasury/models/account_collection_flow_update_params.rb +8 -7
  29. data/lib/modern_treasury/models/account_detail.rb +10 -7
  30. data/lib/modern_treasury/models/account_detail_create_params.rb +9 -8
  31. data/lib/modern_treasury/models/account_detail_delete_params.rb +6 -5
  32. data/lib/modern_treasury/models/account_detail_list_params.rb +5 -4
  33. data/lib/modern_treasury/models/account_detail_retrieve_params.rb +5 -4
  34. data/lib/modern_treasury/models/accounts_type.rb +1 -1
  35. data/lib/modern_treasury/models/async_response.rb +2 -2
  36. data/lib/modern_treasury/models/bank_settings.rb +11 -11
  37. data/lib/modern_treasury/models/bulk_request.rb +21 -12
  38. data/lib/modern_treasury/models/bulk_request_create_params.rb +601 -518
  39. data/lib/modern_treasury/models/bulk_request_list_params.rb +14 -11
  40. data/lib/modern_treasury/models/bulk_request_retrieve_params.rb +5 -4
  41. data/lib/modern_treasury/models/bulk_result.rb +41 -30
  42. data/lib/modern_treasury/models/bulk_result_list_params.rb +16 -13
  43. data/lib/modern_treasury/models/bulk_result_retrieve_params.rb +5 -4
  44. data/lib/modern_treasury/models/client_ping_params.rb +5 -4
  45. data/lib/modern_treasury/models/connection.rb +5 -4
  46. data/lib/modern_treasury/models/connection_legal_entity.rb +8 -5
  47. data/lib/modern_treasury/models/connection_legal_entity_create_params.rb +116 -58
  48. data/lib/modern_treasury/models/connection_legal_entity_list_params.rb +6 -5
  49. data/lib/modern_treasury/models/connection_legal_entity_retrieve_params.rb +5 -4
  50. data/lib/modern_treasury/models/connection_legal_entity_update_params.rb +6 -5
  51. data/lib/modern_treasury/models/connection_list_params.rb +5 -4
  52. data/lib/modern_treasury/models/counterparty.rb +45 -33
  53. data/lib/modern_treasury/models/counterparty_collect_account_params.rb +20 -19
  54. data/lib/modern_treasury/models/counterparty_collect_account_response.rb +8 -7
  55. data/lib/modern_treasury/models/counterparty_create_params.rb +184 -114
  56. data/lib/modern_treasury/models/counterparty_delete_params.rb +5 -4
  57. data/lib/modern_treasury/models/counterparty_list_params.rb +10 -9
  58. data/lib/modern_treasury/models/counterparty_retrieve_params.rb +5 -4
  59. data/lib/modern_treasury/models/counterparty_update_params.rb +9 -8
  60. data/lib/modern_treasury/models/currency.rb +1 -1
  61. data/lib/modern_treasury/models/document.rb +20 -16
  62. data/lib/modern_treasury/models/document_create_params.rb +9 -8
  63. data/lib/modern_treasury/models/document_list_params.rb +10 -9
  64. data/lib/modern_treasury/models/document_retrieve_params.rb +5 -4
  65. data/lib/modern_treasury/models/event.rb +6 -5
  66. data/lib/modern_treasury/models/event_list_params.rb +5 -4
  67. data/lib/modern_treasury/models/event_retrieve_params.rb +5 -4
  68. data/lib/modern_treasury/models/expected_payment.rb +33 -26
  69. data/lib/modern_treasury/models/expected_payment_create_params.rb +82 -75
  70. data/lib/modern_treasury/models/expected_payment_delete_params.rb +5 -4
  71. data/lib/modern_treasury/models/expected_payment_list_params.rb +12 -11
  72. data/lib/modern_treasury/models/expected_payment_retrieve_params.rb +5 -4
  73. data/lib/modern_treasury/models/expected_payment_type.rb +2 -2
  74. data/lib/modern_treasury/models/expected_payment_update_params.rb +24 -23
  75. data/lib/modern_treasury/models/external_account.rb +32 -23
  76. data/lib/modern_treasury/models/external_account_complete_verification_params.rb +6 -5
  77. data/lib/modern_treasury/models/external_account_create_params.rb +51 -44
  78. data/lib/modern_treasury/models/external_account_delete_params.rb +5 -4
  79. data/lib/modern_treasury/models/external_account_list_params.rb +8 -7
  80. data/lib/modern_treasury/models/external_account_retrieve_params.rb +5 -4
  81. data/lib/modern_treasury/models/external_account_type.rb +1 -1
  82. data/lib/modern_treasury/models/external_account_update_params.rb +11 -10
  83. data/lib/modern_treasury/models/external_account_verify_params.rb +15 -14
  84. data/lib/modern_treasury/models/external_account_verify_response.rb +19 -12
  85. data/lib/modern_treasury/models/foreign_exchange_quote.rb +16 -14
  86. data/lib/modern_treasury/models/foreign_exchange_quote_create_params.rb +7 -6
  87. data/lib/modern_treasury/models/foreign_exchange_quote_list_params.rb +8 -7
  88. data/lib/modern_treasury/models/foreign_exchange_quote_retrieve_params.rb +5 -4
  89. data/lib/modern_treasury/models/incoming_payment_detail.rb +34 -21
  90. data/lib/modern_treasury/models/incoming_payment_detail_create_async_params.rb +22 -8
  91. data/lib/modern_treasury/models/incoming_payment_detail_list_params.rb +21 -16
  92. data/lib/modern_treasury/models/incoming_payment_detail_retrieve_params.rb +5 -4
  93. data/lib/modern_treasury/models/incoming_payment_detail_update_params.rb +7 -6
  94. data/lib/modern_treasury/models/internal_account.rb +23 -15
  95. data/lib/modern_treasury/models/internal_account_create_params.rb +12 -11
  96. data/lib/modern_treasury/models/internal_account_list_params.rb +9 -8
  97. data/lib/modern_treasury/models/internal_account_retrieve_params.rb +5 -4
  98. data/lib/modern_treasury/models/internal_account_update_params.rb +7 -6
  99. data/lib/modern_treasury/models/internal_accounts/balance_report.rb +27 -22
  100. data/lib/modern_treasury/models/internal_accounts/balance_report_create_params.rb +23 -20
  101. data/lib/modern_treasury/models/internal_accounts/balance_report_delete_params.rb +5 -4
  102. data/lib/modern_treasury/models/internal_accounts/balance_report_list_params.rb +8 -7
  103. data/lib/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rb +5 -4
  104. data/lib/modern_treasury/models/invoice.rb +56 -42
  105. data/lib/modern_treasury/models/invoice_add_payment_order_params.rb +5 -4
  106. data/lib/modern_treasury/models/invoice_create_params.rb +64 -62
  107. data/lib/modern_treasury/models/invoice_list_params.rb +9 -8
  108. data/lib/modern_treasury/models/invoice_retrieve_params.rb +5 -4
  109. data/lib/modern_treasury/models/invoice_update_params.rb +63 -61
  110. data/lib/modern_treasury/models/invoices/invoice_line_item.rb +14 -13
  111. data/lib/modern_treasury/models/invoices/line_item_create_params.rb +13 -12
  112. data/lib/modern_treasury/models/invoices/line_item_delete_params.rb +5 -4
  113. data/lib/modern_treasury/models/invoices/line_item_list_params.rb +5 -4
  114. data/lib/modern_treasury/models/invoices/line_item_retrieve_params.rb +5 -4
  115. data/lib/modern_treasury/models/invoices/line_item_update_params.rb +13 -12
  116. data/lib/modern_treasury/models/ledger.rb +7 -6
  117. data/lib/modern_treasury/models/ledger_account.rb +43 -36
  118. data/lib/modern_treasury/models/ledger_account_balance_monitor.rb +40 -33
  119. data/lib/modern_treasury/models/ledger_account_balance_monitor_create_params.rb +14 -13
  120. data/lib/modern_treasury/models/ledger_account_balance_monitor_delete_params.rb +5 -4
  121. data/lib/modern_treasury/models/ledger_account_balance_monitor_list_params.rb +10 -9
  122. data/lib/modern_treasury/models/ledger_account_balance_monitor_retrieve_params.rb +5 -4
  123. data/lib/modern_treasury/models/ledger_account_balance_monitor_update_params.rb +7 -6
  124. data/lib/modern_treasury/models/ledger_account_category.rb +33 -28
  125. data/lib/modern_treasury/models/ledger_account_category_add_ledger_account_params.rb +5 -4
  126. data/lib/modern_treasury/models/ledger_account_category_add_nested_category_params.rb +5 -4
  127. data/lib/modern_treasury/models/ledger_account_category_create_params.rb +9 -8
  128. data/lib/modern_treasury/models/ledger_account_category_delete_params.rb +5 -4
  129. data/lib/modern_treasury/models/ledger_account_category_list_params.rb +17 -16
  130. data/lib/modern_treasury/models/ledger_account_category_remove_ledger_account_params.rb +5 -4
  131. data/lib/modern_treasury/models/ledger_account_category_remove_nested_category_params.rb +5 -4
  132. data/lib/modern_treasury/models/ledger_account_category_retrieve_params.rb +11 -10
  133. data/lib/modern_treasury/models/ledger_account_category_update_params.rb +7 -6
  134. data/lib/modern_treasury/models/ledger_account_create_params.rb +15 -14
  135. data/lib/modern_treasury/models/ledger_account_delete_params.rb +5 -4
  136. data/lib/modern_treasury/models/ledger_account_list_params.rb +40 -39
  137. data/lib/modern_treasury/models/ledger_account_retrieve_params.rb +17 -16
  138. data/lib/modern_treasury/models/ledger_account_settlement.rb +16 -13
  139. data/lib/modern_treasury/models/ledger_account_settlement_create_params.rb +19 -18
  140. data/lib/modern_treasury/models/ledger_account_settlement_list_params.rb +16 -15
  141. data/lib/modern_treasury/models/ledger_account_settlement_retrieve_params.rb +5 -4
  142. data/lib/modern_treasury/models/ledger_account_settlement_update_params.rb +10 -9
  143. data/lib/modern_treasury/models/ledger_account_settlements/account_entry_delete_params.rb +9 -8
  144. data/lib/modern_treasury/models/ledger_account_settlements/account_entry_update_params.rb +7 -6
  145. data/lib/modern_treasury/models/ledger_account_statement_create_params.rb +10 -9
  146. data/lib/modern_treasury/models/ledger_account_statement_create_response.rb +62 -53
  147. data/lib/modern_treasury/models/ledger_account_statement_retrieve_params.rb +5 -4
  148. data/lib/modern_treasury/models/ledger_account_statement_retrieve_response.rb +62 -53
  149. data/lib/modern_treasury/models/ledger_account_update_params.rb +7 -6
  150. data/lib/modern_treasury/models/ledger_create_params.rb +7 -6
  151. data/lib/modern_treasury/models/ledger_delete_params.rb +5 -4
  152. data/lib/modern_treasury/models/ledger_entry.rb +49 -42
  153. data/lib/modern_treasury/models/ledger_entry_list_params.rb +43 -40
  154. data/lib/modern_treasury/models/ledger_entry_retrieve_params.rb +7 -6
  155. data/lib/modern_treasury/models/ledger_entry_update_params.rb +7 -6
  156. data/lib/modern_treasury/models/ledger_event_handler.rb +21 -15
  157. data/lib/modern_treasury/models/ledger_event_handler_create_params.rb +16 -15
  158. data/lib/modern_treasury/models/ledger_event_handler_delete_params.rb +5 -4
  159. data/lib/modern_treasury/models/ledger_event_handler_list_params.rb +11 -10
  160. data/lib/modern_treasury/models/ledger_event_handler_retrieve_params.rb +5 -4
  161. data/lib/modern_treasury/models/ledger_event_handler_variable.rb +7 -5
  162. data/lib/modern_treasury/models/ledger_list_params.rb +13 -12
  163. data/lib/modern_treasury/models/ledger_retrieve_params.rb +5 -4
  164. data/lib/modern_treasury/models/ledger_transaction.rb +26 -20
  165. data/lib/modern_treasury/models/ledger_transaction_create_params.rb +42 -41
  166. data/lib/modern_treasury/models/ledger_transaction_create_partial_post_params.rb +26 -23
  167. data/lib/modern_treasury/models/ledger_transaction_create_reversal_params.rb +17 -16
  168. data/lib/modern_treasury/models/ledger_transaction_list_params.rb +34 -31
  169. data/lib/modern_treasury/models/ledger_transaction_retrieve_params.rb +5 -4
  170. data/lib/modern_treasury/models/ledger_transaction_update_params.rb +40 -39
  171. data/lib/modern_treasury/models/ledger_transactions/ledger_transaction_version.rb +72 -61
  172. data/lib/modern_treasury/models/ledger_transactions/version_list_params.rb +12 -11
  173. data/lib/modern_treasury/models/ledger_update_params.rb +7 -6
  174. data/lib/modern_treasury/models/ledgerable_event.rb +9 -7
  175. data/lib/modern_treasury/models/ledgerable_event_create_params.rb +8 -7
  176. data/lib/modern_treasury/models/ledgerable_event_retrieve_params.rb +5 -4
  177. data/lib/modern_treasury/models/legal_entity.rb +56 -29
  178. data/lib/modern_treasury/models/legal_entity_association.rb +61 -35
  179. data/lib/modern_treasury/models/legal_entity_association_create_params.rb +58 -29
  180. data/lib/modern_treasury/models/legal_entity_compliance_detail.rb +109 -0
  181. data/lib/modern_treasury/models/legal_entity_create_params.rb +104 -52
  182. data/lib/modern_treasury/models/legal_entity_industry_classification.rb +107 -0
  183. data/lib/modern_treasury/models/legal_entity_list_params.rb +9 -8
  184. data/lib/modern_treasury/models/legal_entity_retrieve_params.rb +5 -4
  185. data/lib/modern_treasury/models/legal_entity_update_params.rb +46 -23
  186. data/lib/modern_treasury/models/line_item.rb +20 -16
  187. data/lib/modern_treasury/models/line_item_list_params.rb +6 -5
  188. data/lib/modern_treasury/models/line_item_retrieve_params.rb +6 -5
  189. data/lib/modern_treasury/models/line_item_update_params.rb +8 -7
  190. data/lib/modern_treasury/models/paper_item.rb +10 -7
  191. data/lib/modern_treasury/models/paper_item_list_params.rb +6 -5
  192. data/lib/modern_treasury/models/paper_item_retrieve_params.rb +5 -4
  193. data/lib/modern_treasury/models/payment_flow.rb +37 -28
  194. data/lib/modern_treasury/models/payment_flow_create_params.rb +12 -11
  195. data/lib/modern_treasury/models/payment_flow_list_params.rb +5 -4
  196. data/lib/modern_treasury/models/payment_flow_retrieve_params.rb +5 -4
  197. data/lib/modern_treasury/models/payment_flow_update_params.rb +8 -7
  198. data/lib/modern_treasury/models/payment_order.rb +121 -97
  199. data/lib/modern_treasury/models/payment_order_create_async_params.rb +191 -174
  200. data/lib/modern_treasury/models/payment_order_create_params.rb +200 -182
  201. data/lib/modern_treasury/models/payment_order_list_params.rb +15 -14
  202. data/lib/modern_treasury/models/payment_order_retrieve_params.rb +5 -4
  203. data/lib/modern_treasury/models/payment_order_subtype.rb +4 -4
  204. data/lib/modern_treasury/models/payment_order_type.rb +3 -3
  205. data/lib/modern_treasury/models/payment_order_update_params.rb +148 -137
  206. data/lib/modern_treasury/models/payment_orders/reversal.rb +15 -9
  207. data/lib/modern_treasury/models/payment_orders/reversal_create_params.rb +61 -54
  208. data/lib/modern_treasury/models/payment_orders/reversal_list_params.rb +5 -4
  209. data/lib/modern_treasury/models/payment_orders/reversal_retrieve_params.rb +5 -4
  210. data/lib/modern_treasury/models/payment_reference.rb +17 -9
  211. data/lib/modern_treasury/models/payment_reference_list_params.rb +9 -8
  212. data/lib/modern_treasury/models/payment_reference_retireve_params.rb +5 -4
  213. data/lib/modern_treasury/models/payment_reference_retrieve_params.rb +5 -4
  214. data/lib/modern_treasury/models/ping_response.rb +3 -2
  215. data/lib/modern_treasury/models/reconciliation_rule.rb +15 -11
  216. data/lib/modern_treasury/models/return_create_params.rb +33 -24
  217. data/lib/modern_treasury/models/return_list_params.rb +10 -9
  218. data/lib/modern_treasury/models/return_object.rb +60 -36
  219. data/lib/modern_treasury/models/return_retrieve_params.rb +5 -4
  220. data/lib/modern_treasury/models/routing_detail.rb +22 -16
  221. data/lib/modern_treasury/models/routing_detail_create_params.rb +14 -13
  222. data/lib/modern_treasury/models/routing_detail_delete_params.rb +6 -5
  223. data/lib/modern_treasury/models/routing_detail_list_params.rb +5 -4
  224. data/lib/modern_treasury/models/routing_detail_retrieve_params.rb +5 -4
  225. data/lib/modern_treasury/models/routing_number_lookup_request.rb +22 -17
  226. data/lib/modern_treasury/models/transaction.rb +47 -40
  227. data/lib/modern_treasury/models/transaction_create_params.rb +17 -16
  228. data/lib/modern_treasury/models/transaction_delete_params.rb +5 -4
  229. data/lib/modern_treasury/models/transaction_direction.rb +1 -1
  230. data/lib/modern_treasury/models/transaction_list_params.rb +13 -12
  231. data/lib/modern_treasury/models/transaction_retrieve_params.rb +5 -4
  232. data/lib/modern_treasury/models/transaction_update_params.rb +7 -6
  233. data/lib/modern_treasury/models/transactions/line_item_create_params.rb +6 -5
  234. data/lib/modern_treasury/models/transactions/line_item_delete_params.rb +5 -4
  235. data/lib/modern_treasury/models/transactions/line_item_list_params.rb +7 -6
  236. data/lib/modern_treasury/models/transactions/line_item_retrieve_params.rb +5 -4
  237. data/lib/modern_treasury/models/transactions/transaction_line_item.rb +23 -18
  238. data/lib/modern_treasury/models/validation_validate_routing_number_params.rb +12 -11
  239. data/lib/modern_treasury/models/virtual_account.rb +17 -14
  240. data/lib/modern_treasury/models/virtual_account_create_params.rb +52 -43
  241. data/lib/modern_treasury/models/virtual_account_delete_params.rb +5 -4
  242. data/lib/modern_treasury/models/virtual_account_list_params.rb +8 -7
  243. data/lib/modern_treasury/models/virtual_account_retrieve_params.rb +5 -4
  244. data/lib/modern_treasury/models/virtual_account_update_params.rb +6 -5
  245. data/lib/modern_treasury/models/wealth_and_employment_details.rb +22 -10
  246. data/lib/modern_treasury/request_options.rb +12 -44
  247. data/lib/modern_treasury/resources/account_collection_flows.rb +33 -36
  248. data/lib/modern_treasury/resources/account_details.rb +37 -42
  249. data/lib/modern_treasury/resources/bulk_requests.rb +27 -34
  250. data/lib/modern_treasury/resources/bulk_results.rb +20 -25
  251. data/lib/modern_treasury/resources/connection_legal_entities.rb +32 -33
  252. data/lib/modern_treasury/resources/connections.rb +11 -11
  253. data/lib/modern_treasury/resources/counterparties.rb +65 -104
  254. data/lib/modern_treasury/resources/documents.rb +25 -28
  255. data/lib/modern_treasury/resources/events.rb +20 -22
  256. data/lib/modern_treasury/resources/expected_payments.rb +77 -144
  257. data/lib/modern_treasury/resources/external_accounts.rb +73 -108
  258. data/lib/modern_treasury/resources/foreign_exchange_quotes.rb +32 -44
  259. data/lib/modern_treasury/resources/incoming_payment_details.rb +42 -61
  260. data/lib/modern_treasury/resources/internal_accounts/balance_reports.rb +37 -45
  261. data/lib/modern_treasury/resources/internal_accounts.rb +46 -65
  262. data/lib/modern_treasury/resources/invoices/line_items.rb +53 -79
  263. data/lib/modern_treasury/resources/invoices.rb +93 -194
  264. data/lib/modern_treasury/resources/ledger_account_balance_monitors.rb +40 -47
  265. data/lib/modern_treasury/resources/ledger_account_categories.rb +80 -104
  266. data/lib/modern_treasury/resources/ledger_account_settlements/account_entries.rb +16 -16
  267. data/lib/modern_treasury/resources/ledger_account_settlements.rb +45 -76
  268. data/lib/modern_treasury/resources/ledger_account_statements.rb +17 -21
  269. data/lib/modern_treasury/resources/ledger_accounts.rb +61 -106
  270. data/lib/modern_treasury/resources/ledger_entries.rb +44 -82
  271. data/lib/modern_treasury/resources/ledger_event_handlers.rb +35 -44
  272. data/lib/modern_treasury/resources/ledger_transactions/versions.rb +13 -20
  273. data/lib/modern_treasury/resources/ledger_transactions.rb +85 -160
  274. data/lib/modern_treasury/resources/ledgerable_events.rb +16 -16
  275. data/lib/modern_treasury/resources/ledgers.rb +40 -49
  276. data/lib/modern_treasury/resources/legal_entities.rb +80 -123
  277. data/lib/modern_treasury/resources/legal_entity_associations.rb +12 -15
  278. data/lib/modern_treasury/resources/line_items.rb +29 -33
  279. data/lib/modern_treasury/resources/paper_items.rb +18 -19
  280. data/lib/modern_treasury/resources/payment_flows.rb +38 -51
  281. data/lib/modern_treasury/resources/payment_orders/reversals.rb +27 -33
  282. data/lib/modern_treasury/resources/payment_orders.rb +154 -430
  283. data/lib/modern_treasury/resources/payment_references.rb +18 -20
  284. data/lib/modern_treasury/resources/returns.rb +30 -41
  285. data/lib/modern_treasury/resources/routing_details.rb +38 -46
  286. data/lib/modern_treasury/resources/transactions/line_items.rb +31 -32
  287. data/lib/modern_treasury/resources/transactions.rb +58 -89
  288. data/lib/modern_treasury/resources/validations.rb +9 -10
  289. data/lib/modern_treasury/resources/virtual_accounts.rb +49 -68
  290. data/lib/modern_treasury/version.rb +1 -1
  291. data/lib/modern_treasury.rb +34 -22
  292. data/manifest.yaml +1 -0
  293. data/rbi/lib/modern_treasury/client.rbi +12 -12
  294. data/rbi/lib/modern_treasury/errors.rbi +120 -121
  295. data/rbi/lib/modern_treasury/internal/page.rbi +30 -0
  296. data/rbi/lib/modern_treasury/internal/transport/base_client.rbi +199 -0
  297. data/rbi/lib/modern_treasury/internal/transport/pooled_net_requester.rbi +60 -0
  298. data/rbi/lib/modern_treasury/internal/type/array_of.rbi +85 -0
  299. data/rbi/lib/modern_treasury/internal/type/base_model.rbi +203 -0
  300. data/rbi/lib/modern_treasury/internal/type/base_page.rbi +36 -0
  301. data/rbi/lib/modern_treasury/internal/type/boolean.rbi +47 -0
  302. data/rbi/lib/modern_treasury/internal/type/converter.rbi +120 -0
  303. data/rbi/lib/modern_treasury/internal/type/enum.rbi +69 -0
  304. data/rbi/lib/modern_treasury/internal/type/hash_of.rbi +85 -0
  305. data/rbi/lib/modern_treasury/internal/type/io_like.rbi +46 -0
  306. data/rbi/lib/modern_treasury/internal/type/request_parameters.rbi +21 -0
  307. data/rbi/lib/modern_treasury/internal/type/union.rbi +77 -0
  308. data/rbi/lib/modern_treasury/internal/type/unknown.rbi +40 -0
  309. data/rbi/lib/modern_treasury/internal/util.rbi +300 -0
  310. data/rbi/lib/modern_treasury/internal.rbi +12 -0
  311. data/rbi/lib/modern_treasury/models/account_collection_flow.rbi +18 -24
  312. data/rbi/lib/modern_treasury/models/account_collection_flow_create_params.rbi +15 -12
  313. data/rbi/lib/modern_treasury/models/account_collection_flow_list_params.rbi +6 -9
  314. data/rbi/lib/modern_treasury/models/account_collection_flow_retrieve_params.rbi +6 -8
  315. data/rbi/lib/modern_treasury/models/account_collection_flow_update_params.rbi +11 -14
  316. data/rbi/lib/modern_treasury/models/account_detail.rbi +9 -13
  317. data/rbi/lib/modern_treasury/models/account_detail_create_params.rbi +14 -18
  318. data/rbi/lib/modern_treasury/models/account_detail_delete_params.rbi +9 -12
  319. data/rbi/lib/modern_treasury/models/account_detail_list_params.rbi +6 -8
  320. data/rbi/lib/modern_treasury/models/account_detail_retrieve_params.rbi +6 -8
  321. data/rbi/lib/modern_treasury/models/accounts_type.rbi +3 -4
  322. data/rbi/lib/modern_treasury/models/async_response.rbi +3 -5
  323. data/rbi/lib/modern_treasury/models/bank_settings.rbi +8 -11
  324. data/rbi/lib/modern_treasury/models/bulk_request.rbi +21 -23
  325. data/rbi/lib/modern_treasury/models/bulk_request_create_params.rbi +771 -837
  326. data/rbi/lib/modern_treasury/models/bulk_request_list_params.rbi +23 -25
  327. data/rbi/lib/modern_treasury/models/bulk_request_retrieve_params.rbi +6 -8
  328. data/rbi/lib/modern_treasury/models/bulk_result.rbi +48 -49
  329. data/rbi/lib/modern_treasury/models/bulk_result_list_params.rbi +24 -27
  330. data/rbi/lib/modern_treasury/models/bulk_result_retrieve_params.rbi +6 -8
  331. data/rbi/lib/modern_treasury/models/client_ping_params.rbi +6 -8
  332. data/rbi/lib/modern_treasury/models/connection.rbi +4 -7
  333. data/rbi/lib/modern_treasury/models/connection_legal_entity.rbi +7 -11
  334. data/rbi/lib/modern_treasury/models/connection_legal_entity_create_params.rbi +219 -174
  335. data/rbi/lib/modern_treasury/models/connection_legal_entity_list_params.rbi +9 -13
  336. data/rbi/lib/modern_treasury/models/connection_legal_entity_retrieve_params.rbi +6 -8
  337. data/rbi/lib/modern_treasury/models/connection_legal_entity_update_params.rbi +9 -12
  338. data/rbi/lib/modern_treasury/models/connection_list_params.rbi +12 -7
  339. data/rbi/lib/modern_treasury/models/counterparty.rbi +45 -61
  340. data/rbi/lib/modern_treasury/models/counterparty_collect_account_params.rbi +21 -24
  341. data/rbi/lib/modern_treasury/models/counterparty_collect_account_response.rbi +7 -9
  342. data/rbi/lib/modern_treasury/models/counterparty_create_params.rbi +334 -299
  343. data/rbi/lib/modern_treasury/models/counterparty_delete_params.rbi +6 -8
  344. data/rbi/lib/modern_treasury/models/counterparty_list_params.rbi +10 -13
  345. data/rbi/lib/modern_treasury/models/counterparty_retrieve_params.rbi +6 -8
  346. data/rbi/lib/modern_treasury/models/counterparty_update_params.rbi +8 -11
  347. data/rbi/lib/modern_treasury/models/currency.rbi +3 -4
  348. data/rbi/lib/modern_treasury/models/document.rbi +21 -30
  349. data/rbi/lib/modern_treasury/models/document_create_params.rbi +12 -15
  350. data/rbi/lib/modern_treasury/models/document_list_params.rbi +19 -15
  351. data/rbi/lib/modern_treasury/models/document_retrieve_params.rbi +6 -8
  352. data/rbi/lib/modern_treasury/models/event.rbi +15 -5
  353. data/rbi/lib/modern_treasury/models/event_list_params.rbi +6 -9
  354. data/rbi/lib/modern_treasury/models/event_retrieve_params.rbi +6 -8
  355. data/rbi/lib/modern_treasury/models/expected_payment.rbi +30 -35
  356. data/rbi/lib/modern_treasury/models/expected_payment_create_params.rbi +82 -94
  357. data/rbi/lib/modern_treasury/models/expected_payment_delete_params.rbi +6 -8
  358. data/rbi/lib/modern_treasury/models/expected_payment_list_params.rbi +16 -21
  359. data/rbi/lib/modern_treasury/models/expected_payment_retrieve_params.rbi +6 -8
  360. data/rbi/lib/modern_treasury/models/expected_payment_type.rbi +5 -5
  361. data/rbi/lib/modern_treasury/models/expected_payment_update_params.rbi +26 -31
  362. data/rbi/lib/modern_treasury/models/external_account.rbi +38 -45
  363. data/rbi/lib/modern_treasury/models/external_account_complete_verification_params.rbi +6 -8
  364. data/rbi/lib/modern_treasury/models/external_account_create_params.rbi +109 -82
  365. data/rbi/lib/modern_treasury/models/external_account_delete_params.rbi +6 -8
  366. data/rbi/lib/modern_treasury/models/external_account_list_params.rbi +8 -11
  367. data/rbi/lib/modern_treasury/models/external_account_retrieve_params.rbi +6 -8
  368. data/rbi/lib/modern_treasury/models/external_account_type.rbi +4 -4
  369. data/rbi/lib/modern_treasury/models/external_account_update_params.rbi +22 -22
  370. data/rbi/lib/modern_treasury/models/external_account_verify_params.rbi +22 -28
  371. data/rbi/lib/modern_treasury/models/external_account_verify_response.rbi +22 -26
  372. data/rbi/lib/modern_treasury/models/foreign_exchange_quote.rbi +30 -20
  373. data/rbi/lib/modern_treasury/models/foreign_exchange_quote_create_params.rbi +8 -11
  374. data/rbi/lib/modern_treasury/models/foreign_exchange_quote_list_params.rbi +8 -11
  375. data/rbi/lib/modern_treasury/models/foreign_exchange_quote_retrieve_params.rbi +6 -8
  376. data/rbi/lib/modern_treasury/models/incoming_payment_detail.rbi +45 -36
  377. data/rbi/lib/modern_treasury/models/incoming_payment_detail_create_async_params.rbi +37 -20
  378. data/rbi/lib/modern_treasury/models/incoming_payment_detail_list_params.rbi +25 -26
  379. data/rbi/lib/modern_treasury/models/incoming_payment_detail_retrieve_params.rbi +6 -8
  380. data/rbi/lib/modern_treasury/models/incoming_payment_detail_update_params.rbi +7 -9
  381. data/rbi/lib/modern_treasury/models/internal_account.rbi +22 -30
  382. data/rbi/lib/modern_treasury/models/internal_account_create_params.rbi +23 -23
  383. data/rbi/lib/modern_treasury/models/internal_account_list_params.rbi +11 -15
  384. data/rbi/lib/modern_treasury/models/internal_account_retrieve_params.rbi +6 -8
  385. data/rbi/lib/modern_treasury/models/internal_account_update_params.rbi +7 -10
  386. data/rbi/lib/modern_treasury/models/internal_accounts/balance_report.rbi +38 -34
  387. data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_create_params.rbi +30 -34
  388. data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_delete_params.rbi +6 -8
  389. data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_list_params.rbi +17 -12
  390. data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbi +6 -8
  391. data/rbi/lib/modern_treasury/models/invoice.rbi +56 -70
  392. data/rbi/lib/modern_treasury/models/invoice_add_payment_order_params.rbi +6 -11
  393. data/rbi/lib/modern_treasury/models/invoice_create_params.rbi +72 -88
  394. data/rbi/lib/modern_treasury/models/invoice_list_params.rbi +11 -15
  395. data/rbi/lib/modern_treasury/models/invoice_retrieve_params.rbi +6 -8
  396. data/rbi/lib/modern_treasury/models/invoice_update_params.rbi +72 -88
  397. data/rbi/lib/modern_treasury/models/invoices/invoice_line_item.rbi +12 -15
  398. data/rbi/lib/modern_treasury/models/invoices/line_item_create_params.rbi +13 -16
  399. data/rbi/lib/modern_treasury/models/invoices/line_item_delete_params.rbi +6 -8
  400. data/rbi/lib/modern_treasury/models/invoices/line_item_list_params.rbi +6 -8
  401. data/rbi/lib/modern_treasury/models/invoices/line_item_retrieve_params.rbi +6 -8
  402. data/rbi/lib/modern_treasury/models/invoices/line_item_update_params.rbi +13 -16
  403. data/rbi/lib/modern_treasury/models/ledger.rbi +15 -6
  404. data/rbi/lib/modern_treasury/models/ledger_account.rbi +57 -62
  405. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor.rbi +55 -64
  406. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_create_params.rbi +23 -20
  407. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_delete_params.rbi +6 -8
  408. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_list_params.rbi +16 -10
  409. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_retrieve_params.rbi +6 -8
  410. data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_update_params.rbi +7 -9
  411. data/rbi/lib/modern_treasury/models/ledger_account_category.rbi +39 -50
  412. data/rbi/lib/modern_treasury/models/ledger_account_category_add_ledger_account_params.rbi +6 -11
  413. data/rbi/lib/modern_treasury/models/ledger_account_category_add_nested_category_params.rbi +6 -11
  414. data/rbi/lib/modern_treasury/models/ledger_account_category_create_params.rbi +8 -11
  415. data/rbi/lib/modern_treasury/models/ledger_account_category_delete_params.rbi +6 -8
  416. data/rbi/lib/modern_treasury/models/ledger_account_category_list_params.rbi +25 -24
  417. data/rbi/lib/modern_treasury/models/ledger_account_category_remove_ledger_account_params.rbi +6 -11
  418. data/rbi/lib/modern_treasury/models/ledger_account_category_remove_nested_category_params.rbi +6 -11
  419. data/rbi/lib/modern_treasury/models/ledger_account_category_retrieve_params.rbi +15 -19
  420. data/rbi/lib/modern_treasury/models/ledger_account_category_update_params.rbi +7 -9
  421. data/rbi/lib/modern_treasury/models/ledger_account_create_params.rbi +16 -20
  422. data/rbi/lib/modern_treasury/models/ledger_account_delete_params.rbi +6 -8
  423. data/rbi/lib/modern_treasury/models/ledger_account_list_params.rbi +59 -58
  424. data/rbi/lib/modern_treasury/models/ledger_account_retrieve_params.rbi +21 -26
  425. data/rbi/lib/modern_treasury/models/ledger_account_settlement.rbi +14 -18
  426. data/rbi/lib/modern_treasury/models/ledger_account_settlement_create_params.rbi +19 -23
  427. data/rbi/lib/modern_treasury/models/ledger_account_settlement_list_params.rbi +13 -16
  428. data/rbi/lib/modern_treasury/models/ledger_account_settlement_retrieve_params.rbi +6 -8
  429. data/rbi/lib/modern_treasury/models/ledger_account_settlement_update_params.rbi +12 -15
  430. data/rbi/lib/modern_treasury/models/ledger_account_settlements/account_entry_delete_params.rbi +13 -17
  431. data/rbi/lib/modern_treasury/models/ledger_account_settlements/account_entry_update_params.rbi +7 -9
  432. data/rbi/lib/modern_treasury/models/ledger_account_statement_create_params.rbi +10 -13
  433. data/rbi/lib/modern_treasury/models/ledger_account_statement_create_response.rbi +76 -95
  434. data/rbi/lib/modern_treasury/models/ledger_account_statement_retrieve_params.rbi +6 -8
  435. data/rbi/lib/modern_treasury/models/ledger_account_statement_retrieve_response.rbi +76 -95
  436. data/rbi/lib/modern_treasury/models/ledger_account_update_params.rbi +7 -9
  437. data/rbi/lib/modern_treasury/models/ledger_create_params.rbi +7 -9
  438. data/rbi/lib/modern_treasury/models/ledger_delete_params.rbi +6 -8
  439. data/rbi/lib/modern_treasury/models/ledger_entry.rbi +62 -67
  440. data/rbi/lib/modern_treasury/models/ledger_entry_list_params.rbi +43 -51
  441. data/rbi/lib/modern_treasury/models/ledger_entry_retrieve_params.rbi +7 -9
  442. data/rbi/lib/modern_treasury/models/ledger_entry_update_params.rbi +7 -9
  443. data/rbi/lib/modern_treasury/models/ledger_event_handler.rbi +28 -33
  444. data/rbi/lib/modern_treasury/models/ledger_event_handler_create_params.rbi +32 -35
  445. data/rbi/lib/modern_treasury/models/ledger_event_handler_delete_params.rbi +6 -8
  446. data/rbi/lib/modern_treasury/models/ledger_event_handler_list_params.rbi +17 -11
  447. data/rbi/lib/modern_treasury/models/ledger_event_handler_retrieve_params.rbi +6 -8
  448. data/rbi/lib/modern_treasury/models/ledger_event_handler_variable.rbi +9 -13
  449. data/rbi/lib/modern_treasury/models/ledger_list_params.rbi +18 -12
  450. data/rbi/lib/modern_treasury/models/ledger_retrieve_params.rbi +6 -8
  451. data/rbi/lib/modern_treasury/models/ledger_transaction.rbi +23 -28
  452. data/rbi/lib/modern_treasury/models/ledger_transaction_create_params.rbi +47 -50
  453. data/rbi/lib/modern_treasury/models/ledger_transaction_create_partial_post_params.rbi +36 -33
  454. data/rbi/lib/modern_treasury/models/ledger_transaction_create_reversal_params.rbi +27 -26
  455. data/rbi/lib/modern_treasury/models/ledger_transaction_list_params.rbi +53 -48
  456. data/rbi/lib/modern_treasury/models/ledger_transaction_retrieve_params.rbi +6 -8
  457. data/rbi/lib/modern_treasury/models/ledger_transaction_update_params.rbi +51 -49
  458. data/rbi/lib/modern_treasury/models/ledger_transactions/ledger_transaction_version.rbi +86 -95
  459. data/rbi/lib/modern_treasury/models/ledger_transactions/version_list_params.rbi +11 -14
  460. data/rbi/lib/modern_treasury/models/ledger_update_params.rbi +7 -9
  461. data/rbi/lib/modern_treasury/models/ledgerable_event.rbi +5 -8
  462. data/rbi/lib/modern_treasury/models/ledgerable_event_create_params.rbi +7 -9
  463. data/rbi/lib/modern_treasury/models/ledgerable_event_retrieve_params.rbi +6 -8
  464. data/rbi/lib/modern_treasury/models/legal_entity.rbi +73 -54
  465. data/rbi/lib/modern_treasury/models/legal_entity_association.rbi +94 -72
  466. data/rbi/lib/modern_treasury/models/legal_entity_association_create_params.rbi +110 -87
  467. data/rbi/lib/modern_treasury/models/legal_entity_compliance_detail.rbi +103 -0
  468. data/rbi/lib/modern_treasury/models/legal_entity_create_params.rbi +183 -144
  469. data/rbi/lib/modern_treasury/models/legal_entity_industry_classification.rbi +136 -0
  470. data/rbi/lib/modern_treasury/models/legal_entity_list_params.rbi +11 -15
  471. data/rbi/lib/modern_treasury/models/legal_entity_retrieve_params.rbi +6 -8
  472. data/rbi/lib/modern_treasury/models/legal_entity_update_params.rbi +74 -52
  473. data/rbi/lib/modern_treasury/models/line_item.rbi +24 -26
  474. data/rbi/lib/modern_treasury/models/line_item_list_params.rbi +9 -12
  475. data/rbi/lib/modern_treasury/models/line_item_retrieve_params.rbi +9 -12
  476. data/rbi/lib/modern_treasury/models/line_item_update_params.rbi +10 -13
  477. data/rbi/lib/modern_treasury/models/paper_item.rbi +10 -13
  478. data/rbi/lib/modern_treasury/models/paper_item_list_params.rbi +7 -10
  479. data/rbi/lib/modern_treasury/models/paper_item_retrieve_params.rbi +6 -8
  480. data/rbi/lib/modern_treasury/models/payment_flow.rbi +37 -42
  481. data/rbi/lib/modern_treasury/models/payment_flow_create_params.rbi +15 -19
  482. data/rbi/lib/modern_treasury/models/payment_flow_list_params.rbi +6 -9
  483. data/rbi/lib/modern_treasury/models/payment_flow_retrieve_params.rbi +6 -8
  484. data/rbi/lib/modern_treasury/models/payment_flow_update_params.rbi +11 -14
  485. data/rbi/lib/modern_treasury/models/payment_order.rbi +162 -132
  486. data/rbi/lib/modern_treasury/models/payment_order_create_async_params.rbi +243 -267
  487. data/rbi/lib/modern_treasury/models/payment_order_create_params.rbi +285 -285
  488. data/rbi/lib/modern_treasury/models/payment_order_list_params.rbi +21 -27
  489. data/rbi/lib/modern_treasury/models/payment_order_retrieve_params.rbi +6 -8
  490. data/rbi/lib/modern_treasury/models/payment_order_subtype.rbi +7 -7
  491. data/rbi/lib/modern_treasury/models/payment_order_type.rbi +5 -6
  492. data/rbi/lib/modern_treasury/models/payment_order_update_params.rbi +216 -225
  493. data/rbi/lib/modern_treasury/models/payment_orders/reversal.rbi +11 -16
  494. data/rbi/lib/modern_treasury/models/payment_orders/reversal_create_params.rbi +63 -72
  495. data/rbi/lib/modern_treasury/models/payment_orders/reversal_list_params.rbi +6 -8
  496. data/rbi/lib/modern_treasury/models/payment_orders/reversal_retrieve_params.rbi +6 -8
  497. data/rbi/lib/modern_treasury/models/payment_reference.rbi +25 -18
  498. data/rbi/lib/modern_treasury/models/payment_reference_list_params.rbi +12 -16
  499. data/rbi/lib/modern_treasury/models/payment_reference_retireve_params.rbi +6 -8
  500. data/rbi/lib/modern_treasury/models/payment_reference_retrieve_params.rbi +6 -8
  501. data/rbi/lib/modern_treasury/models/ping_response.rbi +3 -5
  502. data/rbi/lib/modern_treasury/models/reconciliation_rule.rbi +16 -20
  503. data/rbi/lib/modern_treasury/models/return_create_params.rbi +38 -35
  504. data/rbi/lib/modern_treasury/models/return_list_params.rbi +13 -17
  505. data/rbi/lib/modern_treasury/models/return_object.rbi +91 -61
  506. data/rbi/lib/modern_treasury/models/return_retrieve_params.rbi +6 -8
  507. data/rbi/lib/modern_treasury/models/routing_detail.rbi +22 -30
  508. data/rbi/lib/modern_treasury/models/routing_detail_create_params.rbi +27 -25
  509. data/rbi/lib/modern_treasury/models/routing_detail_delete_params.rbi +9 -12
  510. data/rbi/lib/modern_treasury/models/routing_detail_list_params.rbi +6 -8
  511. data/rbi/lib/modern_treasury/models/routing_detail_retrieve_params.rbi +6 -8
  512. data/rbi/lib/modern_treasury/models/routing_number_lookup_request.rbi +34 -30
  513. data/rbi/lib/modern_treasury/models/transaction.rbi +56 -48
  514. data/rbi/lib/modern_treasury/models/transaction_create_params.rbi +18 -22
  515. data/rbi/lib/modern_treasury/models/transaction_delete_params.rbi +6 -8
  516. data/rbi/lib/modern_treasury/models/transaction_direction.rbi +4 -4
  517. data/rbi/lib/modern_treasury/models/transaction_list_params.rbi +12 -15
  518. data/rbi/lib/modern_treasury/models/transaction_retrieve_params.rbi +6 -8
  519. data/rbi/lib/modern_treasury/models/transaction_update_params.rbi +7 -9
  520. data/rbi/lib/modern_treasury/models/transactions/line_item_create_params.rbi +7 -9
  521. data/rbi/lib/modern_treasury/models/transactions/line_item_delete_params.rbi +6 -8
  522. data/rbi/lib/modern_treasury/models/transactions/line_item_list_params.rbi +16 -11
  523. data/rbi/lib/modern_treasury/models/transactions/line_item_retrieve_params.rbi +6 -8
  524. data/rbi/lib/modern_treasury/models/transactions/transaction_line_item.rbi +27 -26
  525. data/rbi/lib/modern_treasury/models/validation_validate_routing_number_params.rbi +15 -17
  526. data/rbi/lib/modern_treasury/models/virtual_account.rbi +13 -16
  527. data/rbi/lib/modern_treasury/models/virtual_account_create_params.rbi +83 -67
  528. data/rbi/lib/modern_treasury/models/virtual_account_delete_params.rbi +6 -8
  529. data/rbi/lib/modern_treasury/models/virtual_account_list_params.rbi +8 -11
  530. data/rbi/lib/modern_treasury/models/virtual_account_retrieve_params.rbi +6 -8
  531. data/rbi/lib/modern_treasury/models/virtual_account_update_params.rbi +12 -7
  532. data/rbi/lib/modern_treasury/models/wealth_and_employment_details.rbi +22 -31
  533. data/rbi/lib/modern_treasury/request_options.rbi +11 -28
  534. data/rbi/lib/modern_treasury/resources/account_collection_flows.rbi +12 -20
  535. data/rbi/lib/modern_treasury/resources/account_details.rbi +12 -20
  536. data/rbi/lib/modern_treasury/resources/bulk_requests.rbi +25 -31
  537. data/rbi/lib/modern_treasury/resources/bulk_results.rbi +10 -14
  538. data/rbi/lib/modern_treasury/resources/connection_legal_entities.rbi +12 -20
  539. data/rbi/lib/modern_treasury/resources/connections.rbi +5 -7
  540. data/rbi/lib/modern_treasury/resources/counterparties.rbi +38 -50
  541. data/rbi/lib/modern_treasury/resources/documents.rbi +12 -18
  542. data/rbi/lib/modern_treasury/resources/events.rbi +7 -11
  543. data/rbi/lib/modern_treasury/resources/expected_payments.rbi +47 -57
  544. data/rbi/lib/modern_treasury/resources/external_accounts.rbi +62 -52
  545. data/rbi/lib/modern_treasury/resources/foreign_exchange_quotes.rbi +13 -19
  546. data/rbi/lib/modern_treasury/resources/incoming_payment_details.rbi +25 -29
  547. data/rbi/lib/modern_treasury/resources/internal_accounts/balance_reports.rbi +39 -27
  548. data/rbi/lib/modern_treasury/resources/internal_accounts.rbi +20 -25
  549. data/rbi/lib/modern_treasury/resources/invoices/line_items.rbi +52 -37
  550. data/rbi/lib/modern_treasury/resources/invoices.rbi +71 -81
  551. data/rbi/lib/modern_treasury/resources/ledger_account_balance_monitors.rbi +19 -29
  552. data/rbi/lib/modern_treasury/resources/ledger_account_categories.rbi +37 -52
  553. data/rbi/lib/modern_treasury/resources/ledger_account_settlements/account_entries.rbi +19 -13
  554. data/rbi/lib/modern_treasury/resources/ledger_account_settlements.rbi +29 -37
  555. data/rbi/lib/modern_treasury/resources/ledger_account_statements.rbi +10 -14
  556. data/rbi/lib/modern_treasury/resources/ledger_accounts.rbi +47 -54
  557. data/rbi/lib/modern_treasury/resources/ledger_entries.rbi +32 -38
  558. data/rbi/lib/modern_treasury/resources/ledger_event_handlers.rbi +22 -27
  559. data/rbi/lib/modern_treasury/resources/ledger_transactions/versions.rbi +17 -12
  560. data/rbi/lib/modern_treasury/resources/ledger_transactions.rbi +71 -73
  561. data/rbi/lib/modern_treasury/resources/ledgerable_events.rbi +7 -11
  562. data/rbi/lib/modern_treasury/resources/ledgers.rbi +20 -30
  563. data/rbi/lib/modern_treasury/resources/legal_entities.rbi +39 -37
  564. data/rbi/lib/modern_treasury/resources/legal_entity_associations.rbi +6 -8
  565. data/rbi/lib/modern_treasury/resources/line_items.rbi +10 -16
  566. data/rbi/lib/modern_treasury/resources/paper_items.rbi +8 -12
  567. data/rbi/lib/modern_treasury/resources/payment_flows.rbi +17 -25
  568. data/rbi/lib/modern_treasury/resources/payment_orders/reversals.rbi +30 -21
  569. data/rbi/lib/modern_treasury/resources/payment_orders.rbi +201 -198
  570. data/rbi/lib/modern_treasury/resources/payment_references.rbi +9 -13
  571. data/rbi/lib/modern_treasury/resources/returns.rbi +19 -22
  572. data/rbi/lib/modern_treasury/resources/routing_details.rbi +14 -22
  573. data/rbi/lib/modern_treasury/resources/transactions/line_items.rbi +31 -17
  574. data/rbi/lib/modern_treasury/resources/transactions.rbi +28 -38
  575. data/rbi/lib/modern_treasury/resources/validations.rbi +8 -10
  576. data/rbi/lib/modern_treasury/resources/virtual_accounts.rbi +38 -35
  577. data/rbi/lib/modern_treasury/version.rbi +1 -1
  578. data/sig/modern_treasury/client.rbs +2 -2
  579. data/sig/modern_treasury/errors.rbs +98 -96
  580. data/sig/modern_treasury/internal/page.rbs +19 -0
  581. data/sig/modern_treasury/internal/transport/base_client.rbs +110 -0
  582. data/sig/modern_treasury/internal/transport/pooled_net_requester.rbs +41 -0
  583. data/sig/modern_treasury/internal/type/array_of.rbs +43 -0
  584. data/sig/modern_treasury/internal/type/base_model.rbs +86 -0
  585. data/sig/modern_treasury/internal/type/base_page.rbs +24 -0
  586. data/sig/modern_treasury/internal/type/boolean.rbs +23 -0
  587. data/sig/modern_treasury/internal/type/converter.rbs +54 -0
  588. data/sig/modern_treasury/internal/type/enum.rbs +29 -0
  589. data/sig/modern_treasury/internal/type/hash_of.rbs +43 -0
  590. data/sig/modern_treasury/internal/type/io_like.rbs +23 -0
  591. data/sig/modern_treasury/internal/type/request_parameters.rbs +16 -0
  592. data/sig/modern_treasury/internal/type/union.rbs +47 -0
  593. data/sig/modern_treasury/internal/type/unknown.rbs +23 -0
  594. data/sig/modern_treasury/internal/util.rbs +156 -0
  595. data/sig/modern_treasury/internal.rbs +5 -0
  596. data/sig/modern_treasury/models/account_collection_flow.rbs +4 -4
  597. data/sig/modern_treasury/models/account_collection_flow_create_params.rbs +5 -5
  598. data/sig/modern_treasury/models/account_collection_flow_list_params.rbs +4 -4
  599. data/sig/modern_treasury/models/account_collection_flow_retrieve_params.rbs +4 -4
  600. data/sig/modern_treasury/models/account_collection_flow_update_params.rbs +5 -5
  601. data/sig/modern_treasury/models/account_detail.rbs +2 -2
  602. data/sig/modern_treasury/models/account_detail_create_params.rbs +6 -6
  603. data/sig/modern_treasury/models/account_detail_delete_params.rbs +5 -5
  604. data/sig/modern_treasury/models/account_detail_list_params.rbs +4 -4
  605. data/sig/modern_treasury/models/account_detail_retrieve_params.rbs +4 -4
  606. data/sig/modern_treasury/models/accounts_type.rbs +1 -1
  607. data/sig/modern_treasury/models/async_response.rbs +1 -1
  608. data/sig/modern_treasury/models/bank_settings.rbs +1 -1
  609. data/sig/modern_treasury/models/bulk_request.rbs +13 -6
  610. data/sig/modern_treasury/models/bulk_request_create_params.rbs +83 -76
  611. data/sig/modern_treasury/models/bulk_request_list_params.rbs +16 -9
  612. data/sig/modern_treasury/models/bulk_request_retrieve_params.rbs +4 -4
  613. data/sig/modern_treasury/models/bulk_result.rbs +13 -9
  614. data/sig/modern_treasury/models/bulk_result_list_params.rbs +13 -9
  615. data/sig/modern_treasury/models/bulk_result_retrieve_params.rbs +5 -4
  616. data/sig/modern_treasury/models/client_ping_params.rbs +5 -4
  617. data/sig/modern_treasury/models/connection.rbs +1 -1
  618. data/sig/modern_treasury/models/connection_legal_entity.rbs +2 -2
  619. data/sig/modern_treasury/models/connection_legal_entity_create_params.rbs +48 -24
  620. data/sig/modern_treasury/models/connection_legal_entity_list_params.rbs +5 -5
  621. data/sig/modern_treasury/models/connection_legal_entity_retrieve_params.rbs +4 -4
  622. data/sig/modern_treasury/models/connection_legal_entity_update_params.rbs +5 -5
  623. data/sig/modern_treasury/models/connection_list_params.rbs +4 -4
  624. data/sig/modern_treasury/models/counterparty.rbs +9 -9
  625. data/sig/modern_treasury/models/counterparty_collect_account_params.rbs +7 -7
  626. data/sig/modern_treasury/models/counterparty_collect_account_response.rbs +1 -1
  627. data/sig/modern_treasury/models/counterparty_create_params.rbs +64 -40
  628. data/sig/modern_treasury/models/counterparty_delete_params.rbs +5 -4
  629. data/sig/modern_treasury/models/counterparty_list_params.rbs +4 -4
  630. data/sig/modern_treasury/models/counterparty_retrieve_params.rbs +4 -4
  631. data/sig/modern_treasury/models/counterparty_update_params.rbs +4 -4
  632. data/sig/modern_treasury/models/currency.rbs +1 -1
  633. data/sig/modern_treasury/models/document.rbs +4 -4
  634. data/sig/modern_treasury/models/document_create_params.rbs +8 -8
  635. data/sig/modern_treasury/models/document_list_params.rbs +5 -5
  636. data/sig/modern_treasury/models/document_retrieve_params.rbs +5 -4
  637. data/sig/modern_treasury/models/event.rbs +1 -1
  638. data/sig/modern_treasury/models/event_list_params.rbs +4 -4
  639. data/sig/modern_treasury/models/event_retrieve_params.rbs +5 -4
  640. data/sig/modern_treasury/models/expected_payment.rbs +4 -4
  641. data/sig/modern_treasury/models/expected_payment_create_params.rbs +10 -10
  642. data/sig/modern_treasury/models/expected_payment_delete_params.rbs +4 -4
  643. data/sig/modern_treasury/models/expected_payment_list_params.rbs +6 -6
  644. data/sig/modern_treasury/models/expected_payment_retrieve_params.rbs +4 -4
  645. data/sig/modern_treasury/models/expected_payment_type.rbs +1 -1
  646. data/sig/modern_treasury/models/expected_payment_update_params.rbs +6 -6
  647. data/sig/modern_treasury/models/external_account.rbs +7 -7
  648. data/sig/modern_treasury/models/external_account_complete_verification_params.rbs +5 -4
  649. data/sig/modern_treasury/models/external_account_create_params.rbs +15 -15
  650. data/sig/modern_treasury/models/external_account_delete_params.rbs +4 -4
  651. data/sig/modern_treasury/models/external_account_list_params.rbs +4 -4
  652. data/sig/modern_treasury/models/external_account_retrieve_params.rbs +4 -4
  653. data/sig/modern_treasury/models/external_account_type.rbs +1 -1
  654. data/sig/modern_treasury/models/external_account_update_params.rbs +6 -6
  655. data/sig/modern_treasury/models/external_account_verify_params.rbs +7 -7
  656. data/sig/modern_treasury/models/external_account_verify_response.rbs +5 -5
  657. data/sig/modern_treasury/models/foreign_exchange_quote.rbs +2 -2
  658. data/sig/modern_treasury/models/foreign_exchange_quote_create_params.rbs +4 -4
  659. data/sig/modern_treasury/models/foreign_exchange_quote_list_params.rbs +4 -4
  660. data/sig/modern_treasury/models/foreign_exchange_quote_retrieve_params.rbs +4 -4
  661. data/sig/modern_treasury/models/incoming_payment_detail.rbs +22 -6
  662. data/sig/modern_treasury/models/incoming_payment_detail_create_async_params.rbs +27 -7
  663. data/sig/modern_treasury/models/incoming_payment_detail_list_params.rbs +23 -7
  664. data/sig/modern_treasury/models/incoming_payment_detail_retrieve_params.rbs +4 -4
  665. data/sig/modern_treasury/models/incoming_payment_detail_update_params.rbs +5 -4
  666. data/sig/modern_treasury/models/internal_account.rbs +4 -4
  667. data/sig/modern_treasury/models/internal_account_create_params.rbs +6 -6
  668. data/sig/modern_treasury/models/internal_account_list_params.rbs +5 -5
  669. data/sig/modern_treasury/models/internal_account_retrieve_params.rbs +4 -4
  670. data/sig/modern_treasury/models/internal_account_update_params.rbs +4 -4
  671. data/sig/modern_treasury/models/internal_accounts/balance_report.rbs +4 -4
  672. data/sig/modern_treasury/models/internal_accounts/balance_report_create_params.rbs +7 -7
  673. data/sig/modern_treasury/models/internal_accounts/balance_report_delete_params.rbs +5 -4
  674. data/sig/modern_treasury/models/internal_accounts/balance_report_list_params.rbs +5 -5
  675. data/sig/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbs +5 -4
  676. data/sig/modern_treasury/models/invoice.rbs +9 -9
  677. data/sig/modern_treasury/models/invoice_add_payment_order_params.rbs +4 -4
  678. data/sig/modern_treasury/models/invoice_create_params.rbs +11 -11
  679. data/sig/modern_treasury/models/invoice_list_params.rbs +5 -5
  680. data/sig/modern_treasury/models/invoice_retrieve_params.rbs +5 -4
  681. data/sig/modern_treasury/models/invoice_update_params.rbs +11 -11
  682. data/sig/modern_treasury/models/invoices/invoice_line_item.rbs +1 -1
  683. data/sig/modern_treasury/models/invoices/line_item_create_params.rbs +4 -4
  684. data/sig/modern_treasury/models/invoices/line_item_delete_params.rbs +5 -4
  685. data/sig/modern_treasury/models/invoices/line_item_list_params.rbs +4 -4
  686. data/sig/modern_treasury/models/invoices/line_item_retrieve_params.rbs +5 -4
  687. data/sig/modern_treasury/models/invoices/line_item_update_params.rbs +4 -4
  688. data/sig/modern_treasury/models/ledger.rbs +1 -1
  689. data/sig/modern_treasury/models/ledger_account.rbs +6 -6
  690. data/sig/modern_treasury/models/ledger_account_balance_monitor.rbs +7 -7
  691. data/sig/modern_treasury/models/ledger_account_balance_monitor_create_params.rbs +5 -5
  692. data/sig/modern_treasury/models/ledger_account_balance_monitor_delete_params.rbs +4 -4
  693. data/sig/modern_treasury/models/ledger_account_balance_monitor_list_params.rbs +4 -4
  694. data/sig/modern_treasury/models/ledger_account_balance_monitor_retrieve_params.rbs +4 -4
  695. data/sig/modern_treasury/models/ledger_account_balance_monitor_update_params.rbs +4 -4
  696. data/sig/modern_treasury/models/ledger_account_category.rbs +5 -5
  697. data/sig/modern_treasury/models/ledger_account_category_add_ledger_account_params.rbs +4 -4
  698. data/sig/modern_treasury/models/ledger_account_category_add_nested_category_params.rbs +4 -4
  699. data/sig/modern_treasury/models/ledger_account_category_create_params.rbs +4 -4
  700. data/sig/modern_treasury/models/ledger_account_category_delete_params.rbs +4 -4
  701. data/sig/modern_treasury/models/ledger_account_category_list_params.rbs +5 -5
  702. data/sig/modern_treasury/models/ledger_account_category_remove_ledger_account_params.rbs +4 -4
  703. data/sig/modern_treasury/models/ledger_account_category_remove_nested_category_params.rbs +4 -4
  704. data/sig/modern_treasury/models/ledger_account_category_retrieve_params.rbs +5 -5
  705. data/sig/modern_treasury/models/ledger_account_category_update_params.rbs +4 -4
  706. data/sig/modern_treasury/models/ledger_account_create_params.rbs +5 -5
  707. data/sig/modern_treasury/models/ledger_account_delete_params.rbs +4 -4
  708. data/sig/modern_treasury/models/ledger_account_list_params.rbs +8 -8
  709. data/sig/modern_treasury/models/ledger_account_retrieve_params.rbs +5 -5
  710. data/sig/modern_treasury/models/ledger_account_settlement.rbs +2 -2
  711. data/sig/modern_treasury/models/ledger_account_settlement_create_params.rbs +5 -5
  712. data/sig/modern_treasury/models/ledger_account_settlement_list_params.rbs +4 -4
  713. data/sig/modern_treasury/models/ledger_account_settlement_retrieve_params.rbs +4 -4
  714. data/sig/modern_treasury/models/ledger_account_settlement_update_params.rbs +5 -5
  715. data/sig/modern_treasury/models/ledger_account_settlements/account_entry_delete_params.rbs +7 -6
  716. data/sig/modern_treasury/models/ledger_account_settlements/account_entry_update_params.rbs +4 -4
  717. data/sig/modern_treasury/models/ledger_account_statement_create_params.rbs +4 -4
  718. data/sig/modern_treasury/models/ledger_account_statement_create_response.rbs +9 -9
  719. data/sig/modern_treasury/models/ledger_account_statement_retrieve_params.rbs +4 -4
  720. data/sig/modern_treasury/models/ledger_account_statement_retrieve_response.rbs +9 -9
  721. data/sig/modern_treasury/models/ledger_account_update_params.rbs +4 -4
  722. data/sig/modern_treasury/models/ledger_create_params.rbs +4 -4
  723. data/sig/modern_treasury/models/ledger_delete_params.rbs +5 -4
  724. data/sig/modern_treasury/models/ledger_entry.rbs +6 -6
  725. data/sig/modern_treasury/models/ledger_entry_list_params.rbs +8 -8
  726. data/sig/modern_treasury/models/ledger_entry_retrieve_params.rbs +5 -4
  727. data/sig/modern_treasury/models/ledger_entry_update_params.rbs +5 -4
  728. data/sig/modern_treasury/models/ledger_event_handler.rbs +4 -4
  729. data/sig/modern_treasury/models/ledger_event_handler_create_params.rbs +7 -7
  730. data/sig/modern_treasury/models/ledger_event_handler_delete_params.rbs +4 -4
  731. data/sig/modern_treasury/models/ledger_event_handler_list_params.rbs +4 -4
  732. data/sig/modern_treasury/models/ledger_event_handler_retrieve_params.rbs +4 -4
  733. data/sig/modern_treasury/models/ledger_event_handler_variable.rbs +2 -2
  734. data/sig/modern_treasury/models/ledger_list_params.rbs +4 -4
  735. data/sig/modern_treasury/models/ledger_retrieve_params.rbs +5 -4
  736. data/sig/modern_treasury/models/ledger_transaction.rbs +3 -3
  737. data/sig/modern_treasury/models/ledger_transaction_create_params.rbs +7 -7
  738. data/sig/modern_treasury/models/ledger_transaction_create_partial_post_params.rbs +6 -6
  739. data/sig/modern_treasury/models/ledger_transaction_create_reversal_params.rbs +6 -6
  740. data/sig/modern_treasury/models/ledger_transaction_list_params.rbs +9 -9
  741. data/sig/modern_treasury/models/ledger_transaction_retrieve_params.rbs +4 -4
  742. data/sig/modern_treasury/models/ledger_transaction_update_params.rbs +7 -7
  743. data/sig/modern_treasury/models/ledger_transactions/ledger_transaction_version.rbs +9 -9
  744. data/sig/modern_treasury/models/ledger_transactions/version_list_params.rbs +4 -4
  745. data/sig/modern_treasury/models/ledger_update_params.rbs +4 -4
  746. data/sig/modern_treasury/models/ledgerable_event.rbs +1 -1
  747. data/sig/modern_treasury/models/ledgerable_event_create_params.rbs +4 -4
  748. data/sig/modern_treasury/models/ledgerable_event_retrieve_params.rbs +4 -4
  749. data/sig/modern_treasury/models/legal_entity.rbs +17 -9
  750. data/sig/modern_treasury/models/legal_entity_association.rbs +19 -11
  751. data/sig/modern_treasury/models/legal_entity_association_create_params.rbs +26 -14
  752. data/sig/modern_treasury/models/legal_entity_compliance_detail.rbs +62 -0
  753. data/sig/modern_treasury/models/legal_entity_create_params.rbs +47 -23
  754. data/sig/modern_treasury/models/legal_entity_industry_classification.rbs +85 -0
  755. data/sig/modern_treasury/models/legal_entity_list_params.rbs +5 -5
  756. data/sig/modern_treasury/models/legal_entity_retrieve_params.rbs +4 -4
  757. data/sig/modern_treasury/models/legal_entity_update_params.rbs +23 -11
  758. data/sig/modern_treasury/models/line_item.rbs +3 -3
  759. data/sig/modern_treasury/models/line_item_list_params.rbs +5 -5
  760. data/sig/modern_treasury/models/line_item_retrieve_params.rbs +5 -5
  761. data/sig/modern_treasury/models/line_item_update_params.rbs +5 -5
  762. data/sig/modern_treasury/models/paper_item.rbs +2 -2
  763. data/sig/modern_treasury/models/paper_item_list_params.rbs +4 -4
  764. data/sig/modern_treasury/models/paper_item_retrieve_params.rbs +5 -4
  765. data/sig/modern_treasury/models/payment_flow.rbs +5 -5
  766. data/sig/modern_treasury/models/payment_flow_create_params.rbs +5 -5
  767. data/sig/modern_treasury/models/payment_flow_list_params.rbs +4 -4
  768. data/sig/modern_treasury/models/payment_flow_retrieve_params.rbs +4 -4
  769. data/sig/modern_treasury/models/payment_flow_update_params.rbs +5 -5
  770. data/sig/modern_treasury/models/payment_order.rbs +19 -13
  771. data/sig/modern_treasury/models/payment_order_create_async_params.rbs +27 -27
  772. data/sig/modern_treasury/models/payment_order_create_params.rbs +32 -32
  773. data/sig/modern_treasury/models/payment_order_list_params.rbs +7 -7
  774. data/sig/modern_treasury/models/payment_order_retrieve_params.rbs +4 -4
  775. data/sig/modern_treasury/models/payment_order_subtype.rbs +1 -1
  776. data/sig/modern_treasury/models/payment_order_type.rbs +1 -1
  777. data/sig/modern_treasury/models/payment_order_update_params.rbs +24 -24
  778. data/sig/modern_treasury/models/payment_orders/reversal.rbs +3 -3
  779. data/sig/modern_treasury/models/payment_orders/reversal_create_params.rbs +9 -9
  780. data/sig/modern_treasury/models/payment_orders/reversal_list_params.rbs +4 -4
  781. data/sig/modern_treasury/models/payment_orders/reversal_retrieve_params.rbs +5 -4
  782. data/sig/modern_treasury/models/payment_reference.rbs +9 -3
  783. data/sig/modern_treasury/models/payment_reference_list_params.rbs +5 -5
  784. data/sig/modern_treasury/models/payment_reference_retireve_params.rbs +4 -4
  785. data/sig/modern_treasury/models/payment_reference_retrieve_params.rbs +4 -4
  786. data/sig/modern_treasury/models/ping_response.rbs +1 -1
  787. data/sig/modern_treasury/models/reconciliation_rule.rbs +3 -3
  788. data/sig/modern_treasury/models/return_create_params.rbs +23 -19
  789. data/sig/modern_treasury/models/return_list_params.rbs +5 -5
  790. data/sig/modern_treasury/models/return_object.rbs +33 -23
  791. data/sig/modern_treasury/models/return_retrieve_params.rbs +5 -4
  792. data/sig/modern_treasury/models/routing_detail.rbs +4 -4
  793. data/sig/modern_treasury/models/routing_detail_create_params.rbs +7 -7
  794. data/sig/modern_treasury/models/routing_detail_delete_params.rbs +5 -5
  795. data/sig/modern_treasury/models/routing_detail_list_params.rbs +4 -4
  796. data/sig/modern_treasury/models/routing_detail_retrieve_params.rbs +4 -4
  797. data/sig/modern_treasury/models/routing_number_lookup_request.rbs +6 -4
  798. data/sig/modern_treasury/models/transaction.rbs +6 -4
  799. data/sig/modern_treasury/models/transaction_create_params.rbs +5 -5
  800. data/sig/modern_treasury/models/transaction_delete_params.rbs +5 -4
  801. data/sig/modern_treasury/models/transaction_direction.rbs +1 -1
  802. data/sig/modern_treasury/models/transaction_list_params.rbs +4 -4
  803. data/sig/modern_treasury/models/transaction_retrieve_params.rbs +5 -4
  804. data/sig/modern_treasury/models/transaction_update_params.rbs +5 -4
  805. data/sig/modern_treasury/models/transactions/line_item_create_params.rbs +4 -4
  806. data/sig/modern_treasury/models/transactions/line_item_delete_params.rbs +5 -4
  807. data/sig/modern_treasury/models/transactions/line_item_list_params.rbs +5 -5
  808. data/sig/modern_treasury/models/transactions/line_item_retrieve_params.rbs +5 -4
  809. data/sig/modern_treasury/models/transactions/transaction_line_item.rbs +3 -3
  810. data/sig/modern_treasury/models/validation_validate_routing_number_params.rbs +5 -5
  811. data/sig/modern_treasury/models/virtual_account.rbs +1 -1
  812. data/sig/modern_treasury/models/virtual_account_create_params.rbs +11 -11
  813. data/sig/modern_treasury/models/virtual_account_delete_params.rbs +4 -4
  814. data/sig/modern_treasury/models/virtual_account_list_params.rbs +4 -4
  815. data/sig/modern_treasury/models/virtual_account_retrieve_params.rbs +4 -4
  816. data/sig/modern_treasury/models/virtual_account_update_params.rbs +4 -4
  817. data/sig/modern_treasury/models/wealth_and_employment_details.rbs +7 -7
  818. data/sig/modern_treasury/request_options.rbs +1 -11
  819. data/sig/modern_treasury/resources/account_collection_flows.rbs +1 -1
  820. data/sig/modern_treasury/resources/account_details.rbs +1 -1
  821. data/sig/modern_treasury/resources/bulk_requests.rbs +1 -1
  822. data/sig/modern_treasury/resources/bulk_results.rbs +1 -1
  823. data/sig/modern_treasury/resources/connection_legal_entities.rbs +1 -1
  824. data/sig/modern_treasury/resources/connections.rbs +1 -1
  825. data/sig/modern_treasury/resources/counterparties.rbs +1 -1
  826. data/sig/modern_treasury/resources/documents.rbs +2 -2
  827. data/sig/modern_treasury/resources/events.rbs +1 -1
  828. data/sig/modern_treasury/resources/expected_payments.rbs +1 -1
  829. data/sig/modern_treasury/resources/external_accounts.rbs +1 -1
  830. data/sig/modern_treasury/resources/foreign_exchange_quotes.rbs +1 -1
  831. data/sig/modern_treasury/resources/incoming_payment_details.rbs +2 -1
  832. data/sig/modern_treasury/resources/internal_accounts/balance_reports.rbs +1 -1
  833. data/sig/modern_treasury/resources/internal_accounts.rbs +1 -1
  834. data/sig/modern_treasury/resources/invoices/line_items.rbs +1 -1
  835. data/sig/modern_treasury/resources/invoices.rbs +1 -1
  836. data/sig/modern_treasury/resources/ledger_account_balance_monitors.rbs +1 -1
  837. data/sig/modern_treasury/resources/ledger_account_categories.rbs +1 -1
  838. data/sig/modern_treasury/resources/ledger_account_settlements/account_entries.rbs +1 -1
  839. data/sig/modern_treasury/resources/ledger_account_settlements.rbs +1 -1
  840. data/sig/modern_treasury/resources/ledger_accounts.rbs +1 -1
  841. data/sig/modern_treasury/resources/ledger_entries.rbs +1 -1
  842. data/sig/modern_treasury/resources/ledger_event_handlers.rbs +1 -1
  843. data/sig/modern_treasury/resources/ledger_transactions/versions.rbs +1 -1
  844. data/sig/modern_treasury/resources/ledger_transactions.rbs +1 -1
  845. data/sig/modern_treasury/resources/ledgers.rbs +1 -1
  846. data/sig/modern_treasury/resources/legal_entities.rbs +5 -1
  847. data/sig/modern_treasury/resources/line_items.rbs +1 -1
  848. data/sig/modern_treasury/resources/paper_items.rbs +1 -1
  849. data/sig/modern_treasury/resources/payment_flows.rbs +1 -1
  850. data/sig/modern_treasury/resources/payment_orders/reversals.rbs +1 -1
  851. data/sig/modern_treasury/resources/payment_orders.rbs +1 -1
  852. data/sig/modern_treasury/resources/payment_references.rbs +1 -1
  853. data/sig/modern_treasury/resources/returns.rbs +2 -1
  854. data/sig/modern_treasury/resources/routing_details.rbs +1 -1
  855. data/sig/modern_treasury/resources/transactions/line_items.rbs +1 -1
  856. data/sig/modern_treasury/resources/transactions.rbs +1 -1
  857. data/sig/modern_treasury/resources/virtual_accounts.rbs +1 -1
  858. data/sig/modern_treasury/version.rbs +1 -1
  859. metadata +59 -23
  860. data/lib/modern_treasury/base_client.rb +0 -457
  861. data/lib/modern_treasury/base_model.rb +0 -1211
  862. data/lib/modern_treasury/base_page.rb +0 -59
  863. data/lib/modern_treasury/extern.rb +0 -7
  864. data/lib/modern_treasury/page.rb +0 -92
  865. data/lib/modern_treasury/pooled_net_requester.rb +0 -180
  866. data/lib/modern_treasury/util.rb +0 -728
  867. data/rbi/lib/modern_treasury/base_client.rbi +0 -197
  868. data/rbi/lib/modern_treasury/base_model.rbi +0 -645
  869. data/rbi/lib/modern_treasury/base_page.rbi +0 -36
  870. data/rbi/lib/modern_treasury/extern.rbi +0 -7
  871. data/rbi/lib/modern_treasury/page.rbi +0 -31
  872. data/rbi/lib/modern_treasury/pooled_net_requester.rbi +0 -62
  873. data/rbi/lib/modern_treasury/util.rbi +0 -281
  874. data/sig/modern_treasury/base_client.rbs +0 -108
  875. data/sig/modern_treasury/base_model.rbs +0 -262
  876. data/sig/modern_treasury/base_page.rbs +0 -20
  877. data/sig/modern_treasury/extern.rbs +0 -4
  878. data/sig/modern_treasury/page.rbs +0 -17
  879. data/sig/modern_treasury/pooled_net_requester.rbs +0 -37
  880. data/sig/modern_treasury/util.rbs +0 -136
@@ -1,1211 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ModernTreasury
4
- # @api private
5
- module Converter
6
- # rubocop:disable Lint/UnusedMethodArgument
7
-
8
- # @api private
9
- #
10
- # @param value [Object]
11
- #
12
- # @return [Object]
13
- def coerce(value) = value
14
-
15
- # @api private
16
- #
17
- # @param value [Object]
18
- #
19
- # @return [Object]
20
- def dump(value) = value
21
-
22
- # @api private
23
- #
24
- # @param value [Object]
25
- #
26
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
27
- def try_strict_coerce(value) = (raise NotImplementedError)
28
-
29
- # rubocop:enable Lint/UnusedMethodArgument
30
-
31
- class << self
32
- # @api private
33
- #
34
- # @param spec [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class] .
35
- #
36
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
37
- #
38
- # @option spec [Proc] :enum
39
- #
40
- # @option spec [Proc] :union
41
- #
42
- # @option spec [Boolean] :"nil?"
43
- #
44
- # @return [Proc]
45
- def type_info(spec)
46
- case spec
47
- in Hash
48
- type_info(spec.slice(:const, :enum, :union).first&.last)
49
- in Proc
50
- spec
51
- in ModernTreasury::Converter | Module | Symbol
52
- -> { spec }
53
- in true | false
54
- -> { ModernTreasury::BooleanModel }
55
- in NilClass | Integer | Float
56
- -> { spec.class }
57
- end
58
- end
59
-
60
- # @api private
61
- #
62
- # Based on `target`, transform `value` into `target`, to the extent possible:
63
- #
64
- # 1. if the given `value` conforms to `target` already, return the given `value`
65
- # 2. if it's possible and safe to convert the given `value` to `target`, then the
66
- # converted value
67
- # 3. otherwise, the given `value` unaltered
68
- #
69
- # @param target [ModernTreasury::Converter, Class]
70
- # @param value [Object]
71
- #
72
- # @return [Object]
73
- def coerce(target, value)
74
- case target
75
- in ModernTreasury::Converter
76
- target.coerce(value)
77
- in Symbol
78
- case value
79
- in Symbol | String if (val = value.to_sym) == target
80
- val
81
- else
82
- value
83
- end
84
- in Module
85
- case target
86
- in -> { _1 <= NilClass }
87
- nil
88
- in -> { _1 <= Integer }
89
- value.is_a?(Numeric) ? Integer(value) : value
90
- in -> { _1 <= Float }
91
- value.is_a?(Numeric) ? Float(value) : value
92
- in -> { _1 <= Symbol }
93
- value.is_a?(String) ? value.to_sym : value
94
- in -> { _1 <= String }
95
- value.is_a?(Symbol) ? value.to_s : value
96
- in -> { _1 <= Date || _1 <= Time }
97
- value.is_a?(String) ? target.parse(value) : value
98
- in -> { _1 <= IO }
99
- value.is_a?(String) ? StringIO.new(value) : value
100
- else
101
- value
102
- end
103
- end
104
- end
105
-
106
- # @api private
107
- #
108
- # @param target [ModernTreasury::Converter, Class]
109
- # @param value [Object]
110
- #
111
- # @return [Object]
112
- def dump(target, value)
113
- case target
114
- in ModernTreasury::Converter
115
- target.dump(value)
116
- else
117
- value
118
- end
119
- end
120
-
121
- # @api private
122
- #
123
- # The underlying algorithm for computing maximal compatibility is subject to
124
- # future improvements.
125
- #
126
- # Similar to `#.coerce`, used to determine the best union variant to decode into.
127
- #
128
- # 1. determine if strict-ish coercion is possible
129
- # 2. return either result of successful coercion or if loose coercion is possible
130
- # 3. return a score for recursively tallied count for fields that can be coerced
131
- #
132
- # @param target [ModernTreasury::Converter, Class]
133
- # @param value [Object]
134
- #
135
- # @return [Object]
136
- def try_strict_coerce(target, value)
137
- case target
138
- in ModernTreasury::Converter
139
- target.try_strict_coerce(value)
140
- in Symbol
141
- case value
142
- in Symbol | String if (val = value.to_sym) == target
143
- [true, val, 1]
144
- else
145
- [false, false, 0]
146
- end
147
- in Module
148
- case [target, value]
149
- in [-> { _1 <= NilClass }, _]
150
- [true, nil, value.nil? ? 1 : 0]
151
- in [-> { _1 <= Integer }, Numeric]
152
- [true, Integer(value), 1]
153
- in [-> { _1 <= Float }, Numeric]
154
- [true, Float(value), 1]
155
- in [-> { _1 <= Symbol }, String]
156
- [true, value.to_sym, 1]
157
- in [-> { _1 <= String }, Symbol]
158
- [true, value.to_s, 1]
159
- in [-> { _1 <= Date || _1 <= Time }, String]
160
- Kernel.then do
161
- [true, target.parse(value), 1]
162
- rescue ArgumentError
163
- [false, false, 0]
164
- end
165
- in [_, ^target]
166
- [true, value, 1]
167
- else
168
- [false, false, 0]
169
- end
170
- end
171
- end
172
- end
173
- end
174
-
175
- # @api private
176
- #
177
- # @abstract
178
- #
179
- # When we don't know what to expect for the value.
180
- class Unknown
181
- extend ModernTreasury::Converter
182
-
183
- # rubocop:disable Lint/UnusedMethodArgument
184
-
185
- # @param other [Object]
186
- #
187
- # @return [Boolean]
188
- def self.===(other) = true
189
-
190
- # @param other [Object]
191
- #
192
- # @return [Boolean]
193
- def self.==(other) = other.is_a?(Class) && other <= ModernTreasury::Unknown
194
-
195
- class << self
196
- # @!parse
197
- # # @api private
198
- # #
199
- # # @param value [Object]
200
- # #
201
- # # @return [Object]
202
- # def coerce(value) = super
203
-
204
- # @!parse
205
- # # @api private
206
- # #
207
- # # @param value [Object]
208
- # #
209
- # # @return [Object]
210
- # def dump(value) = super
211
-
212
- # @api private
213
- #
214
- # @param value [Object]
215
- #
216
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
217
- def try_strict_coerce(value)
218
- # prevent unknown variant from being chosen during the first coercion pass
219
- [false, true, 0]
220
- end
221
- end
222
-
223
- # rubocop:enable Lint/UnusedMethodArgument
224
- end
225
-
226
- # @api private
227
- #
228
- # @abstract
229
- #
230
- # Ruby has no Boolean class; this is something for models to refer to.
231
- class BooleanModel
232
- extend ModernTreasury::Converter
233
-
234
- # @param other [Object]
235
- #
236
- # @return [Boolean]
237
- def self.===(other) = other == true || other == false
238
-
239
- # @param other [Object]
240
- #
241
- # @return [Boolean]
242
- def self.==(other) = other.is_a?(Class) && other <= ModernTreasury::BooleanModel
243
-
244
- class << self
245
- # @!parse
246
- # # @api private
247
- # #
248
- # # @param value [Boolean, Object]
249
- # #
250
- # # @return [Boolean, Object]
251
- # def coerce(value) = super
252
-
253
- # @!parse
254
- # # @api private
255
- # #
256
- # # @param value [Boolean, Object]
257
- # #
258
- # # @return [Boolean, Object]
259
- # def dump(value) = super
260
-
261
- # @api private
262
- #
263
- # @param value [Object]
264
- #
265
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
266
- def try_strict_coerce(value)
267
- case value
268
- in true | false
269
- [true, value, 1]
270
- else
271
- [false, false, 0]
272
- end
273
- end
274
- end
275
- end
276
-
277
- # @api private
278
- #
279
- # A value from among a specified list of options. OpenAPI enum values map to Ruby
280
- # values in the SDK as follows:
281
- #
282
- # 1. boolean => true | false
283
- # 2. integer => Integer
284
- # 3. float => Float
285
- # 4. string => Symbol
286
- #
287
- # We can therefore convert string values to Symbols, but can't convert other
288
- # values safely.
289
- #
290
- # @example
291
- # # `accounts_type` is a `ModernTreasury::Models::AccountsType`
292
- # case accounts_type
293
- # when ModernTreasury::Models::AccountsType::EXTERNAL_ACCOUNTS
294
- # # ...
295
- # when ModernTreasury::Models::AccountsType::INTERNAL_ACCOUNTS
296
- # # ...
297
- # else
298
- # puts(accounts_type)
299
- # end
300
- #
301
- # @example
302
- # case accounts_type
303
- # in :external_accounts
304
- # # ...
305
- # in :internal_accounts
306
- # # ...
307
- # else
308
- # puts(accounts_type)
309
- # end
310
- module Enum
311
- include ModernTreasury::Converter
312
-
313
- # All of the valid Symbol values for this enum.
314
- #
315
- # @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
316
- def values = (@values ||= constants.map { const_get(_1) })
317
-
318
- # @api private
319
- #
320
- # Guard against thread safety issues by instantiating `@values`.
321
- private def finalize! = values
322
-
323
- # @param other [Object]
324
- #
325
- # @return [Boolean]
326
- def ===(other) = values.include?(other)
327
-
328
- # @param other [Object]
329
- #
330
- # @return [Boolean]
331
- def ==(other)
332
- other.is_a?(Module) && other.singleton_class.ancestors.include?(ModernTreasury::Enum) && other.values.to_set == values.to_set
333
- end
334
-
335
- # @api private
336
- #
337
- # @param value [String, Symbol, Object]
338
- #
339
- # @return [Symbol, Object]
340
- def coerce(value)
341
- case value
342
- in Symbol | String if values.include?(val = value.to_sym)
343
- val
344
- else
345
- value
346
- end
347
- end
348
-
349
- # @!parse
350
- # # @api private
351
- # #
352
- # # @param value [Symbol, Object]
353
- # #
354
- # # @return [Symbol, Object]
355
- # def dump(value) = super
356
-
357
- # @api private
358
- #
359
- # @param value [Object]
360
- #
361
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
362
- def try_strict_coerce(value)
363
- return [true, value, 1] if values.include?(value)
364
-
365
- case value
366
- in Symbol | String if values.include?(val = value.to_sym)
367
- [true, val, 1]
368
- else
369
- case [value, values.first]
370
- in [true | false, true | false] | [Integer, Integer] | [Symbol | String, Symbol]
371
- [false, true, 0]
372
- else
373
- [false, false, 0]
374
- end
375
- end
376
- end
377
- end
378
-
379
- # @api private
380
- #
381
- # @example
382
- # # `external_account_verify_response` is a `ModernTreasury::Models::ExternalAccountVerifyResponse`
383
- # case external_account_verify_response
384
- # when ModernTreasury::Models::ExternalAccount
385
- # puts(external_account_verify_response.id)
386
- # when ModernTreasury::Models::ExternalAccountVerifyResponse::ExternalAccountVerificationAttempt
387
- # puts(external_account_verify_response.created_at)
388
- # else
389
- # puts(external_account_verify_response)
390
- # end
391
- module Union
392
- include ModernTreasury::Converter
393
-
394
- # @api private
395
- #
396
- # All of the specified variant info for this union.
397
- #
398
- # @return [Array<Array(Symbol, Proc)>]
399
- private def known_variants = (@known_variants ||= [])
400
-
401
- # @api private
402
- #
403
- # @return [Array<Array(Symbol, Object)>]
404
- protected def derefed_variants
405
- @known_variants.map { |key, variant_fn| [key, variant_fn.call] }
406
- end
407
-
408
- # All of the specified variants for this union.
409
- #
410
- # @return [Array<Object>]
411
- def variants
412
- derefed_variants.map(&:last)
413
- end
414
-
415
- # @api private
416
- #
417
- # @param property [Symbol]
418
- private def discriminator(property)
419
- case property
420
- in Symbol
421
- @discriminator = property
422
- end
423
- end
424
-
425
- # @api private
426
- #
427
- # @param key [Symbol, Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
428
- #
429
- # @param spec [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class] .
430
- #
431
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
432
- #
433
- # @option spec [Proc] :enum
434
- #
435
- # @option spec [Proc] :union
436
- #
437
- # @option spec [Boolean] :"nil?"
438
- private def variant(key, spec = nil)
439
- variant_info =
440
- case key
441
- in Symbol
442
- [key, ModernTreasury::Converter.type_info(spec)]
443
- in Proc | ModernTreasury::Converter | Module | Hash
444
- [nil, ModernTreasury::Converter.type_info(key)]
445
- end
446
-
447
- known_variants << variant_info
448
- end
449
-
450
- # @api private
451
- #
452
- # @param value [Object]
453
- #
454
- # @return [ModernTreasury::Converter, Class, nil]
455
- private def resolve_variant(value)
456
- case [@discriminator, value]
457
- in [_, ModernTreasury::BaseModel]
458
- value.class
459
- in [Symbol, Hash]
460
- key =
461
- if value.key?(@discriminator)
462
- value.fetch(@discriminator)
463
- elsif value.key?((discriminator = @discriminator.to_s))
464
- value.fetch(discriminator)
465
- end
466
-
467
- key = key.to_sym if key.is_a?(String)
468
- _, resolved = known_variants.find { |k,| k == key }
469
- resolved.nil? ? ModernTreasury::Unknown : resolved.call
470
- else
471
- nil
472
- end
473
- end
474
-
475
- # rubocop:disable Style/HashEachMethods
476
- # rubocop:disable Style/CaseEquality
477
-
478
- # @param other [Object]
479
- #
480
- # @return [Boolean]
481
- def ===(other)
482
- known_variants.any? do |_, variant_fn|
483
- variant_fn.call === other
484
- end
485
- end
486
-
487
- # @param other [Object]
488
- #
489
- # @return [Boolean]
490
- def ==(other)
491
- other.is_a?(Module) && other.singleton_class.ancestors.include?(ModernTreasury::Union) && other.derefed_variants == derefed_variants
492
- end
493
-
494
- # @api private
495
- #
496
- # @param value [Object]
497
- #
498
- # @return [Object]
499
- def coerce(value)
500
- if (variant = resolve_variant(value))
501
- return ModernTreasury::Converter.coerce(variant, value)
502
- end
503
-
504
- matches = []
505
-
506
- known_variants.each do |_, variant_fn|
507
- variant = variant_fn.call
508
-
509
- case ModernTreasury::Converter.try_strict_coerce(variant, value)
510
- in [true, coerced, _]
511
- return coerced
512
- in [false, true, score]
513
- matches << [score, variant]
514
- in [false, false, _]
515
- nil
516
- end
517
- end
518
-
519
- _, variant = matches.sort! { _2.first <=> _1.first }.find { |score,| !score.zero? }
520
- variant.nil? ? value : ModernTreasury::Converter.coerce(variant, value)
521
- end
522
-
523
- # @api private
524
- #
525
- # @param value [Object]
526
- #
527
- # @return [Object]
528
- def dump(value)
529
- if (variant = resolve_variant(value))
530
- return ModernTreasury::Converter.dump(variant, value)
531
- end
532
-
533
- known_variants.each do |_, variant_fn|
534
- variant = variant_fn.call
535
- if variant === value
536
- return ModernTreasury::Converter.dump(variant, value)
537
- end
538
- end
539
- value
540
- end
541
-
542
- # @api private
543
- #
544
- # @param value [Object]
545
- #
546
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
547
- def try_strict_coerce(value)
548
- # TODO(ruby) this will result in super linear decoding behaviour for nested unions
549
- # follow up with a decoding context that captures current strictness levels
550
- if (variant = resolve_variant(value))
551
- return Converter.try_strict_coerce(variant, value)
552
- end
553
-
554
- coercible = false
555
- max_score = 0
556
-
557
- known_variants.each do |_, variant_fn|
558
- variant = variant_fn.call
559
-
560
- case ModernTreasury::Converter.try_strict_coerce(variant, value)
561
- in [true, coerced, score]
562
- return [true, coerced, score]
563
- in [false, true, score]
564
- coercible = true
565
- max_score = [max_score, score].max
566
- in [false, false, _]
567
- nil
568
- end
569
- end
570
-
571
- [false, coercible, max_score]
572
- end
573
-
574
- # rubocop:enable Style/CaseEquality
575
- # rubocop:enable Style/HashEachMethods
576
- end
577
-
578
- # @api private
579
- #
580
- # @abstract
581
- #
582
- # Array of items of a given type.
583
- class ArrayOf
584
- include ModernTreasury::Converter
585
-
586
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
587
- #
588
- # @param spec [Hash{Symbol=>Object}] .
589
- #
590
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
591
- #
592
- # @option spec [Proc] :enum
593
- #
594
- # @option spec [Proc] :union
595
- #
596
- # @option spec [Boolean] :"nil?"
597
- def self.[](type_info, spec = {}) = new(type_info, spec)
598
-
599
- # @param other [Object]
600
- #
601
- # @return [Boolean]
602
- def ===(other)
603
- type = item_type
604
- case other
605
- in Array
606
- # rubocop:disable Style/CaseEquality
607
- other.all? { type === _1 }
608
- # rubocop:enable Style/CaseEquality
609
- else
610
- false
611
- end
612
- end
613
-
614
- # @param other [Object]
615
- #
616
- # @return [Boolean]
617
- def ==(other) = other.is_a?(ModernTreasury::ArrayOf) && other.item_type == item_type
618
-
619
- # @api private
620
- #
621
- # @param value [Enumerable, Object]
622
- #
623
- # @return [Array<Object>, Object]
624
- def coerce(value)
625
- type = item_type
626
- case value
627
- in Enumerable unless value.is_a?(Hash)
628
- value.map { ModernTreasury::Converter.coerce(type, _1) }
629
- else
630
- value
631
- end
632
- end
633
-
634
- # @api private
635
- #
636
- # @param value [Enumerable, Object]
637
- #
638
- # @return [Array<Object>, Object]
639
- def dump(value)
640
- type = item_type
641
- case value
642
- in Enumerable unless value.is_a?(Hash)
643
- value.map { ModernTreasury::Converter.dump(type, _1) }.to_a
644
- else
645
- value
646
- end
647
- end
648
-
649
- # @api private
650
- #
651
- # @param value [Object]
652
- #
653
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
654
- def try_strict_coerce(value)
655
- case value
656
- in Array
657
- type = item_type
658
- great_success = true
659
- tally = 0
660
-
661
- mapped =
662
- value.map do |item|
663
- case ModernTreasury::Converter.try_strict_coerce(type, item)
664
- in [true, coerced, score]
665
- tally += score
666
- coerced
667
- in [false, true, score]
668
- great_success = false
669
- tally += score
670
- item
671
- in [false, false, _]
672
- great_success &&= item.nil?
673
- item
674
- end
675
- end
676
-
677
- if great_success
678
- [true, mapped, tally]
679
- else
680
- [false, true, tally]
681
- end
682
- else
683
- [false, false, 0]
684
- end
685
- end
686
-
687
- # @api private
688
- #
689
- # @return [ModernTreasury::Converter, Class]
690
- protected def item_type = @item_type_fn.call
691
-
692
- # @api private
693
- #
694
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
695
- #
696
- # @param spec [Hash{Symbol=>Object}] .
697
- #
698
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
699
- #
700
- # @option spec [Proc] :enum
701
- #
702
- # @option spec [Proc] :union
703
- #
704
- # @option spec [Boolean] :"nil?"
705
- def initialize(type_info, spec = {})
706
- @item_type_fn = ModernTreasury::Converter.type_info(type_info || spec)
707
- end
708
- end
709
-
710
- # @api private
711
- #
712
- # @abstract
713
- #
714
- # Hash of items of a given type.
715
- class HashOf
716
- include ModernTreasury::Converter
717
-
718
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
719
- #
720
- # @param spec [Hash{Symbol=>Object}] .
721
- #
722
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
723
- #
724
- # @option spec [Proc] :enum
725
- #
726
- # @option spec [Proc] :union
727
- #
728
- # @option spec [Boolean] :"nil?"
729
- def self.[](type_info, spec = {}) = new(type_info, spec)
730
-
731
- # @param other [Object]
732
- #
733
- # @return [Boolean]
734
- def ===(other)
735
- type = item_type
736
- case other
737
- in Hash
738
- other.all? do |key, val|
739
- case [key, val]
740
- in [Symbol | String, ^type]
741
- true
742
- else
743
- false
744
- end
745
- end
746
- else
747
- false
748
- end
749
- end
750
-
751
- # @param other [Object]
752
- #
753
- # @return [Boolean]
754
- def ==(other) = other.is_a?(ModernTreasury::HashOf) && other.item_type == item_type
755
-
756
- # @api private
757
- #
758
- # @param value [Hash{Object=>Object}, Object]
759
- #
760
- # @return [Hash{Symbol=>Object}, Object]
761
- def coerce(value)
762
- type = item_type
763
- case value
764
- in Hash
765
- value.to_h do |key, val|
766
- coerced = ModernTreasury::Converter.coerce(type, val)
767
- [key.is_a?(String) ? key.to_sym : key, coerced]
768
- end
769
- else
770
- value
771
- end
772
- end
773
-
774
- # @api private
775
- #
776
- # @param value [Hash{Object=>Object}, Object]
777
- #
778
- # @return [Hash{Symbol=>Object}, Object]
779
- def dump(value)
780
- type = item_type
781
- case value
782
- in Hash
783
- value.transform_values do |val|
784
- ModernTreasury::Converter.dump(type, val)
785
- end
786
- else
787
- value
788
- end
789
- end
790
-
791
- # @api private
792
- #
793
- # @param value [Object]
794
- #
795
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
796
- def try_strict_coerce(value)
797
- case value
798
- in Hash
799
- type = item_type
800
- great_success = true
801
- tally = 0
802
-
803
- mapped =
804
- value.transform_values do |val|
805
- case ModernTreasury::Converter.try_strict_coerce(type, val)
806
- in [true, coerced, score]
807
- tally += score
808
- coerced
809
- in [false, true, score]
810
- great_success = false
811
- tally += score
812
- val
813
- in [false, false, _]
814
- great_success &&= val.nil?
815
- val
816
- end
817
- end
818
-
819
- if great_success
820
- [true, mapped, tally]
821
- else
822
- [false, true, tally]
823
- end
824
- else
825
- [false, false, 0]
826
- end
827
- end
828
-
829
- # @api private
830
- #
831
- # @return [ModernTreasury::Converter, Class]
832
- protected def item_type = @item_type_fn.call
833
-
834
- # @api private
835
- #
836
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
837
- #
838
- # @param spec [Hash{Symbol=>Object}] .
839
- #
840
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
841
- #
842
- # @option spec [Proc] :enum
843
- #
844
- # @option spec [Proc] :union
845
- #
846
- # @option spec [Boolean] :"nil?"
847
- def initialize(type_info, spec = {})
848
- @item_type_fn = ModernTreasury::Converter.type_info(type_info || spec)
849
- end
850
- end
851
-
852
- # @abstract
853
- #
854
- # @example
855
- # # `async_response` is a `ModernTreasury::Models::AsyncResponse`
856
- # async_response => {
857
- # id: id,
858
- # object: object
859
- # }
860
- class BaseModel
861
- extend ModernTreasury::Converter
862
-
863
- class << self
864
- # @api private
865
- #
866
- # Assumes superclass fields are totally defined before fields are accessed /
867
- # defined on subclasses.
868
- #
869
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
870
- def known_fields
871
- @known_fields ||= (self < ModernTreasury::BaseModel ? superclass.known_fields.dup : {})
872
- end
873
-
874
- # @api private
875
- #
876
- # @return [Hash{Symbol=>Symbol}]
877
- def reverse_map
878
- @reverse_map ||= (self < ModernTreasury::BaseModel ? superclass.reverse_map.dup : {})
879
- end
880
-
881
- # @api private
882
- #
883
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
884
- def fields
885
- known_fields.transform_values do |field|
886
- {**field.except(:type_fn), type: field.fetch(:type_fn).call}
887
- end
888
- end
889
-
890
- # @api private
891
- #
892
- # @return [Hash{Symbol=>Proc}]
893
- def defaults = (@defaults ||= {})
894
-
895
- # @api private
896
- #
897
- # @param name_sym [Symbol]
898
- #
899
- # @param required [Boolean]
900
- #
901
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
902
- #
903
- # @param spec [Hash{Symbol=>Object}] .
904
- #
905
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
906
- #
907
- # @option spec [Proc] :enum
908
- #
909
- # @option spec [Proc] :union
910
- #
911
- # @option spec [Boolean] :"nil?"
912
- private def add_field(name_sym, required:, type_info:, spec:)
913
- type_fn, info =
914
- case type_info
915
- in Proc | Module | ModernTreasury::Converter
916
- [ModernTreasury::Converter.type_info({**spec, union: type_info}), spec]
917
- in Hash
918
- [ModernTreasury::Converter.type_info(type_info), type_info]
919
- end
920
-
921
- fallback = info[:const]
922
- defaults[name_sym] = fallback if required && !info[:nil?] && info.key?(:const)
923
-
924
- key = info[:api_name]&.tap { reverse_map[_1] = name_sym } || name_sym
925
- setter = "#{name_sym}="
926
-
927
- if known_fields.key?(name_sym)
928
- [name_sym, setter].each { undef_method(_1) }
929
- end
930
-
931
- known_fields[name_sym] = {mode: @mode, key: key, required: required, type_fn: type_fn}
932
-
933
- define_method(setter) do |val|
934
- @data[key] = val
935
- end
936
-
937
- define_method(name_sym) do
938
- field_type = type_fn.call
939
- value = @data.fetch(key) { self.class.defaults[key] }
940
- ModernTreasury::Converter.coerce(field_type, value)
941
- rescue StandardError
942
- name = self.class.name.split("::").last
943
- raise ModernTreasury::ConversionError.new(
944
- "Failed to parse #{name}.#{name_sym} as #{field_type.inspect}. " \
945
- "To get the unparsed API response, use #{name}[:#{key}]."
946
- )
947
- end
948
- end
949
-
950
- # @api private
951
- #
952
- # @param name_sym [Symbol]
953
- #
954
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
955
- #
956
- # @param spec [Hash{Symbol=>Object}] .
957
- #
958
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
959
- #
960
- # @option spec [Proc] :enum
961
- #
962
- # @option spec [Proc] :union
963
- #
964
- # @option spec [Boolean] :"nil?"
965
- def required(name_sym, type_info, spec = {})
966
- add_field(name_sym, required: true, type_info: type_info, spec: spec)
967
- end
968
-
969
- # @api private
970
- #
971
- # @param name_sym [Symbol]
972
- #
973
- # @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
974
- #
975
- # @param spec [Hash{Symbol=>Object}] .
976
- #
977
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
978
- #
979
- # @option spec [Proc] :enum
980
- #
981
- # @option spec [Proc] :union
982
- #
983
- # @option spec [Boolean] :"nil?"
984
- def optional(name_sym, type_info, spec = {})
985
- add_field(name_sym, required: false, type_info: type_info, spec: spec)
986
- end
987
-
988
- # @api private
989
- #
990
- # `request_only` attributes not excluded from `.#coerce` when receiving responses
991
- # even if well behaved servers should not send them
992
- #
993
- # @param blk [Proc]
994
- private def request_only(&blk)
995
- @mode = :dump
996
- blk.call
997
- ensure
998
- @mode = nil
999
- end
1000
-
1001
- # @api private
1002
- #
1003
- # `response_only` attributes are omitted from `.#dump` when making requests
1004
- #
1005
- # @param blk [Proc]
1006
- private def response_only(&blk)
1007
- @mode = :coerce
1008
- blk.call
1009
- ensure
1010
- @mode = nil
1011
- end
1012
- end
1013
-
1014
- # @param other [Object]
1015
- #
1016
- # @return [Boolean]
1017
- def ==(other)
1018
- case other
1019
- in ModernTreasury::BaseModel
1020
- self.class.fields == other.class.fields && @data == other.to_h
1021
- else
1022
- false
1023
- end
1024
- end
1025
-
1026
- class << self
1027
- # @api private
1028
- #
1029
- # @param value [ModernTreasury::BaseModel, Hash{Object=>Object}, Object]
1030
- #
1031
- # @return [ModernTreasury::BaseModel, Object]
1032
- def coerce(value)
1033
- case ModernTreasury::Util.coerce_hash(value)
1034
- in Hash => coerced
1035
- new(coerced)
1036
- else
1037
- value
1038
- end
1039
- end
1040
-
1041
- # @api private
1042
- #
1043
- # @param value [ModernTreasury::BaseModel, Object]
1044
- #
1045
- # @return [Hash{Object=>Object}, Object]
1046
- def dump(value)
1047
- unless (coerced = ModernTreasury::Util.coerce_hash(value)).is_a?(Hash)
1048
- return value
1049
- end
1050
-
1051
- values = coerced.filter_map do |key, val|
1052
- name = key.to_sym
1053
- case (field = known_fields[name])
1054
- in nil
1055
- [name, val]
1056
- else
1057
- mode, type_fn, api_name = field.fetch_values(:mode, :type_fn, :key)
1058
- case mode
1059
- in :coerce
1060
- next
1061
- else
1062
- target = type_fn.call
1063
- [api_name, ModernTreasury::Converter.dump(target, val)]
1064
- end
1065
- end
1066
- end.to_h
1067
-
1068
- defaults.each do |key, val|
1069
- next if values.key?(key)
1070
-
1071
- values[key] = val
1072
- end
1073
-
1074
- values
1075
- end
1076
-
1077
- # @api private
1078
- #
1079
- # @param value [Object]
1080
- #
1081
- # @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
1082
- def try_strict_coerce(value)
1083
- case value
1084
- in Hash | ModernTreasury::BaseModel
1085
- value = value.to_h
1086
- else
1087
- return [false, false, 0]
1088
- end
1089
-
1090
- keys = value.keys.to_set
1091
- great_success = true
1092
- tally = 0
1093
- acc = {}
1094
-
1095
- known_fields.each_value do |field|
1096
- mode, required, type_fn, api_name = field.fetch_values(:mode, :required, :type_fn, :key)
1097
- keys.delete(api_name)
1098
-
1099
- case [required && mode != :dump, value.key?(api_name)]
1100
- in [_, true]
1101
- target = type_fn.call
1102
- item = value.fetch(api_name)
1103
- case ModernTreasury::Converter.try_strict_coerce(target, item)
1104
- in [true, coerced, score]
1105
- tally += score
1106
- acc[api_name] = coerced
1107
- in [false, true, score]
1108
- great_success = false
1109
- tally += score
1110
- acc[api_name] = item
1111
- in [false, false, _]
1112
- great_success &&= item.nil?
1113
- end
1114
- in [true, false]
1115
- great_success = false
1116
- in [false, false]
1117
- nil
1118
- end
1119
- end
1120
-
1121
- keys.each do |key|
1122
- acc[key] = value.fetch(key)
1123
- end
1124
-
1125
- great_success ? [true, new(acc), tally] : [false, true, tally]
1126
- end
1127
- end
1128
-
1129
- # Returns the raw value associated with the given key, if found. Otherwise, nil is
1130
- # returned.
1131
- #
1132
- # It is valid to lookup keys that are not in the API spec, for example to access
1133
- # undocumented features. This method does not parse response data into
1134
- # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
1135
- #
1136
- # @param key [Symbol]
1137
- #
1138
- # @return [Object, nil]
1139
- def [](key)
1140
- unless key.instance_of?(Symbol)
1141
- raise ArgumentError.new("Expected symbol key for lookup, got #{key.inspect}")
1142
- end
1143
-
1144
- @data[key]
1145
- end
1146
-
1147
- # Returns a Hash of the data underlying this object. O(1)
1148
- #
1149
- # Keys are Symbols and values are the raw values from the response. The return
1150
- # value indicates which values were ever set on the object. i.e. there will be a
1151
- # key in this hash if they ever were, even if the set value was nil.
1152
- #
1153
- # This method is not recursive. The returned value is shared by the object, so it
1154
- # should not be mutated.
1155
- #
1156
- # @return [Hash{Symbol=>Object}]
1157
- def to_h = @data
1158
-
1159
- alias_method :to_hash, :to_h
1160
-
1161
- # @param keys [Array<Symbol>, nil]
1162
- #
1163
- # @return [Hash{Symbol=>Object}]
1164
- def deconstruct_keys(keys)
1165
- (keys || self.class.known_fields.keys).filter_map do |k|
1166
- unless self.class.known_fields.key?(k)
1167
- next
1168
- end
1169
-
1170
- [k, method(k).call]
1171
- end
1172
- .to_h
1173
- end
1174
-
1175
- # Create a new instance of a model.
1176
- #
1177
- # @param data [Hash{Symbol=>Object}, ModernTreasury::BaseModel]
1178
- def initialize(data = {})
1179
- case ModernTreasury::Util.coerce_hash(data)
1180
- in Hash => coerced
1181
- @data = coerced.to_h do |key, value|
1182
- name = key.to_sym
1183
- mapped = self.class.reverse_map.fetch(name, name)
1184
- type = self.class.fields[mapped]&.fetch(:type)
1185
- stored =
1186
- case [type, value]
1187
- in [Module, Hash] if type <= ModernTreasury::BaseModel
1188
- type.new(value)
1189
- in [ModernTreasury::ArrayOf, Array] | [ModernTreasury::HashOf, Hash]
1190
- type.coerce(value)
1191
- else
1192
- value
1193
- end
1194
- [name, stored]
1195
- end
1196
- else
1197
- raise ArgumentError.new("Expected a #{Hash} or #{ModernTreasury::BaseModel}, got #{data.inspect}")
1198
- end
1199
- end
1200
-
1201
- # @return [String]
1202
- def to_s = @data.to_s
1203
-
1204
- # @return [String]
1205
- def inspect
1206
- "#<#{self.class.name}:0x#{object_id.to_s(16)} #{deconstruct_keys(nil).map do |k, v|
1207
- "#{k}=#{v.inspect}"
1208
- end.join(' ')}>"
1209
- end
1210
- end
1211
- end