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,200 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # The return code. For ACH returns, this is the required ACH return code.
8
+ class Code1Enum
9
+ CODE1_ENUM = [
10
+ # TODO: Write general description for ENUM_901
11
+ ENUM_901 = '901'.freeze,
12
+
13
+ # TODO: Write general description for ENUM_902
14
+ ENUM_902 = '902'.freeze,
15
+
16
+ # TODO: Write general description for ENUM_903
17
+ ENUM_903 = '903'.freeze,
18
+
19
+ # TODO: Write general description for ENUM_904
20
+ ENUM_904 = '904'.freeze,
21
+
22
+ # TODO: Write general description for ENUM_905
23
+ ENUM_905 = '905'.freeze,
24
+
25
+ # TODO: Write general description for ENUM_907
26
+ ENUM_907 = '907'.freeze,
27
+
28
+ # TODO: Write general description for ENUM_908
29
+ ENUM_908 = '908'.freeze,
30
+
31
+ # TODO: Write general description for ENUM_909
32
+ ENUM_909 = '909'.freeze,
33
+
34
+ # TODO: Write general description for ENUM_910
35
+ ENUM_910 = '910'.freeze,
36
+
37
+ # TODO: Write general description for ENUM_911
38
+ ENUM_911 = '911'.freeze,
39
+
40
+ # TODO: Write general description for ENUM_912
41
+ ENUM_912 = '912'.freeze,
42
+
43
+ # TODO: Write general description for ENUM_914
44
+ ENUM_914 = '914'.freeze,
45
+
46
+ # TODO: Write general description for R01
47
+ R01 = 'R01'.freeze,
48
+
49
+ # TODO: Write general description for R02
50
+ R02 = 'R02'.freeze,
51
+
52
+ # TODO: Write general description for R03
53
+ R03 = 'R03'.freeze,
54
+
55
+ # TODO: Write general description for R04
56
+ R04 = 'R04'.freeze,
57
+
58
+ # TODO: Write general description for R05
59
+ R05 = 'R05'.freeze,
60
+
61
+ # TODO: Write general description for R06
62
+ R06 = 'R06'.freeze,
63
+
64
+ # TODO: Write general description for R07
65
+ R07 = 'R07'.freeze,
66
+
67
+ # TODO: Write general description for R08
68
+ R08 = 'R08'.freeze,
69
+
70
+ # TODO: Write general description for R09
71
+ R09 = 'R09'.freeze,
72
+
73
+ # TODO: Write general description for R10
74
+ R10 = 'R10'.freeze,
75
+
76
+ # TODO: Write general description for R11
77
+ R11 = 'R11'.freeze,
78
+
79
+ # TODO: Write general description for R12
80
+ R12 = 'R12'.freeze,
81
+
82
+ # TODO: Write general description for R14
83
+ R14 = 'R14'.freeze,
84
+
85
+ # TODO: Write general description for R15
86
+ R15 = 'R15'.freeze,
87
+
88
+ # TODO: Write general description for R16
89
+ R16 = 'R16'.freeze,
90
+
91
+ # TODO: Write general description for R17
92
+ R17 = 'R17'.freeze,
93
+
94
+ # TODO: Write general description for R20
95
+ R20 = 'R20'.freeze,
96
+
97
+ # TODO: Write general description for R21
98
+ R21 = 'R21'.freeze,
99
+
100
+ # TODO: Write general description for R22
101
+ R22 = 'R22'.freeze,
102
+
103
+ # TODO: Write general description for R23
104
+ R23 = 'R23'.freeze,
105
+
106
+ # TODO: Write general description for R24
107
+ R24 = 'R24'.freeze,
108
+
109
+ # TODO: Write general description for R29
110
+ R29 = 'R29'.freeze,
111
+
112
+ # TODO: Write general description for R31
113
+ R31 = 'R31'.freeze,
114
+
115
+ # TODO: Write general description for R33
116
+ R33 = 'R33'.freeze,
117
+
118
+ # TODO: Write general description for R37
119
+ R37 = 'R37'.freeze,
120
+
121
+ # TODO: Write general description for R38
122
+ R38 = 'R38'.freeze,
123
+
124
+ # TODO: Write general description for R39
125
+ R39 = 'R39'.freeze,
126
+
127
+ # TODO: Write general description for R51
128
+ R51 = 'R51'.freeze,
129
+
130
+ # TODO: Write general description for R52
131
+ R52 = 'R52'.freeze,
132
+
133
+ # TODO: Write general description for R53
134
+ R53 = 'R53'.freeze,
135
+
136
+ # TODO: Write general description for CURRENCYCLOUD
137
+ CURRENCYCLOUD = 'currencycloud'.freeze
138
+ ].freeze
139
+
140
+ def self.validate(value)
141
+ return false if value.nil?
142
+
143
+ CODE1_ENUM.include?(value)
144
+ end
145
+
146
+ def self.from_value(value, default_value = ENUM_901)
147
+ return default_value if value.nil?
148
+
149
+ str = value.to_s.strip
150
+
151
+ case str.downcase
152
+ when 'enum_901' then ENUM_901
153
+ when 'enum_902' then ENUM_902
154
+ when 'enum_903' then ENUM_903
155
+ when 'enum_904' then ENUM_904
156
+ when 'enum_905' then ENUM_905
157
+ when 'enum_907' then ENUM_907
158
+ when 'enum_908' then ENUM_908
159
+ when 'enum_909' then ENUM_909
160
+ when 'enum_910' then ENUM_910
161
+ when 'enum_911' then ENUM_911
162
+ when 'enum_912' then ENUM_912
163
+ when 'enum_914' then ENUM_914
164
+ when 'r01' then R01
165
+ when 'r02' then R02
166
+ when 'r03' then R03
167
+ when 'r04' then R04
168
+ when 'r05' then R05
169
+ when 'r06' then R06
170
+ when 'r07' then R07
171
+ when 'r08' then R08
172
+ when 'r09' then R09
173
+ when 'r10' then R10
174
+ when 'r11' then R11
175
+ when 'r12' then R12
176
+ when 'r14' then R14
177
+ when 'r15' then R15
178
+ when 'r16' then R16
179
+ when 'r17' then R17
180
+ when 'r20' then R20
181
+ when 'r21' then R21
182
+ when 'r22' then R22
183
+ when 'r23' then R23
184
+ when 'r24' then R24
185
+ when 'r29' then R29
186
+ when 'r31' then R31
187
+ when 'r33' then R33
188
+ when 'r37' then R37
189
+ when 'r38' then R38
190
+ when 'r39' then R39
191
+ when 'r51' then R51
192
+ when 'r52' then R52
193
+ when 'r53' then R53
194
+ when 'currencycloud' then CURRENCYCLOUD
195
+ else
196
+ default_value
197
+ end
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,68 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # Code.
8
+ class CodeEnum
9
+ CODE_ENUM = [
10
+ # TODO: Write general description for PARAMETER_INVALID
11
+ PARAMETER_INVALID = 'parameter_invalid'.freeze,
12
+
13
+ # TODO: Write general description for PARAMETER_MISSING
14
+ PARAMETER_MISSING = 'parameter_missing'.freeze,
15
+
16
+ # TODO: Write general description for RESOURCE_NOT_FOUND
17
+ RESOURCE_NOT_FOUND = 'resource_not_found'.freeze,
18
+
19
+ # TODO: Write general description for NOT_FOUND
20
+ NOT_FOUND = 'not_found'.freeze,
21
+
22
+ # TODO: Write general description for FORBIDDEN
23
+ FORBIDDEN = 'forbidden'.freeze,
24
+
25
+ # TODO: Write general description for INVALID_IP
26
+ INVALID_IP = 'invalid_ip'.freeze,
27
+
28
+ # TODO: Write general description for INVALID_KEY
29
+ INVALID_KEY = 'invalid_key'.freeze,
30
+
31
+ # TODO: Write general description for HEADER_INVALID
32
+ HEADER_INVALID = 'header_invalid'.freeze,
33
+
34
+ # TODO: Write general description for EXPIRED_KEY
35
+ EXPIRED_KEY = 'expired_key'.freeze,
36
+
37
+ # TODO: Write general description for TOO_MANY_REQUESTS
38
+ TOO_MANY_REQUESTS = 'too_many_requests'.freeze
39
+ ].freeze
40
+
41
+ def self.validate(value)
42
+ return false if value.nil?
43
+
44
+ CODE_ENUM.include?(value)
45
+ end
46
+
47
+ def self.from_value(value, default_value = PARAMETER_INVALID)
48
+ return default_value if value.nil?
49
+
50
+ str = value.to_s.strip
51
+
52
+ case str.downcase
53
+ when 'parameter_invalid' then PARAMETER_INVALID
54
+ when 'parameter_missing' then PARAMETER_MISSING
55
+ when 'resource_not_found' then RESOURCE_NOT_FOUND
56
+ when 'not_found' then NOT_FOUND
57
+ when 'forbidden' then FORBIDDEN
58
+ when 'invalid_ip' then INVALID_IP
59
+ when 'invalid_key' then INVALID_KEY
60
+ when 'header_invalid' then HEADER_INVALID
61
+ when 'expired_key' then EXPIRED_KEY
62
+ when 'too_many_requests' then TOO_MANY_REQUESTS
63
+ else
64
+ default_value
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,209 @@
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
+ # Connection Model.
9
+ class Connection < 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
+ # Unique identifier for the bank or vendor.
42
+ # @return [UUID | String]
43
+ attr_accessor :vendor_id
44
+
45
+ # An identifier given to this connection by the bank.
46
+ # @return [UUID | String]
47
+ attr_accessor :vendor_customer_id
48
+
49
+ # A human-friendly name for the bank or vendor.
50
+ # @return [String]
51
+ attr_accessor :vendor_name
52
+
53
+ # A mapping from model property names to API property names.
54
+ def self.names
55
+ @_hash = {} if @_hash.nil?
56
+ @_hash['id'] = 'id'
57
+ @_hash['object'] = 'object'
58
+ @_hash['live_mode'] = 'live_mode'
59
+ @_hash['created_at'] = 'created_at'
60
+ @_hash['updated_at'] = 'updated_at'
61
+ @_hash['discarded_at'] = 'discarded_at'
62
+ @_hash['vendor_id'] = 'vendor_id'
63
+ @_hash['vendor_customer_id'] = 'vendor_customer_id'
64
+ @_hash['vendor_name'] = 'vendor_name'
65
+ @_hash
66
+ end
67
+
68
+ # An array for optional fields
69
+ def self.optionals
70
+ []
71
+ end
72
+
73
+ # An array for nullable fields
74
+ def self.nullables
75
+ %w[
76
+ discarded_at
77
+ vendor_customer_id
78
+ ]
79
+ end
80
+
81
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
82
+ updated_at = nil, discarded_at = nil, vendor_id = nil,
83
+ vendor_customer_id = nil, vendor_name = nil)
84
+ @id = id
85
+ @object = object
86
+ @live_mode = live_mode
87
+ @created_at = created_at
88
+ @updated_at = updated_at
89
+ @discarded_at = discarded_at
90
+ @vendor_id = vendor_id
91
+ @vendor_customer_id = vendor_customer_id
92
+ @vendor_name = vendor_name
93
+ end
94
+
95
+ # Creates an instance of the object from a hash.
96
+ def self.from_hash(hash)
97
+ return nil unless hash
98
+
99
+ # Extract variables from the hash.
100
+ id = hash.key?('id') ? hash['id'] : nil
101
+ object = hash.key?('object') ? hash['object'] : nil
102
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
103
+ created_at = if hash.key?('created_at')
104
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
105
+ end
106
+ updated_at = if hash.key?('updated_at')
107
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
108
+ end
109
+ discarded_at = if hash.key?('discarded_at')
110
+ (DateTimeHelper.from_rfc3339(hash['discarded_at']) if hash['discarded_at'])
111
+ end
112
+ vendor_id = hash.key?('vendor_id') ? hash['vendor_id'] : nil
113
+ vendor_customer_id =
114
+ hash.key?('vendor_customer_id') ? hash['vendor_customer_id'] : nil
115
+ vendor_name = hash.key?('vendor_name') ? hash['vendor_name'] : nil
116
+
117
+ # Create object from extracted values.
118
+ Connection.new(id,
119
+ object,
120
+ live_mode,
121
+ created_at,
122
+ updated_at,
123
+ discarded_at,
124
+ vendor_id,
125
+ vendor_customer_id,
126
+ vendor_name)
127
+ end
128
+
129
+ def to_custom_created_at
130
+ DateTimeHelper.to_rfc3339(created_at)
131
+ end
132
+
133
+ def to_custom_updated_at
134
+ DateTimeHelper.to_rfc3339(updated_at)
135
+ end
136
+
137
+ def to_custom_discarded_at
138
+ DateTimeHelper.to_rfc3339(discarded_at)
139
+ end
140
+
141
+ # Validates an instance of the object from a given value.
142
+ # @param [Connection | Hash] The value against the validation is performed.
143
+ def self.validate(value)
144
+ if value.instance_of? self
145
+ return (
146
+ APIHelper.valid_type?(value.id,
147
+ ->(val) { val.instance_of? String }) and
148
+ APIHelper.valid_type?(value.object,
149
+ ->(val) { val.instance_of? String }) and
150
+ APIHelper.valid_type?(value.live_mode,
151
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
152
+ APIHelper.valid_type?(value.created_at,
153
+ ->(val) { val.instance_of? DateTime }) and
154
+ APIHelper.valid_type?(value.updated_at,
155
+ ->(val) { val.instance_of? DateTime }) and
156
+ APIHelper.valid_type?(value.discarded_at,
157
+ ->(val) { val.instance_of? DateTime }) and
158
+ APIHelper.valid_type?(value.vendor_id,
159
+ ->(val) { val.instance_of? String }) and
160
+ APIHelper.valid_type?(value.vendor_customer_id,
161
+ ->(val) { val.instance_of? String }) and
162
+ APIHelper.valid_type?(value.vendor_name,
163
+ ->(val) { val.instance_of? String })
164
+ )
165
+ end
166
+
167
+ return false unless value.instance_of? Hash
168
+
169
+ (
170
+ APIHelper.valid_type?(value['id'],
171
+ ->(val) { val.instance_of? String }) and
172
+ APIHelper.valid_type?(value['object'],
173
+ ->(val) { val.instance_of? String }) and
174
+ APIHelper.valid_type?(value['live_mode'],
175
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
176
+ APIHelper.valid_type?(value['created_at'],
177
+ ->(val) { val.instance_of? String }) and
178
+ APIHelper.valid_type?(value['updated_at'],
179
+ ->(val) { val.instance_of? String }) and
180
+ APIHelper.valid_type?(value['discarded_at'],
181
+ ->(val) { val.instance_of? String }) and
182
+ APIHelper.valid_type?(value['vendor_id'],
183
+ ->(val) { val.instance_of? String }) and
184
+ APIHelper.valid_type?(value['vendor_customer_id'],
185
+ ->(val) { val.instance_of? String }) and
186
+ APIHelper.valid_type?(value['vendor_name'],
187
+ ->(val) { val.instance_of? String })
188
+ )
189
+ end
190
+
191
+ # Provides a human-readable string representation of the object.
192
+ def to_s
193
+ class_name = self.class.name.split('::').last
194
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
195
+ " #{@created_at}, updated_at: #{@updated_at}, discarded_at: #{@discarded_at}, vendor_id:"\
196
+ " #{@vendor_id}, vendor_customer_id: #{@vendor_customer_id}, vendor_name: #{@vendor_name}>"
197
+ end
198
+
199
+ # Provides a debugging-friendly string with detailed object information.
200
+ def inspect
201
+ class_name = self.class.name.split('::').last
202
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
203
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
204
+ " #{@updated_at.inspect}, discarded_at: #{@discarded_at.inspect}, vendor_id:"\
205
+ " #{@vendor_id.inspect}, vendor_customer_id: #{@vendor_customer_id.inspect}, vendor_name:"\
206
+ " #{@vendor_name.inspect}>"
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,200 @@
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
+ # ContactDetail Model.
9
+ class ContactDetail < 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
+ # This field will be true if this object exists in the live environment or
42
+ # false if it exists in the test environment.
43
+ # @return [String]
44
+ attr_accessor :contact_identifier
45
+
46
+ # This field will be true if this object exists in the live environment or
47
+ # false if it exists in the test environment.
48
+ # @return [ContactIdentifierTypeEnum]
49
+ attr_accessor :contact_identifier_type
50
+
51
+ # A mapping from model property names to API property names.
52
+ def self.names
53
+ @_hash = {} if @_hash.nil?
54
+ @_hash['id'] = 'id'
55
+ @_hash['object'] = 'object'
56
+ @_hash['live_mode'] = 'live_mode'
57
+ @_hash['created_at'] = 'created_at'
58
+ @_hash['updated_at'] = 'updated_at'
59
+ @_hash['discarded_at'] = 'discarded_at'
60
+ @_hash['contact_identifier'] = 'contact_identifier'
61
+ @_hash['contact_identifier_type'] = 'contact_identifier_type'
62
+ @_hash
63
+ end
64
+
65
+ # An array for optional fields
66
+ def self.optionals
67
+ []
68
+ end
69
+
70
+ # An array for nullable fields
71
+ def self.nullables
72
+ %w[
73
+ discarded_at
74
+ ]
75
+ end
76
+
77
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
78
+ updated_at = nil, discarded_at = nil,
79
+ contact_identifier = nil, contact_identifier_type = nil)
80
+ @id = id
81
+ @object = object
82
+ @live_mode = live_mode
83
+ @created_at = created_at
84
+ @updated_at = updated_at
85
+ @discarded_at = discarded_at
86
+ @contact_identifier = contact_identifier
87
+ @contact_identifier_type = contact_identifier_type
88
+ end
89
+
90
+ # Creates an instance of the object from a hash.
91
+ def self.from_hash(hash)
92
+ return nil unless hash
93
+
94
+ # Extract variables from the hash.
95
+ id = hash.key?('id') ? hash['id'] : nil
96
+ object = hash.key?('object') ? hash['object'] : nil
97
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
98
+ created_at = if hash.key?('created_at')
99
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
100
+ end
101
+ updated_at = if hash.key?('updated_at')
102
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
103
+ end
104
+ discarded_at = if hash.key?('discarded_at')
105
+ (DateTimeHelper.from_rfc3339(hash['discarded_at']) if hash['discarded_at'])
106
+ end
107
+ contact_identifier =
108
+ hash.key?('contact_identifier') ? hash['contact_identifier'] : nil
109
+ contact_identifier_type =
110
+ hash.key?('contact_identifier_type') ? hash['contact_identifier_type'] : nil
111
+
112
+ # Create object from extracted values.
113
+ ContactDetail.new(id,
114
+ object,
115
+ live_mode,
116
+ created_at,
117
+ updated_at,
118
+ discarded_at,
119
+ contact_identifier,
120
+ contact_identifier_type)
121
+ end
122
+
123
+ def to_custom_created_at
124
+ DateTimeHelper.to_rfc3339(created_at)
125
+ end
126
+
127
+ def to_custom_updated_at
128
+ DateTimeHelper.to_rfc3339(updated_at)
129
+ end
130
+
131
+ def to_custom_discarded_at
132
+ DateTimeHelper.to_rfc3339(discarded_at)
133
+ end
134
+
135
+ # Validates an instance of the object from a given value.
136
+ # @param [ContactDetail | Hash] The value against the validation is performed.
137
+ def self.validate(value)
138
+ if value.instance_of? self
139
+ return (
140
+ APIHelper.valid_type?(value.id,
141
+ ->(val) { val.instance_of? String }) and
142
+ APIHelper.valid_type?(value.object,
143
+ ->(val) { val.instance_of? String }) and
144
+ APIHelper.valid_type?(value.live_mode,
145
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
146
+ APIHelper.valid_type?(value.created_at,
147
+ ->(val) { val.instance_of? DateTime }) and
148
+ APIHelper.valid_type?(value.updated_at,
149
+ ->(val) { val.instance_of? DateTime }) and
150
+ APIHelper.valid_type?(value.discarded_at,
151
+ ->(val) { val.instance_of? DateTime }) and
152
+ APIHelper.valid_type?(value.contact_identifier,
153
+ ->(val) { val.instance_of? String }) and
154
+ APIHelper.valid_type?(value.contact_identifier_type,
155
+ ->(val) { ContactIdentifierTypeEnum.validate(val) })
156
+ )
157
+ end
158
+
159
+ return false unless value.instance_of? Hash
160
+
161
+ (
162
+ APIHelper.valid_type?(value['id'],
163
+ ->(val) { val.instance_of? String }) and
164
+ APIHelper.valid_type?(value['object'],
165
+ ->(val) { val.instance_of? String }) and
166
+ APIHelper.valid_type?(value['live_mode'],
167
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
168
+ APIHelper.valid_type?(value['created_at'],
169
+ ->(val) { val.instance_of? String }) and
170
+ APIHelper.valid_type?(value['updated_at'],
171
+ ->(val) { val.instance_of? String }) and
172
+ APIHelper.valid_type?(value['discarded_at'],
173
+ ->(val) { val.instance_of? String }) and
174
+ APIHelper.valid_type?(value['contact_identifier'],
175
+ ->(val) { val.instance_of? String }) and
176
+ APIHelper.valid_type?(value['contact_identifier_type'],
177
+ ->(val) { ContactIdentifierTypeEnum.validate(val) })
178
+ )
179
+ end
180
+
181
+ # Provides a human-readable string representation of the object.
182
+ def to_s
183
+ class_name = self.class.name.split('::').last
184
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
185
+ " #{@created_at}, updated_at: #{@updated_at}, discarded_at: #{@discarded_at},"\
186
+ " contact_identifier: #{@contact_identifier}, contact_identifier_type:"\
187
+ " #{@contact_identifier_type}>"
188
+ end
189
+
190
+ # Provides a debugging-friendly string with detailed object information.
191
+ def inspect
192
+ class_name = self.class.name.split('::').last
193
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
194
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
195
+ " #{@updated_at.inspect}, discarded_at: #{@discarded_at.inspect}, contact_identifier:"\
196
+ " #{@contact_identifier.inspect}, contact_identifier_type:"\
197
+ " #{@contact_identifier_type.inspect}>"
198
+ end
199
+ end
200
+ end