modern_treasury 0.1.0.pre.alpha.15 → 0.1.0.pre.alpha.16

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