mt-sdk 0.0.1

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 (318) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +188 -0
  4. data/bin/console +15 -0
  5. data/lib/modern_treasury/api_helper.rb +10 -0
  6. data/lib/modern_treasury/client.rb +275 -0
  7. data/lib/modern_treasury/configuration.rb +206 -0
  8. data/lib/modern_treasury/controllers/account_collection_flow_controller.rb +130 -0
  9. data/lib/modern_treasury/controllers/account_detail_controller.rb +131 -0
  10. data/lib/modern_treasury/controllers/balance_report_controller.rb +76 -0
  11. data/lib/modern_treasury/controllers/base_controller.rb +60 -0
  12. data/lib/modern_treasury/controllers/connection_controller.rb +40 -0
  13. data/lib/modern_treasury/controllers/counterparty_controller.rb +188 -0
  14. data/lib/modern_treasury/controllers/document_controller.rb +285 -0
  15. data/lib/modern_treasury/controllers/event_controller.rb +72 -0
  16. data/lib/modern_treasury/controllers/expected_payment_controller.rb +162 -0
  17. data/lib/modern_treasury/controllers/external_account_controller.rb +202 -0
  18. data/lib/modern_treasury/controllers/incoming_payment_detail_controller.rb +150 -0
  19. data/lib/modern_treasury/controllers/internal_account_controller.rb +134 -0
  20. data/lib/modern_treasury/controllers/invoice_controller.rb +98 -0
  21. data/lib/modern_treasury/controllers/invoice_line_item_controller.rb +136 -0
  22. data/lib/modern_treasury/controllers/ledger_account_category_controller.rb +292 -0
  23. data/lib/modern_treasury/controllers/ledger_account_controller.rb +202 -0
  24. data/lib/modern_treasury/controllers/ledger_account_payout_controller.rb +126 -0
  25. data/lib/modern_treasury/controllers/ledger_account_statement_controller.rb +60 -0
  26. data/lib/modern_treasury/controllers/ledger_controller.rb +152 -0
  27. data/lib/modern_treasury/controllers/ledger_entry_controller.rb +148 -0
  28. data/lib/modern_treasury/controllers/ledger_event_handler_controller.rb +119 -0
  29. data/lib/modern_treasury/controllers/ledger_transaction_controller.rb +328 -0
  30. data/lib/modern_treasury/controllers/ledgerable_event_controller.rb +61 -0
  31. data/lib/modern_treasury/controllers/line_item_controller.rb +107 -0
  32. data/lib/modern_treasury/controllers/paper_item_controller.rb +69 -0
  33. data/lib/modern_treasury/controllers/payment_flow_controller.rb +138 -0
  34. data/lib/modern_treasury/controllers/payment_order_controller.rb +368 -0
  35. data/lib/modern_treasury/controllers/payment_reference_controller.rb +64 -0
  36. data/lib/modern_treasury/controllers/ping_controller.rb +34 -0
  37. data/lib/modern_treasury/controllers/return_controller.rb +105 -0
  38. data/lib/modern_treasury/controllers/reversal_controller.rb +99 -0
  39. data/lib/modern_treasury/controllers/routing_detail_controller.rb +131 -0
  40. data/lib/modern_treasury/controllers/transaction_controller.rb +133 -0
  41. data/lib/modern_treasury/controllers/transaction_line_item_controller.rb +39 -0
  42. data/lib/modern_treasury/controllers/validation_controller.rb +41 -0
  43. data/lib/modern_treasury/controllers/virtual_account_controller.rb +142 -0
  44. data/lib/modern_treasury/exceptions/api_exception.rb +21 -0
  45. data/lib/modern_treasury/exceptions/error_message_exception.rb +46 -0
  46. data/lib/modern_treasury/http/auth/basic_auth.rb +62 -0
  47. data/lib/modern_treasury/http/http_call_back.rb +10 -0
  48. data/lib/modern_treasury/http/http_method_enum.rb +10 -0
  49. data/lib/modern_treasury/http/http_request.rb +10 -0
  50. data/lib/modern_treasury/http/http_response.rb +10 -0
  51. data/lib/modern_treasury/http/proxy_settings.rb +22 -0
  52. data/lib/modern_treasury/models/account.rb +304 -0
  53. data/lib/modern_treasury/models/account1.rb +217 -0
  54. data/lib/modern_treasury/models/account_collection_flow.rb +178 -0
  55. data/lib/modern_treasury/models/account_collection_flow_create_request.rb +70 -0
  56. data/lib/modern_treasury/models/account_collection_flow_update_request.rb +61 -0
  57. data/lib/modern_treasury/models/account_detail.rb +211 -0
  58. data/lib/modern_treasury/models/account_detail1.rb +74 -0
  59. data/lib/modern_treasury/models/account_detail_create_request.rb +75 -0
  60. data/lib/modern_treasury/models/account_number_type2_enum.rb +48 -0
  61. data/lib/modern_treasury/models/account_number_type_enum.rb +49 -0
  62. data/lib/modern_treasury/models/account_type5_enum.rb +56 -0
  63. data/lib/modern_treasury/models/account_type_enum.rb +56 -0
  64. data/lib/modern_treasury/models/accounting.rb +88 -0
  65. data/lib/modern_treasury/models/accounting1.rb +63 -0
  66. data/lib/modern_treasury/models/accounts_type1_enum.rb +26 -0
  67. data/lib/modern_treasury/models/accounts_type_enum.rb +36 -0
  68. data/lib/modern_treasury/models/address.rb +231 -0
  69. data/lib/modern_treasury/models/address_request.rb +118 -0
  70. data/lib/modern_treasury/models/async_response.rb +68 -0
  71. data/lib/modern_treasury/models/balance.rb +164 -0
  72. data/lib/modern_treasury/models/balance_report.rb +178 -0
  73. data/lib/modern_treasury/models/balance_report_type1_enum.rb +44 -0
  74. data/lib/modern_treasury/models/balance_report_type_enum.rb +45 -0
  75. data/lib/modern_treasury/models/balance_type_enum.rb +63 -0
  76. data/lib/modern_treasury/models/balances.rb +71 -0
  77. data/lib/modern_treasury/models/balances1.rb +81 -0
  78. data/lib/modern_treasury/models/balances2.rb +120 -0
  79. data/lib/modern_treasury/models/balances3.rb +130 -0
  80. data/lib/modern_treasury/models/base_model.rb +110 -0
  81. data/lib/modern_treasury/models/charge_bearer_enum.rb +42 -0
  82. data/lib/modern_treasury/models/code1_enum.rb +200 -0
  83. data/lib/modern_treasury/models/code_enum.rb +68 -0
  84. data/lib/modern_treasury/models/connection.rb +209 -0
  85. data/lib/modern_treasury/models/contact_detail.rb +200 -0
  86. data/lib/modern_treasury/models/contact_detail_create_request.rb +75 -0
  87. data/lib/modern_treasury/models/contact_identifier_type_enum.rb +40 -0
  88. data/lib/modern_treasury/models/content_type_enum.rb +36 -0
  89. data/lib/modern_treasury/models/counterparty.rb +200 -0
  90. data/lib/modern_treasury/models/counterparty_billing_address.rb +106 -0
  91. data/lib/modern_treasury/models/counterparty_collect_account_request.rb +104 -0
  92. data/lib/modern_treasury/models/counterparty_collect_account_response.rb +82 -0
  93. data/lib/modern_treasury/models/counterparty_create_request.rb +161 -0
  94. data/lib/modern_treasury/models/counterparty_shipping_address.rb +107 -0
  95. data/lib/modern_treasury/models/counterparty_update_request.rb +107 -0
  96. data/lib/modern_treasury/models/created_at_enum.rb +36 -0
  97. data/lib/modern_treasury/models/currency1_enum.rb +37 -0
  98. data/lib/modern_treasury/models/currency_enum.rb +784 -0
  99. data/lib/modern_treasury/models/direction10_enum.rb +38 -0
  100. data/lib/modern_treasury/models/direction14_enum.rb +36 -0
  101. data/lib/modern_treasury/models/direction15_enum.rb +36 -0
  102. data/lib/modern_treasury/models/direction1_enum.rb +37 -0
  103. data/lib/modern_treasury/models/direction4_enum.rb +36 -0
  104. data/lib/modern_treasury/models/direction5_enum.rb +39 -0
  105. data/lib/modern_treasury/models/direction9_enum.rb +37 -0
  106. data/lib/modern_treasury/models/direction_enum.rb +38 -0
  107. data/lib/modern_treasury/models/document.rb +207 -0
  108. data/lib/modern_treasury/models/document_create_request.rb +92 -0
  109. data/lib/modern_treasury/models/document_detail.rb +154 -0
  110. data/lib/modern_treasury/models/documentable_type1_enum.rb +72 -0
  111. data/lib/modern_treasury/models/documentable_type2_enum.rb +72 -0
  112. data/lib/modern_treasury/models/documentable_type_enum.rb +75 -0
  113. data/lib/modern_treasury/models/effective_at_enum.rb +36 -0
  114. data/lib/modern_treasury/models/errors.rb +81 -0
  115. data/lib/modern_treasury/models/event.rb +162 -0
  116. data/lib/modern_treasury/models/expected_payment.rb +343 -0
  117. data/lib/modern_treasury/models/expected_payment_create_request.rb +254 -0
  118. data/lib/modern_treasury/models/expected_payment_update_request.rb +239 -0
  119. data/lib/modern_treasury/models/external_account.rb +283 -0
  120. data/lib/modern_treasury/models/external_account_complete_verification_request.rb +62 -0
  121. data/lib/modern_treasury/models/external_account_create_request.rb +230 -0
  122. data/lib/modern_treasury/models/external_account_update_request.rb +132 -0
  123. data/lib/modern_treasury/models/external_account_verify_request.rb +83 -0
  124. data/lib/modern_treasury/models/fallback_type_enum.rb +28 -0
  125. data/lib/modern_treasury/models/field_enum.rb +112 -0
  126. data/lib/modern_treasury/models/file.rb +81 -0
  127. data/lib/modern_treasury/models/foreign_exchange_indicator_enum.rb +38 -0
  128. data/lib/modern_treasury/models/incoming_payment_detail.rb +348 -0
  129. data/lib/modern_treasury/models/incoming_payment_detail_create_request.rb +141 -0
  130. data/lib/modern_treasury/models/incoming_payment_detail_update_request.rb +63 -0
  131. data/lib/modern_treasury/models/internal_account.rb +361 -0
  132. data/lib/modern_treasury/models/internal_account_create_request.rb +135 -0
  133. data/lib/modern_treasury/models/internal_account_update_request.rb +95 -0
  134. data/lib/modern_treasury/models/invoice.rb +342 -0
  135. data/lib/modern_treasury/models/invoice_create_request.rb +235 -0
  136. data/lib/modern_treasury/models/invoice_line_item.rb +171 -0
  137. data/lib/modern_treasury/models/invoice_line_item_create_request.rb +104 -0
  138. data/lib/modern_treasury/models/invoice_line_item_update_request.rb +240 -0
  139. data/lib/modern_treasury/models/invoice_update_request.rb +251 -0
  140. data/lib/modern_treasury/models/invoicer_address.rb +106 -0
  141. data/lib/modern_treasury/models/itemizable_type1_enum.rb +36 -0
  142. data/lib/modern_treasury/models/itemizable_type_enum.rb +36 -0
  143. data/lib/modern_treasury/models/ledger.rb +158 -0
  144. data/lib/modern_treasury/models/ledger_account.rb +220 -0
  145. data/lib/modern_treasury/models/ledger_account_category.rb +187 -0
  146. data/lib/modern_treasury/models/ledger_account_category_create_request.rb +125 -0
  147. data/lib/modern_treasury/models/ledger_account_category_update_request.rb +84 -0
  148. data/lib/modern_treasury/models/ledger_account_create_request.rb +150 -0
  149. data/lib/modern_treasury/models/ledger_account_normal_balance_enum.rb +36 -0
  150. data/lib/modern_treasury/models/ledger_account_payout.rb +238 -0
  151. data/lib/modern_treasury/models/ledger_account_payout_create_request.rb +152 -0
  152. data/lib/modern_treasury/models/ledger_account_payout_update_request.rb +85 -0
  153. data/lib/modern_treasury/models/ledger_account_statement.rb +233 -0
  154. data/lib/modern_treasury/models/ledger_account_statement_create_request.rb +122 -0
  155. data/lib/modern_treasury/models/ledger_account_update_request.rb +84 -0
  156. data/lib/modern_treasury/models/ledger_balance.rb +97 -0
  157. data/lib/modern_treasury/models/ledger_balances.rb +81 -0
  158. data/lib/modern_treasury/models/ledger_balances_with_effective_at.rb +123 -0
  159. data/lib/modern_treasury/models/ledger_create_request.rb +83 -0
  160. data/lib/modern_treasury/models/ledger_entry.rb +247 -0
  161. data/lib/modern_treasury/models/ledger_entry_create_request.rb +177 -0
  162. data/lib/modern_treasury/models/ledger_entry_of_transaction_version.rb +214 -0
  163. data/lib/modern_treasury/models/ledger_event_handler.rb +182 -0
  164. data/lib/modern_treasury/models/ledger_event_handler_conditions.rb +78 -0
  165. data/lib/modern_treasury/models/ledger_event_handler_create_request.rb +119 -0
  166. data/lib/modern_treasury/models/ledger_event_handler_ledger_entries.rb +80 -0
  167. data/lib/modern_treasury/models/ledger_event_handler_ledger_transaction_template.rb +103 -0
  168. data/lib/modern_treasury/models/ledger_transaction.rb +259 -0
  169. data/lib/modern_treasury/models/ledger_transaction_create_request.rb +164 -0
  170. data/lib/modern_treasury/models/ledger_transaction_reversal_create_request.rb +142 -0
  171. data/lib/modern_treasury/models/ledger_transaction_update_request.rb +115 -0
  172. data/lib/modern_treasury/models/ledger_transaction_version.rb +254 -0
  173. data/lib/modern_treasury/models/ledger_type_enum.rb +37 -0
  174. data/lib/modern_treasury/models/ledger_update_request.rb +84 -0
  175. data/lib/modern_treasury/models/ledgerable_event.rb +206 -0
  176. data/lib/modern_treasury/models/ledgerable_event_create_request.rb +140 -0
  177. data/lib/modern_treasury/models/ledgerable_type2_enum.rb +71 -0
  178. data/lib/modern_treasury/models/ledgerable_type5_enum.rb +69 -0
  179. data/lib/modern_treasury/models/ledgerable_type6_enum.rb +68 -0
  180. data/lib/modern_treasury/models/ledgerable_type_enum.rb +38 -0
  181. data/lib/modern_treasury/models/legacy_document_create_request.rb +70 -0
  182. data/lib/modern_treasury/models/line_item.rb +200 -0
  183. data/lib/modern_treasury/models/line_item_request.rb +98 -0
  184. data/lib/modern_treasury/models/line_item_update_request.rb +63 -0
  185. data/lib/modern_treasury/models/mreturn.rb +425 -0
  186. data/lib/modern_treasury/models/normal_balance2_enum.rb +36 -0
  187. data/lib/modern_treasury/models/normal_balance_enum.rb +36 -0
  188. data/lib/modern_treasury/models/order_by.rb +72 -0
  189. data/lib/modern_treasury/models/originating_account_number_type_enum.rb +48 -0
  190. data/lib/modern_treasury/models/originating_routing_number_type_enum.rb +68 -0
  191. data/lib/modern_treasury/models/paper_item.rb +249 -0
  192. data/lib/modern_treasury/models/party_address.rb +106 -0
  193. data/lib/modern_treasury/models/party_type5_enum.rb +36 -0
  194. data/lib/modern_treasury/models/party_type_enum.rb +36 -0
  195. data/lib/modern_treasury/models/payment_direction_enum.rb +36 -0
  196. data/lib/modern_treasury/models/payment_flow.rb +230 -0
  197. data/lib/modern_treasury/models/payment_flow_create_request.rb +103 -0
  198. data/lib/modern_treasury/models/payment_flow_update_request.rb +61 -0
  199. data/lib/modern_treasury/models/payment_method1_enum.rb +46 -0
  200. data/lib/modern_treasury/models/payment_method_enum.rb +42 -0
  201. data/lib/modern_treasury/models/payment_order.rb +820 -0
  202. data/lib/modern_treasury/models/payment_order_async_create_request.rb +536 -0
  203. data/lib/modern_treasury/models/payment_order_create_request.rb +556 -0
  204. data/lib/modern_treasury/models/payment_order_update_request.rb +543 -0
  205. data/lib/modern_treasury/models/payment_reference.rb +175 -0
  206. data/lib/modern_treasury/models/payment_reference_object.rb +156 -0
  207. data/lib/modern_treasury/models/payment_type13_enum.rb +96 -0
  208. data/lib/modern_treasury/models/payment_type1_enum.rb +97 -0
  209. data/lib/modern_treasury/models/payment_type2_enum.rb +96 -0
  210. data/lib/modern_treasury/models/payment_type4_enum.rb +96 -0
  211. data/lib/modern_treasury/models/payment_type5_enum.rb +36 -0
  212. data/lib/modern_treasury/models/payment_type6_enum.rb +97 -0
  213. data/lib/modern_treasury/models/payment_type_enum.rb +37 -0
  214. data/lib/modern_treasury/models/ping_response.rb +60 -0
  215. data/lib/modern_treasury/models/priority4_enum.rb +36 -0
  216. data/lib/modern_treasury/models/priority_enum.rb +38 -0
  217. data/lib/modern_treasury/models/reason1_enum.rb +50 -0
  218. data/lib/modern_treasury/models/reason_enum.rb +48 -0
  219. data/lib/modern_treasury/models/receiving_account.rb +304 -0
  220. data/lib/modern_treasury/models/receiving_account1.rb +219 -0
  221. data/lib/modern_treasury/models/receiving_account_type_enum.rb +36 -0
  222. data/lib/modern_treasury/models/reconciliation_method_enum.rb +38 -0
  223. data/lib/modern_treasury/models/reference_number_type1_enum.rb +248 -0
  224. data/lib/modern_treasury/models/reference_number_type_enum.rb +248 -0
  225. data/lib/modern_treasury/models/referenceable_type1_enum.rb +40 -0
  226. data/lib/modern_treasury/models/referenceable_type_enum.rb +41 -0
  227. data/lib/modern_treasury/models/return_create_request.rb +119 -0
  228. data/lib/modern_treasury/models/returnable_type1_enum.rb +48 -0
  229. data/lib/modern_treasury/models/returnable_type_enum.rb +48 -0
  230. data/lib/modern_treasury/models/reversal.rb +151 -0
  231. data/lib/modern_treasury/models/reversal_create_request.rb +86 -0
  232. data/lib/modern_treasury/models/role_enum.rb +36 -0
  233. data/lib/modern_treasury/models/routing_detail.rb +242 -0
  234. data/lib/modern_treasury/models/routing_detail1.rb +83 -0
  235. data/lib/modern_treasury/models/routing_detail_create_request.rb +87 -0
  236. data/lib/modern_treasury/models/routing_number_lookup_request.rb +124 -0
  237. data/lib/modern_treasury/models/routing_number_type1_enum.rb +68 -0
  238. data/lib/modern_treasury/models/routing_number_type7_enum.rb +55 -0
  239. data/lib/modern_treasury/models/routing_number_type8_enum.rb +68 -0
  240. data/lib/modern_treasury/models/routing_number_type_enum.rb +69 -0
  241. data/lib/modern_treasury/models/status11_enum.rb +40 -0
  242. data/lib/modern_treasury/models/status12_enum.rb +40 -0
  243. data/lib/modern_treasury/models/status15_enum.rb +41 -0
  244. data/lib/modern_treasury/models/status16_enum.rb +41 -0
  245. data/lib/modern_treasury/models/status17_enum.rb +45 -0
  246. data/lib/modern_treasury/models/status18_enum.rb +74 -0
  247. data/lib/modern_treasury/models/status19_enum.rb +52 -0
  248. data/lib/modern_treasury/models/status1_enum.rb +40 -0
  249. data/lib/modern_treasury/models/status20_enum.rb +40 -0
  250. data/lib/modern_treasury/models/status21_enum.rb +40 -0
  251. data/lib/modern_treasury/models/status22_enum.rb +40 -0
  252. data/lib/modern_treasury/models/status24_enum.rb +72 -0
  253. data/lib/modern_treasury/models/status2_enum.rb +41 -0
  254. data/lib/modern_treasury/models/status3_enum.rb +72 -0
  255. data/lib/modern_treasury/models/status4_enum.rb +52 -0
  256. data/lib/modern_treasury/models/status5_enum.rb +48 -0
  257. data/lib/modern_treasury/models/status6_enum.rb +49 -0
  258. data/lib/modern_treasury/models/status7_enum.rb +37 -0
  259. data/lib/modern_treasury/models/status8_enum.rb +37 -0
  260. data/lib/modern_treasury/models/status9_enum.rb +41 -0
  261. data/lib/modern_treasury/models/status_enum.rb +45 -0
  262. data/lib/modern_treasury/models/subtype_enum.rb +71 -0
  263. data/lib/modern_treasury/models/supported_payment_type_enum.rb +96 -0
  264. data/lib/modern_treasury/models/transactable_type_enum.rb +53 -0
  265. data/lib/modern_treasury/models/transaction.rb +311 -0
  266. data/lib/modern_treasury/models/transaction_line_item.rb +211 -0
  267. data/lib/modern_treasury/models/type10_enum.rb +64 -0
  268. data/lib/modern_treasury/models/type11_enum.rb +97 -0
  269. data/lib/modern_treasury/models/type12_enum.rb +37 -0
  270. data/lib/modern_treasury/models/type13_enum.rb +96 -0
  271. data/lib/modern_treasury/models/type14_enum.rb +64 -0
  272. data/lib/modern_treasury/models/type16_enum.rb +36 -0
  273. data/lib/modern_treasury/models/type1_enum.rb +97 -0
  274. data/lib/modern_treasury/models/type4_enum.rb +65 -0
  275. data/lib/modern_treasury/models/type5_enum.rb +97 -0
  276. data/lib/modern_treasury/models/type6_enum.rb +77 -0
  277. data/lib/modern_treasury/models/type_enum.rb +37 -0
  278. data/lib/modern_treasury/models/vendor_code_type1_enum.rb +111 -0
  279. data/lib/modern_treasury/models/vendor_code_type_enum.rb +108 -0
  280. data/lib/modern_treasury/models/verification_status1_enum.rb +44 -0
  281. data/lib/modern_treasury/models/verification_status_enum.rb +40 -0
  282. data/lib/modern_treasury/models/virtual_account.rb +247 -0
  283. data/lib/modern_treasury/models/virtual_account_create_request.rb +172 -0
  284. data/lib/modern_treasury/models/virtual_account_update_request.rb +85 -0
  285. data/lib/modern_treasury/utilities/date_time_helper.rb +11 -0
  286. data/lib/modern_treasury/utilities/file_wrapper.rb +28 -0
  287. data/lib/modern_treasury/utilities/union_type_lookup.rb +32 -0
  288. data/lib/modern_treasury.rb +316 -0
  289. data/test/controllers/controller_test_base.rb +23 -0
  290. data/test/controllers/test_account_collection_flow_controller.rb +64 -0
  291. data/test/controllers/test_connection_controller.rb +41 -0
  292. data/test/controllers/test_counterparty_controller.rb +65 -0
  293. data/test/controllers/test_document_controller.rb +41 -0
  294. data/test/controllers/test_event_controller.rb +46 -0
  295. data/test/controllers/test_expected_payment_controller.rb +71 -0
  296. data/test/controllers/test_external_account_controller.rb +63 -0
  297. data/test/controllers/test_incoming_payment_detail_controller.rb +68 -0
  298. data/test/controllers/test_internal_account_controller.rb +65 -0
  299. data/test/controllers/test_invoice_controller.rb +56 -0
  300. data/test/controllers/test_ledger_account_category_controller.rb +67 -0
  301. data/test/controllers/test_ledger_account_controller.rb +70 -0
  302. data/test/controllers/test_ledger_account_payout_controller.rb +62 -0
  303. data/test/controllers/test_ledger_account_statement_controller.rb +36 -0
  304. data/test/controllers/test_ledger_controller.rb +59 -0
  305. data/test/controllers/test_ledger_entry_controller.rb +65 -0
  306. data/test/controllers/test_ledger_event_handler_controller.rb +63 -0
  307. data/test/controllers/test_ledger_transaction_controller.rb +112 -0
  308. data/test/controllers/test_ledgerable_event_controller.rb +36 -0
  309. data/test/controllers/test_paper_item_controller.rb +43 -0
  310. data/test/controllers/test_payment_flow_controller.rb +67 -0
  311. data/test/controllers/test_payment_order_controller.rb +76 -0
  312. data/test/controllers/test_payment_reference_controller.rb +43 -0
  313. data/test/controllers/test_ping_controller.rb +31 -0
  314. data/test/controllers/test_return_controller.rb +64 -0
  315. data/test/controllers/test_transaction_controller.rb +56 -0
  316. data/test/controllers/test_virtual_account_controller.rb +63 -0
  317. data/test/http_response_catcher.rb +19 -0
  318. metadata +429 -0
