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,103 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LedgerEventHandlerLedgerTransactionTemplate Model.
8
+ class LedgerEventHandlerLedgerTransactionTemplate < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An optional description for internal use.
13
+ # @return [String]
14
+ attr_accessor :description
15
+
16
+ # The timestamp (ISO8601 format) at which the ledger transaction happened
17
+ # for reporting purposes.
18
+ # @return [String]
19
+ attr_accessor :effective_at
20
+
21
+ # An array of ledger entry objects.
22
+ # @return [Array[LedgerEventHandlerLedgerEntries]]
23
+ attr_accessor :ledger_entries
24
+
25
+ # Additional data represented as key-value pairs. Both the key and value
26
+ # must be strings.
27
+ # @return [Hash[String, String]]
28
+ attr_accessor :metadata
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['description'] = 'description'
34
+ @_hash['effective_at'] = 'effective_at'
35
+ @_hash['ledger_entries'] = 'ledger_entries'
36
+ @_hash['metadata'] = 'metadata'
37
+ @_hash
38
+ end
39
+
40
+ # An array for optional fields
41
+ def self.optionals
42
+ []
43
+ end
44
+
45
+ # An array for nullable fields
46
+ def self.nullables
47
+ %w[
48
+ description
49
+ effective_at
50
+ metadata
51
+ ]
52
+ end
53
+
54
+ def initialize(description = nil, effective_at = nil, ledger_entries = nil,
55
+ metadata = nil)
56
+ @description = description
57
+ @effective_at = effective_at
58
+ @ledger_entries = ledger_entries
59
+ @metadata = metadata
60
+ end
61
+
62
+ # Creates an instance of the object from a hash.
63
+ def self.from_hash(hash)
64
+ return nil unless hash
65
+
66
+ # Extract variables from the hash.
67
+ description = hash.key?('description') ? hash['description'] : nil
68
+ effective_at = hash.key?('effective_at') ? hash['effective_at'] : nil
69
+ # Parameter is an array, so we need to iterate through it
70
+ ledger_entries = nil
71
+ unless hash['ledger_entries'].nil?
72
+ ledger_entries = []
73
+ hash['ledger_entries'].each do |structure|
74
+ ledger_entries << (LedgerEventHandlerLedgerEntries.from_hash(structure) if structure)
75
+ end
76
+ end
77
+
78
+ ledger_entries = nil unless hash.key?('ledger_entries')
79
+ metadata = hash.key?('metadata') ? hash['metadata'] : nil
80
+
81
+ # Create object from extracted values.
82
+ LedgerEventHandlerLedgerTransactionTemplate.new(description,
83
+ effective_at,
84
+ ledger_entries,
85
+ metadata)
86
+ end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} description: #{@description}, effective_at: #{@effective_at},"\
92
+ " ledger_entries: #{@ledger_entries}, metadata: #{@metadata}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} description: #{@description.inspect}, effective_at:"\
99
+ " #{@effective_at.inspect}, ledger_entries: #{@ledger_entries.inspect}, metadata:"\
100
+ " #{@metadata.inspect}>"
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,259 @@
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
+ # LedgerTransaction Model.
9
+ class LedgerTransaction < 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
+ # An optional description for internal use.
37
+ # @return [String]
38
+ attr_accessor :description
39
+
40
+ # To post a ledger transaction at creation, use `posted`.
41
+ # @return [Status11Enum]
42
+ attr_accessor :status
43
+
44
+ # Additional data represented as key-value pairs. Both the key and value
45
+ # must be strings.
46
+ # @return [Hash[String, String]]
47
+ attr_accessor :metadata
48
+
49
+ # The timestamp (ISO8601 format) at which the ledger transaction happened
50
+ # for reporting purposes.
51
+ # @return [Date]
52
+ attr_accessor :effective_at
53
+
54
+ # The date (YYYY-MM-DD) on which the ledger transaction happened for
55
+ # reporting purposes.
56
+ # @return [Date]
57
+ attr_accessor :effective_date
58
+
59
+ # An array of ledger entry objects.
60
+ # @return [Array[LedgerEntry]]
61
+ attr_accessor :ledger_entries
62
+
63
+ # The time on which the ledger transaction posted. This is null if the
64
+ # ledger transaction is pending.
65
+ # @return [DateTime]
66
+ attr_accessor :posted_at
67
+
68
+ # The ID of the ledger this ledger transaction belongs to.
69
+ # @return [UUID | String]
70
+ attr_accessor :ledger_id
71
+
72
+ # If the ledger transaction can be reconciled to another object in Modern
73
+ # Treasury, the type will be populated here, otherwise null. This can be one
74
+ # of payment_order, incoming_payment_detail, expected_payment, return, or
75
+ # reversal.
76
+ # @return [LedgerableType2Enum]
77
+ attr_accessor :ledgerable_type
78
+
79
+ # If the ledger transaction can be reconciled to another object in Modern
80
+ # Treasury, the id will be populated here, otherwise null.
81
+ # @return [UUID | String]
82
+ attr_accessor :ledgerable_id
83
+
84
+ # A unique string to represent the ledger transaction. Only one pending or
85
+ # posted ledger transaction may have this ID in the ledger.
86
+ # @return [String]
87
+ attr_accessor :external_id
88
+
89
+ # The ID of the original ledger transaction that this ledger transaction
90
+ # reverses.
91
+ # @return [String]
92
+ attr_accessor :reverses_ledger_transaction_id
93
+
94
+ # A mapping from model property names to API property names.
95
+ def self.names
96
+ @_hash = {} if @_hash.nil?
97
+ @_hash['id'] = 'id'
98
+ @_hash['object'] = 'object'
99
+ @_hash['live_mode'] = 'live_mode'
100
+ @_hash['created_at'] = 'created_at'
101
+ @_hash['updated_at'] = 'updated_at'
102
+ @_hash['description'] = 'description'
103
+ @_hash['status'] = 'status'
104
+ @_hash['metadata'] = 'metadata'
105
+ @_hash['effective_at'] = 'effective_at'
106
+ @_hash['effective_date'] = 'effective_date'
107
+ @_hash['ledger_entries'] = 'ledger_entries'
108
+ @_hash['posted_at'] = 'posted_at'
109
+ @_hash['ledger_id'] = 'ledger_id'
110
+ @_hash['ledgerable_type'] = 'ledgerable_type'
111
+ @_hash['ledgerable_id'] = 'ledgerable_id'
112
+ @_hash['external_id'] = 'external_id'
113
+ @_hash['reverses_ledger_transaction_id'] =
114
+ 'reverses_ledger_transaction_id'
115
+ @_hash
116
+ end
117
+
118
+ # An array for optional fields
119
+ def self.optionals
120
+ []
121
+ end
122
+
123
+ # An array for nullable fields
124
+ def self.nullables
125
+ %w[
126
+ description
127
+ posted_at
128
+ ledgerable_type
129
+ ledgerable_id
130
+ external_id
131
+ reverses_ledger_transaction_id
132
+ ]
133
+ end
134
+
135
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
136
+ updated_at = nil, description = nil, status = nil,
137
+ metadata = nil, effective_at = nil, effective_date = nil,
138
+ ledger_entries = nil, posted_at = nil, ledger_id = nil,
139
+ ledgerable_type = nil, ledgerable_id = nil,
140
+ external_id = nil, reverses_ledger_transaction_id = nil)
141
+ @id = id
142
+ @object = object
143
+ @live_mode = live_mode
144
+ @created_at = created_at
145
+ @updated_at = updated_at
146
+ @description = description
147
+ @status = status
148
+ @metadata = metadata
149
+ @effective_at = effective_at
150
+ @effective_date = effective_date
151
+ @ledger_entries = ledger_entries
152
+ @posted_at = posted_at
153
+ @ledger_id = ledger_id
154
+ @ledgerable_type = ledgerable_type
155
+ @ledgerable_id = ledgerable_id
156
+ @external_id = external_id
157
+ @reverses_ledger_transaction_id = reverses_ledger_transaction_id
158
+ end
159
+
160
+ # Creates an instance of the object from a hash.
161
+ def self.from_hash(hash)
162
+ return nil unless hash
163
+
164
+ # Extract variables from the hash.
165
+ id = hash.key?('id') ? hash['id'] : nil
166
+ object = hash.key?('object') ? hash['object'] : nil
167
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
168
+ created_at = if hash.key?('created_at')
169
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
170
+ end
171
+ updated_at = if hash.key?('updated_at')
172
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
173
+ end
174
+ description = hash.key?('description') ? hash['description'] : nil
175
+ status = hash.key?('status') ? hash['status'] : nil
176
+ metadata = hash.key?('metadata') ? hash['metadata'] : nil
177
+ effective_at = hash.key?('effective_at') ? hash['effective_at'] : nil
178
+ effective_date =
179
+ hash.key?('effective_date') ? hash['effective_date'] : nil
180
+ # Parameter is an array, so we need to iterate through it
181
+ ledger_entries = nil
182
+ unless hash['ledger_entries'].nil?
183
+ ledger_entries = []
184
+ hash['ledger_entries'].each do |structure|
185
+ ledger_entries << (LedgerEntry.from_hash(structure) if structure)
186
+ end
187
+ end
188
+
189
+ ledger_entries = nil unless hash.key?('ledger_entries')
190
+ posted_at = if hash.key?('posted_at')
191
+ (DateTimeHelper.from_rfc3339(hash['posted_at']) if hash['posted_at'])
192
+ end
193
+ ledger_id = hash.key?('ledger_id') ? hash['ledger_id'] : nil
194
+ ledgerable_type =
195
+ hash.key?('ledgerable_type') ? hash['ledgerable_type'] : nil
196
+ ledgerable_id = hash.key?('ledgerable_id') ? hash['ledgerable_id'] : nil
197
+ external_id = hash.key?('external_id') ? hash['external_id'] : nil
198
+ reverses_ledger_transaction_id =
199
+ hash.key?('reverses_ledger_transaction_id') ? hash['reverses_ledger_transaction_id'] : nil
200
+
201
+ # Create object from extracted values.
202
+ LedgerTransaction.new(id,
203
+ object,
204
+ live_mode,
205
+ created_at,
206
+ updated_at,
207
+ description,
208
+ status,
209
+ metadata,
210
+ effective_at,
211
+ effective_date,
212
+ ledger_entries,
213
+ posted_at,
214
+ ledger_id,
215
+ ledgerable_type,
216
+ ledgerable_id,
217
+ external_id,
218
+ reverses_ledger_transaction_id)
219
+ end
220
+
221
+ def to_custom_created_at
222
+ DateTimeHelper.to_rfc3339(created_at)
223
+ end
224
+
225
+ def to_custom_updated_at
226
+ DateTimeHelper.to_rfc3339(updated_at)
227
+ end
228
+
229
+ def to_custom_posted_at
230
+ DateTimeHelper.to_rfc3339(posted_at)
231
+ end
232
+
233
+ # Provides a human-readable string representation of the object.
234
+ def to_s
235
+ class_name = self.class.name.split('::').last
236
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
237
+ " #{@created_at}, updated_at: #{@updated_at}, description: #{@description}, status:"\
238
+ " #{@status}, metadata: #{@metadata}, effective_at: #{@effective_at}, effective_date:"\
239
+ " #{@effective_date}, ledger_entries: #{@ledger_entries}, posted_at: #{@posted_at},"\
240
+ " ledger_id: #{@ledger_id}, ledgerable_type: #{@ledgerable_type}, ledgerable_id:"\
241
+ " #{@ledgerable_id}, external_id: #{@external_id}, reverses_ledger_transaction_id:"\
242
+ " #{@reverses_ledger_transaction_id}>"
243
+ end
244
+
245
+ # Provides a debugging-friendly string with detailed object information.
246
+ def inspect
247
+ class_name = self.class.name.split('::').last
248
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
249
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
250
+ " #{@updated_at.inspect}, description: #{@description.inspect}, status: #{@status.inspect},"\
251
+ " metadata: #{@metadata.inspect}, effective_at: #{@effective_at.inspect}, effective_date:"\
252
+ " #{@effective_date.inspect}, ledger_entries: #{@ledger_entries.inspect}, posted_at:"\
253
+ " #{@posted_at.inspect}, ledger_id: #{@ledger_id.inspect}, ledgerable_type:"\
254
+ " #{@ledgerable_type.inspect}, ledgerable_id: #{@ledgerable_id.inspect}, external_id:"\
255
+ " #{@external_id.inspect}, reverses_ledger_transaction_id:"\
256
+ " #{@reverses_ledger_transaction_id.inspect}>"
257
+ end
258
+ end
259
+ end
@@ -0,0 +1,164 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LedgerTransactionCreateRequest Model.
8
+ class LedgerTransactionCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An optional description for internal use.
13
+ # @return [String]
14
+ attr_accessor :description
15
+
16
+ # To post a ledger transaction at creation, use `posted`.
17
+ # @return [Status11Enum]
18
+ attr_accessor :status
19
+
20
+ # Additional data represented as key-value pairs. Both the key and value
21
+ # must be strings.
22
+ # @return [Hash[String, String]]
23
+ attr_accessor :metadata
24
+
25
+ # The timestamp (ISO8601 format) at which the ledger transaction happened
26
+ # for reporting purposes.
27
+ # @return [Date]
28
+ attr_accessor :effective_at
29
+
30
+ # The date (YYYY-MM-DD) on which the ledger transaction happened for
31
+ # reporting purposes.
32
+ # @return [Date]
33
+ attr_accessor :effective_date
34
+
35
+ # An array of ledger entry objects.
36
+ # @return [Array[LedgerEntryCreateRequest]]
37
+ attr_accessor :ledger_entries
38
+
39
+ # A unique string to represent the ledger transaction. Only one pending or
40
+ # posted ledger transaction may have this ID in the ledger.
41
+ # @return [String]
42
+ attr_accessor :external_id
43
+
44
+ # If the ledger transaction can be reconciled to another object in Modern
45
+ # Treasury, the type will be populated here, otherwise null. This can be one
46
+ # of payment_order, incoming_payment_detail, expected_payment, return, or
47
+ # reversal.
48
+ # @return [LedgerableType2Enum]
49
+ attr_accessor :ledgerable_type
50
+
51
+ # If the ledger transaction can be reconciled to another object in Modern
52
+ # Treasury, the id will be populated here, otherwise null.
53
+ # @return [UUID | String]
54
+ attr_accessor :ledgerable_id
55
+
56
+ # A mapping from model property names to API property names.
57
+ def self.names
58
+ @_hash = {} if @_hash.nil?
59
+ @_hash['description'] = 'description'
60
+ @_hash['status'] = 'status'
61
+ @_hash['metadata'] = 'metadata'
62
+ @_hash['effective_at'] = 'effective_at'
63
+ @_hash['effective_date'] = 'effective_date'
64
+ @_hash['ledger_entries'] = 'ledger_entries'
65
+ @_hash['external_id'] = 'external_id'
66
+ @_hash['ledgerable_type'] = 'ledgerable_type'
67
+ @_hash['ledgerable_id'] = 'ledgerable_id'
68
+ @_hash
69
+ end
70
+
71
+ # An array for optional fields
72
+ def self.optionals
73
+ %w[
74
+ description
75
+ status
76
+ metadata
77
+ effective_at
78
+ effective_date
79
+ external_id
80
+ ledgerable_type
81
+ ledgerable_id
82
+ ]
83
+ end
84
+
85
+ # An array for nullable fields
86
+ def self.nullables
87
+ %w[
88
+ description
89
+ ]
90
+ end
91
+
92
+ def initialize(ledger_entries = nil, description = SKIP, status = SKIP,
93
+ metadata = SKIP, effective_at = SKIP, effective_date = SKIP,
94
+ external_id = SKIP, ledgerable_type = SKIP,
95
+ ledgerable_id = SKIP)
96
+ @description = description unless description == SKIP
97
+ @status = status unless status == SKIP
98
+ @metadata = metadata unless metadata == SKIP
99
+ @effective_at = effective_at unless effective_at == SKIP
100
+ @effective_date = effective_date unless effective_date == SKIP
101
+ @ledger_entries = ledger_entries
102
+ @external_id = external_id unless external_id == SKIP
103
+ @ledgerable_type = ledgerable_type unless ledgerable_type == SKIP
104
+ @ledgerable_id = ledgerable_id unless ledgerable_id == SKIP
105
+ end
106
+
107
+ # Creates an instance of the object from a hash.
108
+ def self.from_hash(hash)
109
+ return nil unless hash
110
+
111
+ # Extract variables from the hash.
112
+ # Parameter is an array, so we need to iterate through it
113
+ ledger_entries = nil
114
+ unless hash['ledger_entries'].nil?
115
+ ledger_entries = []
116
+ hash['ledger_entries'].each do |structure|
117
+ ledger_entries << (LedgerEntryCreateRequest.from_hash(structure) if structure)
118
+ end
119
+ end
120
+
121
+ ledger_entries = nil unless hash.key?('ledger_entries')
122
+ description = hash.key?('description') ? hash['description'] : SKIP
123
+ status = hash.key?('status') ? hash['status'] : SKIP
124
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
125
+ effective_at = hash.key?('effective_at') ? hash['effective_at'] : SKIP
126
+ effective_date =
127
+ hash.key?('effective_date') ? hash['effective_date'] : SKIP
128
+ external_id = hash.key?('external_id') ? hash['external_id'] : SKIP
129
+ ledgerable_type =
130
+ hash.key?('ledgerable_type') ? hash['ledgerable_type'] : SKIP
131
+ ledgerable_id = hash.key?('ledgerable_id') ? hash['ledgerable_id'] : SKIP
132
+
133
+ # Create object from extracted values.
134
+ LedgerTransactionCreateRequest.new(ledger_entries,
135
+ description,
136
+ status,
137
+ metadata,
138
+ effective_at,
139
+ effective_date,
140
+ external_id,
141
+ ledgerable_type,
142
+ ledgerable_id)
143
+ end
144
+
145
+ # Provides a human-readable string representation of the object.
146
+ def to_s
147
+ class_name = self.class.name.split('::').last
148
+ "<#{class_name} description: #{@description}, status: #{@status}, metadata: #{@metadata},"\
149
+ " effective_at: #{@effective_at}, effective_date: #{@effective_date}, ledger_entries:"\
150
+ " #{@ledger_entries}, external_id: #{@external_id}, ledgerable_type: #{@ledgerable_type},"\
151
+ " ledgerable_id: #{@ledgerable_id}>"
152
+ end
153
+
154
+ # Provides a debugging-friendly string with detailed object information.
155
+ def inspect
156
+ class_name = self.class.name.split('::').last
157
+ "<#{class_name} description: #{@description.inspect}, status: #{@status.inspect}, metadata:"\
158
+ " #{@metadata.inspect}, effective_at: #{@effective_at.inspect}, effective_date:"\
159
+ " #{@effective_date.inspect}, ledger_entries: #{@ledger_entries.inspect}, external_id:"\
160
+ " #{@external_id.inspect}, ledgerable_type: #{@ledgerable_type.inspect}, ledgerable_id:"\
161
+ " #{@ledgerable_id.inspect}>"
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,142 @@
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
+ # LedgerTransactionReversalCreateRequest Model.
9
+ class LedgerTransactionReversalCreateRequest < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # An optional free-form description for the reversal ledger transaction.
14
+ # Maximum of 1000 characters allowed.
15
+ # @return [String]
16
+ attr_accessor :description
17
+
18
+ # Status of the reversal ledger transaction. It defaults to `posted` if not
19
+ # provided.
20
+ # @return [Status15Enum]
21
+ attr_accessor :status
22
+
23
+ # Additional data to be added to the reversal ledger transaction as
24
+ # key-value pairs. Both the key and value must be strings.
25
+ # @return [Hash[String, String]]
26
+ attr_accessor :metadata
27
+
28
+ # The timestamp (ISO8601 format) at which the reversal ledger transaction
29
+ # happened for reporting purposes. It defaults to the `effective_at` of the
30
+ # original ledger transaction if not provided.
31
+ # @return [DateTime]
32
+ attr_accessor :effective_at
33
+
34
+ # Must be unique within the ledger.
35
+ # @return [String]
36
+ attr_accessor :external_id
37
+
38
+ # Specify this if you'd like to link the reversal ledger transaction to a
39
+ # Payment object like Return or Reversal.
40
+ # @return [LedgerableType5Enum]
41
+ attr_accessor :ledgerable_type
42
+
43
+ # Specify this if you'd like to link the reversal ledger transaction to a
44
+ # Payment object like Return or Reversal.
45
+ # @return [UUID | String]
46
+ attr_accessor :ledgerable_id
47
+
48
+ # A mapping from model property names to API property names.
49
+ def self.names
50
+ @_hash = {} if @_hash.nil?
51
+ @_hash['description'] = 'description'
52
+ @_hash['status'] = 'status'
53
+ @_hash['metadata'] = 'metadata'
54
+ @_hash['effective_at'] = 'effective_at'
55
+ @_hash['external_id'] = 'external_id'
56
+ @_hash['ledgerable_type'] = 'ledgerable_type'
57
+ @_hash['ledgerable_id'] = 'ledgerable_id'
58
+ @_hash
59
+ end
60
+
61
+ # An array for optional fields
62
+ def self.optionals
63
+ %w[
64
+ description
65
+ status
66
+ metadata
67
+ effective_at
68
+ external_id
69
+ ledgerable_type
70
+ ledgerable_id
71
+ ]
72
+ end
73
+
74
+ # An array for nullable fields
75
+ def self.nullables
76
+ %w[
77
+ effective_at
78
+ ]
79
+ end
80
+
81
+ def initialize(description = SKIP, status = SKIP, metadata = SKIP,
82
+ effective_at = SKIP, external_id = SKIP,
83
+ ledgerable_type = SKIP, ledgerable_id = SKIP)
84
+ @description = description unless description == SKIP
85
+ @status = status unless status == SKIP
86
+ @metadata = metadata unless metadata == SKIP
87
+ @effective_at = effective_at unless effective_at == SKIP
88
+ @external_id = external_id unless external_id == SKIP
89
+ @ledgerable_type = ledgerable_type unless ledgerable_type == SKIP
90
+ @ledgerable_id = ledgerable_id unless ledgerable_id == SKIP
91
+ end
92
+
93
+ # Creates an instance of the object from a hash.
94
+ def self.from_hash(hash)
95
+ return nil unless hash
96
+
97
+ # Extract variables from the hash.
98
+ description = hash.key?('description') ? hash['description'] : SKIP
99
+ status = hash.key?('status') ? hash['status'] : SKIP
100
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
101
+ effective_at = if hash.key?('effective_at')
102
+ (DateTimeHelper.from_rfc3339(hash['effective_at']) if hash['effective_at'])
103
+ else
104
+ SKIP
105
+ end
106
+ external_id = hash.key?('external_id') ? hash['external_id'] : SKIP
107
+ ledgerable_type =
108
+ hash.key?('ledgerable_type') ? hash['ledgerable_type'] : SKIP
109
+ ledgerable_id = hash.key?('ledgerable_id') ? hash['ledgerable_id'] : SKIP
110
+
111
+ # Create object from extracted values.
112
+ LedgerTransactionReversalCreateRequest.new(description,
113
+ status,
114
+ metadata,
115
+ effective_at,
116
+ external_id,
117
+ ledgerable_type,
118
+ ledgerable_id)
119
+ end
120
+
121
+ def to_custom_effective_at
122
+ DateTimeHelper.to_rfc3339(effective_at)
123
+ end
124
+
125
+ # Provides a human-readable string representation of the object.
126
+ def to_s
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} description: #{@description}, status: #{@status}, metadata: #{@metadata},"\
129
+ " effective_at: #{@effective_at}, external_id: #{@external_id}, ledgerable_type:"\
130
+ " #{@ledgerable_type}, ledgerable_id: #{@ledgerable_id}>"
131
+ end
132
+
133
+ # Provides a debugging-friendly string with detailed object information.
134
+ def inspect
135
+ class_name = self.class.name.split('::').last
136
+ "<#{class_name} description: #{@description.inspect}, status: #{@status.inspect}, metadata:"\
137
+ " #{@metadata.inspect}, effective_at: #{@effective_at.inspect}, external_id:"\
138
+ " #{@external_id.inspect}, ledgerable_type: #{@ledgerable_type.inspect}, ledgerable_id:"\
139
+ " #{@ledgerable_id.inspect}>"
140
+ end
141
+ end
142
+ end