modern_treasury 0.0.0 → 0.1.0.pre.alpha.15

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