@@ -0,0 +1,178 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module ModernTreasury
8
+ # AccountCollectionFlow Model.
9
+ class AccountCollectionFlow < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :object
20
+
21
+ # This field will be true if this object exists in the live environment or
22
+ # false if it exists in the test environment.
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :live_mode
25
+
26
+ # This field will be true if this object exists in the live environment or
27
+ # false if it exists in the test environment.
28
+ # @return [DateTime]
29
+ attr_accessor :created_at
30
+
31
+ # This field will be true if this object exists in the live environment or
32
+ # false if it exists in the test environment.
33
+ # @return [DateTime]
34
+ attr_accessor :updated_at
35
+
36
+ # The client token of the account collection flow. This token can be used
37
+ # to embed account collection in your client-side application.
38
+ # @return [String]
39
+ attr_accessor :client_token
40
+
41
+ # The current status of the account collection flow. One of `pending`,
42
+ # `completed`, `expired`, or `cancelled`.
43
+ # @return [StatusEnum]
44
+ attr_accessor :status
45
+
46
+ # The ID of a counterparty. An external account created with this flow will
47
+ # be associated with this counterparty.
48
+ # @return [UUID | String]
49
+ attr_accessor :counterparty_id
50
+
51
+ # If present, the ID of the external account created using this flow.
52
+ # @return [UUID | String]
53
+ attr_accessor :external_account_id
54
+
55
+ # If present, the ID of the external account created using this flow.
56
+ # @return [Array[PaymentTypeEnum]]
57
+ attr_accessor :payment_types
58
+
59
+ # A mapping from model property names to API property names.
60
+ def self.names
61
+ @_hash = {} if @_hash.nil?
62
+ @_hash['id'] = 'id'
63
+ @_hash['object'] = 'object'
64
+ @_hash['live_mode'] = 'live_mode'
65
+ @_hash['created_at'] = 'created_at'
66
+ @_hash['updated_at'] = 'updated_at'
67
+ @_hash['client_token'] = 'client_token'
68
+ @_hash['status'] = 'status'
69
+ @_hash['counterparty_id'] = 'counterparty_id'
70
+ @_hash['external_account_id'] = 'external_account_id'
71
+ @_hash['payment_types'] = 'payment_types'
72
+ @_hash
73
+ end
74
+
75
+ # An array for optional fields
76
+ def self.optionals
77
+ %w[
78
+ id
79
+ object
80
+ live_mode
81
+ created_at
82
+ updated_at
83
+ client_token
84
+ status
85
+ external_account_id
86
+ ]
87
+ end
88
+
89
+ # An array for nullable fields
90
+ def self.nullables
91
+ %w[
92
+ external_account_id
93
+ ]
94
+ end
95
+
96
+ def initialize(counterparty_id = nil, payment_types = nil, id = SKIP,
97
+ object = SKIP, live_mode = SKIP, created_at = SKIP,
98
+ updated_at = SKIP, client_token = SKIP, status = SKIP,
99
+ external_account_id = SKIP)
100
+ @id = id unless id == SKIP
101
+ @object = object unless object == SKIP
102
+ @live_mode = live_mode unless live_mode == SKIP
103
+ @created_at = created_at unless created_at == SKIP
104
+ @updated_at = updated_at unless updated_at == SKIP
105
+ @client_token = client_token unless client_token == SKIP
106
+ @status = status unless status == SKIP
107
+ @counterparty_id = counterparty_id
108
+ @external_account_id = external_account_id unless external_account_id == SKIP
109
+ @payment_types = payment_types
110
+ end
111
+
112
+ # Creates an instance of the object from a hash.
113
+ def self.from_hash(hash)
114
+ return nil unless hash
115
+
116
+ # Extract variables from the hash.
117
+ counterparty_id =
118
+ hash.key?('counterparty_id') ? hash['counterparty_id'] : nil
119
+ payment_types = hash.key?('payment_types') ? hash['payment_types'] : nil
120
+ id = hash.key?('id') ? hash['id'] : SKIP
121
+ object = hash.key?('object') ? hash['object'] : SKIP
122
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : SKIP
123
+ created_at = if hash.key?('created_at')
124
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
125
+ else
126
+ SKIP
127
+ end
128
+ updated_at = if hash.key?('updated_at')
129
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
130
+ else
131
+ SKIP
132
+ end
133
+ client_token = hash.key?('client_token') ? hash['client_token'] : SKIP
134
+ status = hash.key?('status') ? hash['status'] : SKIP
135
+ external_account_id =
136
+ hash.key?('external_account_id') ? hash['external_account_id'] : SKIP
137
+
138
+ # Create object from extracted values.
139
+ AccountCollectionFlow.new(counterparty_id,
140
+ payment_types,
141
+ id,
142
+ object,
143
+ live_mode,
144
+ created_at,
145
+ updated_at,
146
+ client_token,
147
+ status,
148
+ external_account_id)
149
+ end
150
+
151
+ def to_custom_created_at
152
+ DateTimeHelper.to_rfc3339(created_at)
153
+ end
154
+
155
+ def to_custom_updated_at
156
+ DateTimeHelper.to_rfc3339(updated_at)
157
+ end
158
+
159
+ # Provides a human-readable string representation of the object.
160
+ def to_s
161
+ class_name = self.class.name.split('::').last
162
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
163
+ " #{@created_at}, updated_at: #{@updated_at}, client_token: #{@client_token}, status:"\
164
+ " #{@status}, counterparty_id: #{@counterparty_id}, external_account_id:"\
165
+ " #{@external_account_id}, payment_types: #{@payment_types}>"
166
+ end
167
+
168
+ # Provides a debugging-friendly string with detailed object information.
169
+ def inspect
170
+ class_name = self.class.name.split('::').last
171
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
172
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
173
+ " #{@updated_at.inspect}, client_token: #{@client_token.inspect}, status:"\
174
+ " #{@status.inspect}, counterparty_id: #{@counterparty_id.inspect}, external_account_id:"\
175
+ " #{@external_account_id.inspect}, payment_types: #{@payment_types.inspect}>"
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,70 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountCollectionFlowCreateRequest Model.
8
+ class AccountCollectionFlowCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Required.
13
+ # @return [UUID | String]
14
+ attr_accessor :counterparty_id
15
+
16
+ # Required.
17
+ # @return [Array[String]]
18
+ attr_accessor :payment_types
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['counterparty_id'] = 'counterparty_id'
24
+ @_hash['payment_types'] = 'payment_types'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ []
31
+ end
32
+
33
+ # An array for nullable fields
34
+ def self.nullables
35
+ []
36
+ end
37
+
38
+ def initialize(counterparty_id = nil, payment_types = nil)
39
+ @counterparty_id = counterparty_id
40
+ @payment_types = payment_types
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ counterparty_id =
49
+ hash.key?('counterparty_id') ? hash['counterparty_id'] : nil
50
+ payment_types = hash.key?('payment_types') ? hash['payment_types'] : nil
51
+
52
+ # Create object from extracted values.
53
+ AccountCollectionFlowCreateRequest.new(counterparty_id,
54
+ payment_types)
55
+ end
56
+
57
+ # Provides a human-readable string representation of the object.
58
+ def to_s
59
+ class_name = self.class.name.split('::').last
60
+ "<#{class_name} counterparty_id: #{@counterparty_id}, payment_types: #{@payment_types}>"
61
+ end
62
+
63
+ # Provides a debugging-friendly string with detailed object information.
64
+ def inspect
65
+ class_name = self.class.name.split('::').last
66
+ "<#{class_name} counterparty_id: #{@counterparty_id.inspect}, payment_types:"\
67
+ " #{@payment_types.inspect}>"
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,61 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountCollectionFlowUpdateRequest Model.
8
+ class AccountCollectionFlowUpdateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Required. The updated status of the account collection flow. Can only be
13
+ # used to mark a flow as `cancelled`.
14
+ # @return [String]
15
+ attr_reader :status
16
+
17
+ # A mapping from model property names to API property names.
18
+ def self.names
19
+ @_hash = {} if @_hash.nil?
20
+ @_hash['status'] = 'status'
21
+ @_hash
22
+ end
23
+
24
+ # An array for optional fields
25
+ def self.optionals
26
+ []
27
+ end
28
+
29
+ # An array for nullable fields
30
+ def self.nullables
31
+ []
32
+ end
33
+
34
+ def initialize
35
+ @status = 'cancelled'
36
+ end
37
+
38
+ # Creates an instance of the object from a hash.
39
+ def self.from_hash(hash)
40
+ return nil unless hash
41
+
42
+ # Extract variables from the hash.
43
+
44
+
45
+ # Create object from extracted values.
46
+ AccountCollectionFlowUpdateRequest.new
47
+ end
48
+
49
+ # Provides a human-readable string representation of the object.
50
+ def to_s
51
+ class_name = self.class.name.split('::').last
52
+ "<#{class_name} status: #{@status}>"
53
+ end
54
+
55
+ # Provides a debugging-friendly string with detailed object information.
56
+ def inspect
57
+ class_name = self.class.name.split('::').last
58
+ "<#{class_name} status: #{@status.inspect}>"
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,211 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module ModernTreasury
8
+ # AccountDetail Model.
9
+ class AccountDetail < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :object
20
+
21
+ # This field will be true if this object exists in the live environment or
22
+ # false if it exists in the test environment.
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :live_mode
25
+
26
+ # This field will be true if this object exists in the live environment or
27
+ # false if it exists in the test environment.
28
+ # @return [DateTime]
29
+ attr_accessor :created_at
30
+
31
+ # This field will be true if this object exists in the live environment or
32
+ # false if it exists in the test environment.
33
+ # @return [DateTime]
34
+ attr_accessor :updated_at
35
+
36
+ # This field will be true if this object exists in the live environment or
37
+ # false if it exists in the test environment.
38
+ # @return [DateTime]
39
+ attr_accessor :discarded_at
40
+
41
+ # The account number for the bank account.
42
+ # @return [String]
43
+ attr_accessor :account_number
44
+
45
+ # One of `iban`, `clabe`, `wallet_address`, or `other`. Use `other` if the
46
+ # bank account number is in a generic format.
47
+ # @return [AccountNumberTypeEnum]
48
+ attr_accessor :account_number_type
49
+
50
+ # The last 4 digits of the account_number.
51
+ # @return [String]
52
+ attr_accessor :account_number_safe
53
+
54
+ # A mapping from model property names to API property names.
55
+ def self.names
56
+ @_hash = {} if @_hash.nil?
57
+ @_hash['id'] = 'id'
58
+ @_hash['object'] = 'object'
59
+ @_hash['live_mode'] = 'live_mode'
60
+ @_hash['created_at'] = 'created_at'
61
+ @_hash['updated_at'] = 'updated_at'
62
+ @_hash['discarded_at'] = 'discarded_at'
63
+ @_hash['account_number'] = 'account_number'
64
+ @_hash['account_number_type'] = 'account_number_type'
65
+ @_hash['account_number_safe'] = 'account_number_safe'
66
+ @_hash
67
+ end
68
+
69
+ # An array for optional fields
70
+ def self.optionals
71
+ %w[
72
+ account_number
73
+ ]
74
+ end
75
+
76
+ # An array for nullable fields
77
+ def self.nullables
78
+ %w[
79
+ discarded_at
80
+ ]
81
+ end
82
+
83
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
84
+ updated_at = nil, discarded_at = nil,
85
+ account_number_type = nil, account_number_safe = nil,
86
+ account_number = SKIP)
87
+ @id = id
88
+ @object = object
89
+ @live_mode = live_mode
90
+ @created_at = created_at
91
+ @updated_at = updated_at
92
+ @discarded_at = discarded_at
93
+ @account_number = account_number unless account_number == SKIP
94
+ @account_number_type = account_number_type
95
+ @account_number_safe = account_number_safe
96
+ end
97
+
98
+ # Creates an instance of the object from a hash.
99
+ def self.from_hash(hash)
100
+ return nil unless hash
101
+
102
+ # Extract variables from the hash.
103
+ id = hash.key?('id') ? hash['id'] : nil
104
+ object = hash.key?('object') ? hash['object'] : nil
105
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
106
+ created_at = if hash.key?('created_at')
107
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
108
+ end
109
+ updated_at = if hash.key?('updated_at')
110
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
111
+ end
112
+ discarded_at = if hash.key?('discarded_at')
113
+ (DateTimeHelper.from_rfc3339(hash['discarded_at']) if hash['discarded_at'])
114
+ end
115
+ account_number_type =
116
+ hash.key?('account_number_type') ? hash['account_number_type'] : nil
117
+ account_number_safe =
118
+ hash.key?('account_number_safe') ? hash['account_number_safe'] : nil
119
+ account_number =
120
+ hash.key?('account_number') ? hash['account_number'] : SKIP
121
+
122
+ # Create object from extracted values.
123
+ AccountDetail.new(id,
124
+ object,
125
+ live_mode,
126
+ created_at,
127
+ updated_at,
128
+ discarded_at,
129
+ account_number_type,
130
+ account_number_safe,
131
+ account_number)
132
+ end
133
+
134
+ def to_custom_created_at
135
+ DateTimeHelper.to_rfc3339(created_at)
136
+ end
137
+
138
+ def to_custom_updated_at
139
+ DateTimeHelper.to_rfc3339(updated_at)
140
+ end
141
+
142
+ def to_custom_discarded_at
143
+ DateTimeHelper.to_rfc3339(discarded_at)
144
+ end
145
+
146
+ # Validates an instance of the object from a given value.
147
+ # @param [AccountDetail | Hash] The value against the validation is performed.
148
+ def self.validate(value)
149
+ if value.instance_of? self
150
+ return (
151
+ APIHelper.valid_type?(value.id,
152
+ ->(val) { val.instance_of? String }) and
153
+ APIHelper.valid_type?(value.object,
154
+ ->(val) { val.instance_of? String }) and
155
+ APIHelper.valid_type?(value.live_mode,
156
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
157
+ APIHelper.valid_type?(value.created_at,
158
+ ->(val) { val.instance_of? DateTime }) and
159
+ APIHelper.valid_type?(value.updated_at,
160
+ ->(val) { val.instance_of? DateTime }) and
161
+ APIHelper.valid_type?(value.discarded_at,
162
+ ->(val) { val.instance_of? DateTime }) and
163
+ APIHelper.valid_type?(value.account_number_type,
164
+ ->(val) { AccountNumberTypeEnum.validate(val) }) and
165
+ APIHelper.valid_type?(value.account_number_safe,
166
+ ->(val) { val.instance_of? String })
167
+ )
168
+ end
169
+
170
+ return false unless value.instance_of? Hash
171
+
172
+ (
173
+ APIHelper.valid_type?(value['id'],
174
+ ->(val) { val.instance_of? String }) and
175
+ APIHelper.valid_type?(value['object'],
176
+ ->(val) { val.instance_of? String }) and
177
+ APIHelper.valid_type?(value['live_mode'],
178
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
179
+ APIHelper.valid_type?(value['created_at'],
180
+ ->(val) { val.instance_of? String }) and
181
+ APIHelper.valid_type?(value['updated_at'],
182
+ ->(val) { val.instance_of? String }) and
183
+ APIHelper.valid_type?(value['discarded_at'],
184
+ ->(val) { val.instance_of? String }) and
185
+ APIHelper.valid_type?(value['account_number_type'],
186
+ ->(val) { AccountNumberTypeEnum.validate(val) }) and
187
+ APIHelper.valid_type?(value['account_number_safe'],
188
+ ->(val) { val.instance_of? String })
189
+ )
190
+ end
191
+
192
+ # Provides a human-readable string representation of the object.
193
+ def to_s
194
+ class_name = self.class.name.split('::').last
195
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
196
+ " #{@created_at}, updated_at: #{@updated_at}, discarded_at: #{@discarded_at},"\
197
+ " account_number: #{@account_number}, account_number_type: #{@account_number_type},"\
198
+ " account_number_safe: #{@account_number_safe}>"
199
+ end
200
+
201
+ # Provides a debugging-friendly string with detailed object information.
202
+ def inspect
203
+ class_name = self.class.name.split('::').last
204
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
205
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
206
+ " #{@updated_at.inspect}, discarded_at: #{@discarded_at.inspect}, account_number:"\
207
+ " #{@account_number.inspect}, account_number_type: #{@account_number_type.inspect},"\
208
+ " account_number_safe: #{@account_number_safe.inspect}>"
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,74 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountDetail1 Model.
8
+ class AccountDetail1 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :account_number
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [AccountNumberType2Enum]
18
+ attr_accessor :account_number_type
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['account_number'] = 'account_number'
24
+ @_hash['account_number_type'] = 'account_number_type'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ account_number_type
32
+ ]
33
+ end
34
+
35
+ # An array for nullable fields
36
+ def self.nullables
37
+ []
38
+ end
39
+
40
+ def initialize(account_number = nil, account_number_type = SKIP)
41
+ @account_number = account_number
42
+ @account_number_type = account_number_type unless account_number_type == SKIP
43
+ end
44
+
45
+ # Creates an instance of the object from a hash.
46
+ def self.from_hash(hash)
47
+ return nil unless hash
48
+
49
+ # Extract variables from the hash.
50
+ account_number =
51
+ hash.key?('account_number') ? hash['account_number'] : nil
52
+ account_number_type =
53
+ hash.key?('account_number_type') ? hash['account_number_type'] : SKIP
54
+
55
+ # Create object from extracted values.
56
+ AccountDetail1.new(account_number,
57
+ account_number_type)
58
+ end
59
+
60
+ # Provides a human-readable string representation of the object.
61
+ def to_s
62
+ class_name = self.class.name.split('::').last
63
+ "<#{class_name} account_number: #{@account_number}, account_number_type:"\
64
+ " #{@account_number_type}>"
65
+ end
66
+
67
+ # Provides a debugging-friendly string with detailed object information.
68
+ def inspect
69
+ class_name = self.class.name.split('::').last
70
+ "<#{class_name} account_number: #{@account_number.inspect}, account_number_type:"\
71
+ " #{@account_number_type.inspect}>"
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,75 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountDetailCreateRequest Model.
8
+ class AccountDetailCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The account number for the bank account.
13
+ # @return [String]
14
+ attr_accessor :account_number
15
+
16
+ # One of `iban`, `clabe`, `wallet_address`, or `other`. Use `other` if the
17
+ # bank account number is in a generic format.
18
+ # @return [AccountNumberTypeEnum]
19
+ attr_accessor :account_number_type
20
+
21
+ # A mapping from model property names to API property names.
22
+ def self.names
23
+ @_hash = {} if @_hash.nil?
24
+ @_hash['account_number'] = 'account_number'
25
+ @_hash['account_number_type'] = 'account_number_type'
26
+ @_hash
27
+ end
28
+
29
+ # An array for optional fields
30
+ def self.optionals
31
+ %w[
32
+ account_number_type
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(account_number = nil, account_number_type = SKIP)
42
+ @account_number = account_number
43
+ @account_number_type = account_number_type unless account_number_type == SKIP
44
+ end
45
+
46
+ # Creates an instance of the object from a hash.
47
+ def self.from_hash(hash)
48
+ return nil unless hash
49
+
50
+ # Extract variables from the hash.
51
+ account_number =
52
+ hash.key?('account_number') ? hash['account_number'] : nil
53
+ account_number_type =
54
+ hash.key?('account_number_type') ? hash['account_number_type'] : SKIP
55
+
56
+ # Create object from extracted values.
57
+ AccountDetailCreateRequest.new(account_number,
58
+ account_number_type)
59
+ end
60
+
61
+ # Provides a human-readable string representation of the object.
62
+ def to_s
63
+ class_name = self.class.name.split('::').last
64
+ "<#{class_name} account_number: #{@account_number}, account_number_type:"\
65
+ " #{@account_number_type}>"
66
+ end
67
+
68
+ # Provides a debugging-friendly string with detailed object information.
69
+ def inspect
70
+ class_name = self.class.name.split('::').last
71
+ "<#{class_name} account_number: #{@account_number.inspect}, account_number_type:"\
72
+ " #{@account_number_type.inspect}>"
73
+ end
74
+ end
75
+ end