checkbook 1.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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +324 -0
  4. data/Rakefile +10 -0
  5. data/checkbook.gemspec +39 -0
  6. data/docs/Approval.md +669 -0
  7. data/docs/Bank.md +645 -0
  8. data/docs/Card.md +290 -0
  9. data/docs/Checkbook.md +370 -0
  10. data/docs/Directory.md +520 -0
  11. data/docs/Interac.md +290 -0
  12. data/docs/Invoice.md +452 -0
  13. data/docs/Mailbox.md +454 -0
  14. data/docs/Payment.md +1247 -0
  15. data/docs/Paypal.md +290 -0
  16. data/docs/Subscription.md +453 -0
  17. data/docs/User.md +722 -0
  18. data/docs/Vcc.md +448 -0
  19. data/docs/Venmo.md +290 -0
  20. data/docs/Wallet.md +292 -0
  21. data/docs/Wire.md +290 -0
  22. data/lib/checkbook/api/approval.rb +662 -0
  23. data/lib/checkbook/api/bank.rb +613 -0
  24. data/lib/checkbook/api/card.rb +284 -0
  25. data/lib/checkbook/api/checkbook.rb +357 -0
  26. data/lib/checkbook/api/directory.rb +522 -0
  27. data/lib/checkbook/api/interac.rb +284 -0
  28. data/lib/checkbook/api/invoice.rb +452 -0
  29. data/lib/checkbook/api/mailbox.rb +441 -0
  30. data/lib/checkbook/api/payment.rb +1188 -0
  31. data/lib/checkbook/api/paypal.rb +284 -0
  32. data/lib/checkbook/api/subscription.rb +463 -0
  33. data/lib/checkbook/api/user.rb +687 -0
  34. data/lib/checkbook/api/vcc.rb +439 -0
  35. data/lib/checkbook/api/venmo.rb +284 -0
  36. data/lib/checkbook/api/wallet.rb +284 -0
  37. data/lib/checkbook/api/wire.rb +284 -0
  38. data/lib/checkbook/api_client.rb +404 -0
  39. data/lib/checkbook/api_error.rb +58 -0
  40. data/lib/checkbook/api_model_base.rb +88 -0
  41. data/lib/checkbook/configuration.rb +316 -0
  42. data/lib/checkbook/models/address.rb +266 -0
  43. data/lib/checkbook/models/address_response.rb +316 -0
  44. data/lib/checkbook/models/api_key_list_response.rb +241 -0
  45. data/lib/checkbook/models/api_key_response.rb +315 -0
  46. data/lib/checkbook/models/approval.rb +445 -0
  47. data/lib/checkbook/models/approval_number.rb +104 -0
  48. data/lib/checkbook/models/approval_recipient.rb +105 -0
  49. data/lib/checkbook/models/attachment.rb +283 -0
  50. data/lib/checkbook/models/bank.rb +475 -0
  51. data/lib/checkbook/models/bank_release_request.rb +238 -0
  52. data/lib/checkbook/models/bank_settings.rb +232 -0
  53. data/lib/checkbook/models/bank_verify_request.rb +311 -0
  54. data/lib/checkbook/models/base_checkbook_request.rb +328 -0
  55. data/lib/checkbook/models/brand.rb +297 -0
  56. data/lib/checkbook/models/brand_response.rb +255 -0
  57. data/lib/checkbook/models/button.rb +221 -0
  58. data/lib/checkbook/models/card.rb +357 -0
  59. data/lib/checkbook/models/card_address.rb +377 -0
  60. data/lib/checkbook/models/check.rb +445 -0
  61. data/lib/checkbook/models/check_address.rb +407 -0
  62. data/lib/checkbook/models/check_response.rb +238 -0
  63. data/lib/checkbook/models/check_settings.rb +230 -0
  64. data/lib/checkbook/models/checkbook_address.rb +442 -0
  65. data/lib/checkbook/models/color.rb +232 -0
  66. data/lib/checkbook/models/convert_check_request.rb +264 -0
  67. data/lib/checkbook/models/counterparty.rb +264 -0
  68. data/lib/checkbook/models/create_bank_request.rb +342 -0
  69. data/lib/checkbook/models/create_bank_response.rb +475 -0
  70. data/lib/checkbook/models/create_card_intent.rb +313 -0
  71. data/lib/checkbook/models/create_card_intent_response.rb +221 -0
  72. data/lib/checkbook/models/create_card_request.rb +284 -0
  73. data/lib/checkbook/models/create_card_response.rb +332 -0
  74. data/lib/checkbook/models/create_check_subscription_request.rb +476 -0
  75. data/lib/checkbook/models/create_check_subscription_request_recipient.rb +104 -0
  76. data/lib/checkbook/models/create_digital_check_request.rb +470 -0
  77. data/lib/checkbook/models/create_digital_check_request_attachment.rb +104 -0
  78. data/lib/checkbook/models/create_digital_check_request_number.rb +105 -0
  79. data/lib/checkbook/models/create_digital_check_request_recipient.rb +104 -0
  80. data/lib/checkbook/models/create_direct_check_request.rb +554 -0
  81. data/lib/checkbook/models/create_direct_check_request_number.rb +104 -0
  82. data/lib/checkbook/models/create_directory_bank_request.rb +342 -0
  83. data/lib/checkbook/models/create_directory_bank_response.rb +329 -0
  84. data/lib/checkbook/models/create_directory_card_request.rb +300 -0
  85. data/lib/checkbook/models/create_directory_card_response.rb +329 -0
  86. data/lib/checkbook/models/create_directory_request.rb +291 -0
  87. data/lib/checkbook/models/create_directory_response.rb +314 -0
  88. data/lib/checkbook/models/create_instant_check_request.rb +487 -0
  89. data/lib/checkbook/models/create_interac_request.rb +247 -0
  90. data/lib/checkbook/models/create_invoice_request.rb +393 -0
  91. data/lib/checkbook/models/create_invoice_request_attachment.rb +104 -0
  92. data/lib/checkbook/models/create_invoice_response.rb +399 -0
  93. data/lib/checkbook/models/create_invoice_subscription_request.rb +471 -0
  94. data/lib/checkbook/models/create_mailbox_response.rb +301 -0
  95. data/lib/checkbook/models/create_multi_check_request.rb +432 -0
  96. data/lib/checkbook/models/create_paypal_request.rb +247 -0
  97. data/lib/checkbook/models/create_physical_check_request.rb +446 -0
  98. data/lib/checkbook/models/create_physical_check_request_number.rb +105 -0
  99. data/lib/checkbook/models/create_physical_check_request_remittance_advice.rb +104 -0
  100. data/lib/checkbook/models/create_subscription_response.rb +454 -0
  101. data/lib/checkbook/models/create_subscription_response_recipient.rb +104 -0
  102. data/lib/checkbook/models/create_user_request.rb +302 -0
  103. data/lib/checkbook/models/create_user_response.rb +304 -0
  104. data/lib/checkbook/models/create_vcc_request.rb +242 -0
  105. data/lib/checkbook/models/create_vcc_response.rb +302 -0
  106. data/lib/checkbook/models/create_venmo_request.rb +247 -0
  107. data/lib/checkbook/models/create_wallet_request.rb +282 -0
  108. data/lib/checkbook/models/create_wallet_response.rb +285 -0
  109. data/lib/checkbook/models/create_wire_request.rb +342 -0
  110. data/lib/checkbook/models/csv_approval_response.rb +240 -0
  111. data/lib/checkbook/models/csv_check_request.rb +313 -0
  112. data/lib/checkbook/models/csv_check_response.rb +240 -0
  113. data/lib/checkbook/models/csv_invoice_request.rb +268 -0
  114. data/lib/checkbook/models/csv_invoice_response.rb +240 -0
  115. data/lib/checkbook/models/csv_multi_check_request.rb +268 -0
  116. data/lib/checkbook/models/deposit_check_request.rb +238 -0
  117. data/lib/checkbook/models/developer.rb +238 -0
  118. data/lib/checkbook/models/digital_recipient.rb +257 -0
  119. data/lib/checkbook/models/directory_account.rb +329 -0
  120. data/lib/checkbook/models/directory_address.rb +277 -0
  121. data/lib/checkbook/models/directory_request_address.rb +392 -0
  122. data/lib/checkbook/models/endorse_check_request.rb +267 -0
  123. data/lib/checkbook/models/error.rb +246 -0
  124. data/lib/checkbook/models/file_row.rb +362 -0
  125. data/lib/checkbook/models/get_api_key_response.rb +253 -0
  126. data/lib/checkbook/models/get_approval_response.rb +434 -0
  127. data/lib/checkbook/models/get_approvals_response.rb +318 -0
  128. data/lib/checkbook/models/get_banks_response.rb +240 -0
  129. data/lib/checkbook/models/get_cards_response.rb +240 -0
  130. data/lib/checkbook/models/get_check_deposited_response.rb +246 -0
  131. data/lib/checkbook/models/get_check_failed_response.rb +224 -0
  132. data/lib/checkbook/models/get_check_response.rb +434 -0
  133. data/lib/checkbook/models/get_check_tracking_response_express.rb +240 -0
  134. data/lib/checkbook/models/get_check_tracking_response_first_class.rb +240 -0
  135. data/lib/checkbook/models/get_checkbook_response.rb +325 -0
  136. data/lib/checkbook/models/get_checkbook_tracking_response_express.rb +240 -0
  137. data/lib/checkbook/models/get_checkbook_tracking_response_first_class.rb +240 -0
  138. data/lib/checkbook/models/get_checkbooks_response.rb +318 -0
  139. data/lib/checkbook/models/get_checks_response.rb +318 -0
  140. data/lib/checkbook/models/get_directories_response.rb +270 -0
  141. data/lib/checkbook/models/get_institutions_response.rb +240 -0
  142. data/lib/checkbook/models/get_interac_response.rb +240 -0
  143. data/lib/checkbook/models/get_invoice_response.rb +468 -0
  144. data/lib/checkbook/models/get_invoices_response.rb +318 -0
  145. data/lib/checkbook/models/get_mail_response.rb +318 -0
  146. data/lib/checkbook/models/get_mailboxes_response.rb +318 -0
  147. data/lib/checkbook/models/get_paypal_response.rb +240 -0
  148. data/lib/checkbook/models/get_subscription_response.rb +522 -0
  149. data/lib/checkbook/models/get_subscriptions_response.rb +318 -0
  150. data/lib/checkbook/models/get_user_response.rb +239 -0
  151. data/lib/checkbook/models/get_vcc_response.rb +393 -0
  152. data/lib/checkbook/models/get_venmo_response.rb +240 -0
  153. data/lib/checkbook/models/get_wallets_response.rb +240 -0
  154. data/lib/checkbook/models/get_wire_response.rb +240 -0
  155. data/lib/checkbook/models/iav_account.rb +276 -0
  156. data/lib/checkbook/models/iav_login_response.rb +245 -0
  157. data/lib/checkbook/models/iav_login_schema.rb +238 -0
  158. data/lib/checkbook/models/iav_plaid_request.rb +238 -0
  159. data/lib/checkbook/models/iav_plaid_response.rb +223 -0
  160. data/lib/checkbook/models/iavmfa_schema.rb +249 -0
  161. data/lib/checkbook/models/inline_response200.rb +222 -0
  162. data/lib/checkbook/models/institution.rb +277 -0
  163. data/lib/checkbook/models/interac_account_response.rb +276 -0
  164. data/lib/checkbook/models/invoice_attachment.rb +283 -0
  165. data/lib/checkbook/models/invoice_file_row.rb +374 -0
  166. data/lib/checkbook/models/login_field.rb +277 -0
  167. data/lib/checkbook/models/mail_response.rb +367 -0
  168. data/lib/checkbook/models/mailbox_address.rb +285 -0
  169. data/lib/checkbook/models/merchant.rb +447 -0
  170. data/lib/checkbook/models/merchant_response.rb +318 -0
  171. data/lib/checkbook/models/merchant_response_address.rb +278 -0
  172. data/lib/checkbook/models/mfa_option.rb +273 -0
  173. data/lib/checkbook/models/mfa_response_field.rb +298 -0
  174. data/lib/checkbook/models/mfa_selection_field.rb +231 -0
  175. data/lib/checkbook/models/multi_file_row.rb +431 -0
  176. data/lib/checkbook/models/multi_recipient.rb +312 -0
  177. data/lib/checkbook/models/new_api_key_request.rb +233 -0
  178. data/lib/checkbook/models/new_api_key_response.rb +263 -0
  179. data/lib/checkbook/models/number.rb +231 -0
  180. data/lib/checkbook/models/number140416527981344.rb +231 -0
  181. data/lib/checkbook/models/numbers.rb +238 -0
  182. data/lib/checkbook/models/numbers140416527982288.rb +238 -0
  183. data/lib/checkbook/models/options.rb +256 -0
  184. data/lib/checkbook/models/parsed_address.rb +271 -0
  185. data/lib/checkbook/models/parsed_address_address.rb +104 -0
  186. data/lib/checkbook/models/pay_invoice_request.rb +284 -0
  187. data/lib/checkbook/models/pay_invoice_response.rb +346 -0
  188. data/lib/checkbook/models/payment.rb +247 -0
  189. data/lib/checkbook/models/paypal_account_response.rb +276 -0
  190. data/lib/checkbook/models/physical_check_recipient.rb +442 -0
  191. data/lib/checkbook/models/pin.rb +283 -0
  192. data/lib/checkbook/models/plaid_account.rb +276 -0
  193. data/lib/checkbook/models/post_bank_iav_request.rb +104 -0
  194. data/lib/checkbook/models/preview_check_request.rb +337 -0
  195. data/lib/checkbook/models/preview_check_request_number.rb +104 -0
  196. data/lib/checkbook/models/preview_check_response.rb +238 -0
  197. data/lib/checkbook/models/provision_vcc_request.rb +348 -0
  198. data/lib/checkbook/models/provision_vcc_response.rb +292 -0
  199. data/lib/checkbook/models/register_user_request.rb +417 -0
  200. data/lib/checkbook/models/release_check_request.rb +238 -0
  201. data/lib/checkbook/models/remittance_advice.rb +296 -0
  202. data/lib/checkbook/models/signature_request.rb +239 -0
  203. data/lib/checkbook/models/subscription_address.rb +407 -0
  204. data/lib/checkbook/models/tracking_event.rb +249 -0
  205. data/lib/checkbook/models/tracking_number.rb +249 -0
  206. data/lib/checkbook/models/trigger_user_webhook_request.rb +262 -0
  207. data/lib/checkbook/models/trigger_webhook_request.rb +271 -0
  208. data/lib/checkbook/models/update_approval_request.rb +329 -0
  209. data/lib/checkbook/models/update_bank_request.rb +257 -0
  210. data/lib/checkbook/models/update_card_request.rb +247 -0
  211. data/lib/checkbook/models/update_check_request.rb +263 -0
  212. data/lib/checkbook/models/update_directory_address.rb +337 -0
  213. data/lib/checkbook/models/update_directory_request.rb +281 -0
  214. data/lib/checkbook/models/update_interac_request.rb +237 -0
  215. data/lib/checkbook/models/update_merchant_address.rb +377 -0
  216. data/lib/checkbook/models/update_paypal_request.rb +237 -0
  217. data/lib/checkbook/models/update_principal_address.rb +377 -0
  218. data/lib/checkbook/models/update_subscription_request.rb +233 -0
  219. data/lib/checkbook/models/update_user_request.rb +266 -0
  220. data/lib/checkbook/models/update_vcc_request.rb +242 -0
  221. data/lib/checkbook/models/update_venmo_request.rb +237 -0
  222. data/lib/checkbook/models/update_wallet_request.rb +237 -0
  223. data/lib/checkbook/models/update_wire_request.rb +237 -0
  224. data/lib/checkbook/models/user.rb +477 -0
  225. data/lib/checkbook/models/user_query_response.rb +271 -0
  226. data/lib/checkbook/models/user_response.rb +355 -0
  227. data/lib/checkbook/models/user_response_query.rb +320 -0
  228. data/lib/checkbook/models/validate_address_request.rb +240 -0
  229. data/lib/checkbook/models/validate_address_response.rb +240 -0
  230. data/lib/checkbook/models/vcc.rb +404 -0
  231. data/lib/checkbook/models/vcc_address.rb +266 -0
  232. data/lib/checkbook/models/vcc_query_response.rb +240 -0
  233. data/lib/checkbook/models/vcc_transaction.rb +285 -0
  234. data/lib/checkbook/models/vcc_transactions_response.rb +270 -0
  235. data/lib/checkbook/models/venmo_account_response.rb +276 -0
  236. data/lib/checkbook/models/verify_check_request.rb +238 -0
  237. data/lib/checkbook/models/verify_check_response.rb +221 -0
  238. data/lib/checkbook/models/verify_user_request.rb +273 -0
  239. data/lib/checkbook/models/wallet.rb +296 -0
  240. data/lib/checkbook/models/wire_account_response.rb +330 -0
  241. data/lib/checkbook/version.rb +15 -0
  242. data/lib/checkbook.rb +255 -0
  243. data/spec/api/approval_spec.rb +151 -0
  244. data/spec/api/bank_spec.rb +142 -0
  245. data/spec/api/card_spec.rb +83 -0
  246. data/spec/api/checkbook_spec.rb +97 -0
  247. data/spec/api/directory_spec.rb +125 -0
  248. data/spec/api/interac_spec.rb +83 -0
  249. data/spec/api/invoice_spec.rb +114 -0
  250. data/spec/api/mailbox_spec.rb +114 -0
  251. data/spec/api/payment_spec.rb +249 -0
  252. data/spec/api/paypal_spec.rb +83 -0
  253. data/spec/api/subscription_spec.rb +115 -0
  254. data/spec/api/user_spec.rb +156 -0
  255. data/spec/api/vcc_spec.rb +113 -0
  256. data/spec/api/venmo_spec.rb +83 -0
  257. data/spec/api/wallet_spec.rb +83 -0
  258. data/spec/api/wire_spec.rb +83 -0
  259. data/spec/models/address_response_spec.rb +54 -0
  260. data/spec/models/address_spec.rb +66 -0
  261. data/spec/models/api_key_list_response_spec.rb +36 -0
  262. data/spec/models/api_key_response_spec.rb +60 -0
  263. data/spec/models/approval_number_spec.rb +32 -0
  264. data/spec/models/approval_recipient_spec.rb +32 -0
  265. data/spec/models/approval_spec.rb +110 -0
  266. data/spec/models/attachment_spec.rb +42 -0
  267. data/spec/models/bank_release_request_spec.rb +36 -0
  268. data/spec/models/bank_settings_spec.rb +42 -0
  269. data/spec/models/bank_spec.rb +98 -0
  270. data/spec/models/bank_verify_request_spec.rb +48 -0
  271. data/spec/models/base_checkbook_request_spec.rb +58 -0
  272. data/spec/models/brand_response_spec.rb +54 -0
  273. data/spec/models/brand_spec.rb +66 -0
  274. data/spec/models/button_spec.rb +36 -0
  275. data/spec/models/card_address_spec.rb +66 -0
  276. data/spec/models/card_spec.rb +66 -0
  277. data/spec/models/check_address_spec.rb +66 -0
  278. data/spec/models/check_response_spec.rb +36 -0
  279. data/spec/models/check_settings_spec.rb +42 -0
  280. data/spec/models/check_spec.rb +110 -0
  281. data/spec/models/checkbook_address_spec.rb +72 -0
  282. data/spec/models/color_spec.rb +42 -0
  283. data/spec/models/convert_check_request_spec.rb +42 -0
  284. data/spec/models/counterparty_spec.rb +42 -0
  285. data/spec/models/create_bank_request_spec.rb +58 -0
  286. data/spec/models/create_bank_response_spec.rb +98 -0
  287. data/spec/models/create_card_intent_response_spec.rb +36 -0
  288. data/spec/models/create_card_intent_spec.rb +58 -0
  289. data/spec/models/create_card_request_spec.rb +54 -0
  290. data/spec/models/create_card_response_spec.rb +60 -0
  291. data/spec/models/create_check_subscription_request_recipient_spec.rb +32 -0
  292. data/spec/models/create_check_subscription_request_spec.rb +88 -0
  293. data/spec/models/create_digital_check_request_attachment_spec.rb +32 -0
  294. data/spec/models/create_digital_check_request_number_spec.rb +32 -0
  295. data/spec/models/create_digital_check_request_recipient_spec.rb +32 -0
  296. data/spec/models/create_digital_check_request_spec.rb +100 -0
  297. data/spec/models/create_direct_check_request_number_spec.rb +32 -0
  298. data/spec/models/create_direct_check_request_spec.rb +116 -0
  299. data/spec/models/create_directory_bank_request_spec.rb +58 -0
  300. data/spec/models/create_directory_bank_response_spec.rb +58 -0
  301. data/spec/models/create_directory_card_request_spec.rb +48 -0
  302. data/spec/models/create_directory_card_response_spec.rb +58 -0
  303. data/spec/models/create_directory_request_spec.rb +48 -0
  304. data/spec/models/create_directory_response_spec.rb +60 -0
  305. data/spec/models/create_instant_check_request_spec.rb +96 -0
  306. data/spec/models/create_interac_request_spec.rb +36 -0
  307. data/spec/models/create_invoice_request_attachment_spec.rb +32 -0
  308. data/spec/models/create_invoice_request_spec.rb +72 -0
  309. data/spec/models/create_invoice_response_spec.rb +78 -0
  310. data/spec/models/create_invoice_subscription_request_spec.rb +82 -0
  311. data/spec/models/create_mailbox_response_spec.rb +54 -0
  312. data/spec/models/create_multi_check_request_spec.rb +88 -0
  313. data/spec/models/create_paypal_request_spec.rb +36 -0
  314. data/spec/models/create_physical_check_request_number_spec.rb +32 -0
  315. data/spec/models/create_physical_check_request_remittance_advice_spec.rb +32 -0
  316. data/spec/models/create_physical_check_request_spec.rb +94 -0
  317. data/spec/models/create_subscription_response_recipient_spec.rb +32 -0
  318. data/spec/models/create_subscription_response_spec.rb +104 -0
  319. data/spec/models/create_user_request_spec.rb +42 -0
  320. data/spec/models/create_user_response_spec.rb +54 -0
  321. data/spec/models/create_vcc_request_spec.rb +48 -0
  322. data/spec/models/create_vcc_response_spec.rb +54 -0
  323. data/spec/models/create_venmo_request_spec.rb +36 -0
  324. data/spec/models/create_wallet_request_spec.rb +46 -0
  325. data/spec/models/create_wallet_response_spec.rb +54 -0
  326. data/spec/models/create_wire_request_spec.rb +58 -0
  327. data/spec/models/csv_approval_response_spec.rb +36 -0
  328. data/spec/models/csv_check_request_spec.rb +52 -0
  329. data/spec/models/csv_check_response_spec.rb +36 -0
  330. data/spec/models/csv_invoice_request_spec.rb +42 -0
  331. data/spec/models/csv_invoice_response_spec.rb +36 -0
  332. data/spec/models/csv_multi_check_request_spec.rb +42 -0
  333. data/spec/models/deposit_check_request_spec.rb +36 -0
  334. data/spec/models/developer_spec.rb +36 -0
  335. data/spec/models/digital_recipient_spec.rb +42 -0
  336. data/spec/models/directory_account_spec.rb +58 -0
  337. data/spec/models/directory_address_spec.rb +66 -0
  338. data/spec/models/directory_request_address_spec.rb +66 -0
  339. data/spec/models/endorse_check_request_spec.rb +42 -0
  340. data/spec/models/error_spec.rb +42 -0
  341. data/spec/models/file_row_spec.rb +72 -0
  342. data/spec/models/get_api_key_response_spec.rb +54 -0
  343. data/spec/models/get_approval_response_spec.rb +100 -0
  344. data/spec/models/get_approvals_response_spec.rb +54 -0
  345. data/spec/models/get_banks_response_spec.rb +36 -0
  346. data/spec/models/get_cards_response_spec.rb +36 -0
  347. data/spec/models/get_check_deposited_response_spec.rb +48 -0
  348. data/spec/models/get_check_failed_response_spec.rb +36 -0
  349. data/spec/models/get_check_response_spec.rb +100 -0
  350. data/spec/models/get_check_tracking_response_express_spec.rb +36 -0
  351. data/spec/models/get_check_tracking_response_first_class_spec.rb +36 -0
  352. data/spec/models/get_checkbook_response_spec.rb +58 -0
  353. data/spec/models/get_checkbook_tracking_response_express_spec.rb +36 -0
  354. data/spec/models/get_checkbook_tracking_response_first_class_spec.rb +36 -0
  355. data/spec/models/get_checkbooks_response_spec.rb +54 -0
  356. data/spec/models/get_checks_response_spec.rb +54 -0
  357. data/spec/models/get_directories_response_spec.rb +54 -0
  358. data/spec/models/get_institutions_response_spec.rb +36 -0
  359. data/spec/models/get_interac_response_spec.rb +36 -0
  360. data/spec/models/get_invoice_response_spec.rb +100 -0
  361. data/spec/models/get_invoices_response_spec.rb +54 -0
  362. data/spec/models/get_mail_response_spec.rb +54 -0
  363. data/spec/models/get_mailboxes_response_spec.rb +54 -0
  364. data/spec/models/get_paypal_response_spec.rb +36 -0
  365. data/spec/models/get_subscription_response_spec.rb +126 -0
  366. data/spec/models/get_subscriptions_response_spec.rb +54 -0
  367. data/spec/models/get_user_response_spec.rb +48 -0
  368. data/spec/models/get_vcc_response_spec.rb +78 -0
  369. data/spec/models/get_venmo_response_spec.rb +36 -0
  370. data/spec/models/get_wallets_response_spec.rb +36 -0
  371. data/spec/models/get_wire_response_spec.rb +36 -0
  372. data/spec/models/iav_account_spec.rb +48 -0
  373. data/spec/models/iav_login_response_spec.rb +48 -0
  374. data/spec/models/iav_login_schema_spec.rb +36 -0
  375. data/spec/models/iav_plaid_request_spec.rb +36 -0
  376. data/spec/models/iav_plaid_response_spec.rb +36 -0
  377. data/spec/models/iavmfa_schema_spec.rb +42 -0
  378. data/spec/models/inline_response200_spec.rb +36 -0
  379. data/spec/models/institution_spec.rb +48 -0
  380. data/spec/models/interac_account_response_spec.rb +48 -0
  381. data/spec/models/invoice_attachment_spec.rb +42 -0
  382. data/spec/models/invoice_file_row_spec.rb +60 -0
  383. data/spec/models/login_field_spec.rb +52 -0
  384. data/spec/models/mail_response_spec.rb +72 -0
  385. data/spec/models/mailbox_address_spec.rb +66 -0
  386. data/spec/models/merchant_response_address_spec.rb +66 -0
  387. data/spec/models/merchant_response_spec.rb +90 -0
  388. data/spec/models/merchant_spec.rb +98 -0
  389. data/spec/models/mfa_option_spec.rb +52 -0
  390. data/spec/models/mfa_response_field_spec.rb +64 -0
  391. data/spec/models/mfa_selection_field_spec.rb +42 -0
  392. data/spec/models/multi_file_row_spec.rb +72 -0
  393. data/spec/models/multi_recipient_spec.rb +54 -0
  394. data/spec/models/new_api_key_request_spec.rb +42 -0
  395. data/spec/models/new_api_key_response_spec.rb +60 -0
  396. data/spec/models/number140416527981344_spec.rb +42 -0
  397. data/spec/models/number_spec.rb +42 -0
  398. data/spec/models/numbers140416527982288_spec.rb +48 -0
  399. data/spec/models/numbers_spec.rb +48 -0
  400. data/spec/models/options_spec.rb +40 -0
  401. data/spec/models/parsed_address_address_spec.rb +32 -0
  402. data/spec/models/parsed_address_spec.rb +46 -0
  403. data/spec/models/pay_invoice_request_spec.rb +48 -0
  404. data/spec/models/pay_invoice_response_spec.rb +60 -0
  405. data/spec/models/payment_spec.rb +36 -0
  406. data/spec/models/paypal_account_response_spec.rb +48 -0
  407. data/spec/models/physical_check_recipient_spec.rb +72 -0
  408. data/spec/models/pin_spec.rb +42 -0
  409. data/spec/models/plaid_account_spec.rb +48 -0
  410. data/spec/models/post_bank_iav_request_spec.rb +32 -0
  411. data/spec/models/preview_check_request_number_spec.rb +32 -0
  412. data/spec/models/preview_check_request_spec.rb +60 -0
  413. data/spec/models/preview_check_response_spec.rb +36 -0
  414. data/spec/models/provision_vcc_request_spec.rb +58 -0
  415. data/spec/models/provision_vcc_response_spec.rb +48 -0
  416. data/spec/models/register_user_request_spec.rb +66 -0
  417. data/spec/models/release_check_request_spec.rb +36 -0
  418. data/spec/models/remittance_advice_spec.rb +54 -0
  419. data/spec/models/signature_request_spec.rb +36 -0
  420. data/spec/models/subscription_address_spec.rb +66 -0
  421. data/spec/models/tracking_event_spec.rb +42 -0
  422. data/spec/models/tracking_number_spec.rb +42 -0
  423. data/spec/models/trigger_user_webhook_request_spec.rb +40 -0
  424. data/spec/models/trigger_webhook_request_spec.rb +46 -0
  425. data/spec/models/update_approval_request_spec.rb +66 -0
  426. data/spec/models/update_bank_request_spec.rb +48 -0
  427. data/spec/models/update_card_request_spec.rb +42 -0
  428. data/spec/models/update_check_request_spec.rb +42 -0
  429. data/spec/models/update_directory_address_spec.rb +66 -0
  430. data/spec/models/update_directory_request_spec.rb +48 -0
  431. data/spec/models/update_interac_request_spec.rb +36 -0
  432. data/spec/models/update_merchant_address_spec.rb +66 -0
  433. data/spec/models/update_paypal_request_spec.rb +36 -0
  434. data/spec/models/update_principal_address_spec.rb +66 -0
  435. data/spec/models/update_subscription_request_spec.rb +42 -0
  436. data/spec/models/update_user_request_spec.rb +66 -0
  437. data/spec/models/update_vcc_request_spec.rb +48 -0
  438. data/spec/models/update_venmo_request_spec.rb +36 -0
  439. data/spec/models/update_wallet_request_spec.rb +36 -0
  440. data/spec/models/update_wire_request_spec.rb +36 -0
  441. data/spec/models/user_query_response_spec.rb +54 -0
  442. data/spec/models/user_response_query_spec.rb +54 -0
  443. data/spec/models/user_response_spec.rb +94 -0
  444. data/spec/models/user_spec.rb +84 -0
  445. data/spec/models/validate_address_request_spec.rb +36 -0
  446. data/spec/models/validate_address_response_spec.rb +36 -0
  447. data/spec/models/vcc_address_spec.rb +60 -0
  448. data/spec/models/vcc_query_response_spec.rb +36 -0
  449. data/spec/models/vcc_spec.rb +84 -0
  450. data/spec/models/vcc_transaction_spec.rb +72 -0
  451. data/spec/models/vcc_transactions_response_spec.rb +54 -0
  452. data/spec/models/venmo_account_response_spec.rb +48 -0
  453. data/spec/models/verify_check_request_spec.rb +36 -0
  454. data/spec/models/verify_check_response_spec.rb +36 -0
  455. data/spec/models/verify_user_request_spec.rb +46 -0
  456. data/spec/models/wallet_spec.rb +60 -0
  457. data/spec/models/wire_account_response_spec.rb +60 -0
  458. data/spec/spec_helper.rb +111 -0
  459. metadata +759 -0
@@ -0,0 +1,522 @@
1
+ =begin
2
+ #Checkbook API
3
+
4
+ #The Checkbook API enables businesses to programmatically send and receive payments using digital checks and other payment methods. With Checkbook, you can automate payment workflows, disburse funds instantly, and manage transactions securely—all without the delays and costs of traditional paper checks.
5
+
6
+ The version of the OpenAPI document: 3.0.0
7
+ Contact: support@checkbook.io
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.16.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Checkbook
17
+ class GetSubscriptionResponse
18
+ # Debit/credit account id for funds
19
+ attr_accessor :account
20
+
21
+ # Subscription amount
22
+ attr_accessor :amount
23
+
24
+ # Autopay invoice
25
+ attr_accessor :autopay
26
+
27
+ # Subscription creation timestamp
28
+ attr_accessor :date
29
+
30
+ # Subscription description
31
+ attr_accessor :description
32
+
33
+ # Number of times the subscription will recur (null indicates indefinite)
34
+ attr_accessor :duration
35
+
36
+ # Unique identifier for subscription
37
+ attr_accessor :id
38
+
39
+ # How often the subscription will recur
40
+ attr_accessor :interval
41
+
42
+ # Name of third party who is receiving the check/invoice
43
+ attr_accessor :name
44
+
45
+ attr_accessor :recipient
46
+
47
+ # List of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
48
+ attr_accessor :skipped
49
+
50
+ # Subscription start date
51
+ attr_accessor :start_date
52
+
53
+ # Current status of the check or invoice
54
+ attr_accessor :status
55
+
56
+ # Type of the subscription
57
+ attr_accessor :type
58
+
59
+ class EnumAttributeValidator
60
+ attr_reader :datatype
61
+ attr_reader :allowable_values
62
+
63
+ def initialize(datatype, allowable_values)
64
+ @allowable_values = allowable_values.map do |value|
65
+ case datatype.to_s
66
+ when /Integer/i
67
+ value.to_i
68
+ when /Float/i
69
+ value.to_f
70
+ else
71
+ value
72
+ end
73
+ end
74
+ end
75
+
76
+ def valid?(value)
77
+ !value || allowable_values.include?(value)
78
+ end
79
+ end
80
+
81
+ # Attribute mapping from ruby-style variable name to JSON key.
82
+ def self.attribute_map
83
+ {
84
+ :'account' => :'account',
85
+ :'amount' => :'amount',
86
+ :'autopay' => :'autopay',
87
+ :'date' => :'date',
88
+ :'description' => :'description',
89
+ :'duration' => :'duration',
90
+ :'id' => :'id',
91
+ :'interval' => :'interval',
92
+ :'name' => :'name',
93
+ :'recipient' => :'recipient',
94
+ :'skipped' => :'skipped',
95
+ :'start_date' => :'start_date',
96
+ :'status' => :'status',
97
+ :'type' => :'type'
98
+ }
99
+ end
100
+
101
+ # Returns attribute mapping this model knows about
102
+ def self.acceptable_attribute_map
103
+ attribute_map
104
+ end
105
+
106
+ # Returns all the JSON keys this model knows about
107
+ def self.acceptable_attributes
108
+ acceptable_attribute_map.values
109
+ end
110
+
111
+ # Attribute type mapping.
112
+ def self.openapi_types
113
+ {
114
+ :'account' => :'String',
115
+ :'amount' => :'Float',
116
+ :'autopay' => :'Boolean',
117
+ :'date' => :'String',
118
+ :'description' => :'String',
119
+ :'duration' => :'Integer',
120
+ :'id' => :'String',
121
+ :'interval' => :'String',
122
+ :'name' => :'String',
123
+ :'recipient' => :'CreateSubscriptionResponseRecipient',
124
+ :'skipped' => :'Array<Integer>',
125
+ :'start_date' => :'String',
126
+ :'status' => :'String',
127
+ :'type' => :'String'
128
+ }
129
+ end
130
+
131
+ # List of attributes with nullable: true
132
+ def self.openapi_nullable
133
+ Set.new([
134
+ :'account',
135
+ :'description',
136
+ :'duration',
137
+ :'name',
138
+ ])
139
+ end
140
+
141
+ # Initializes the object
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ def initialize(attributes = {})
144
+ if (!attributes.is_a?(Hash))
145
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Checkbook::GetSubscriptionResponse` initialize method"
146
+ end
147
+
148
+ # check to see if the attribute exists and convert string to symbol for hash key
149
+ acceptable_attribute_map = self.class.acceptable_attribute_map
150
+ attributes = attributes.each_with_object({}) { |(k, v), h|
151
+ if (!acceptable_attribute_map.key?(k.to_sym))
152
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Checkbook::GetSubscriptionResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
153
+ end
154
+ h[k.to_sym] = v
155
+ }
156
+
157
+ if attributes.key?(:'account')
158
+ self.account = attributes[:'account']
159
+ end
160
+
161
+ if attributes.key?(:'amount')
162
+ self.amount = attributes[:'amount']
163
+ else
164
+ self.amount = nil
165
+ end
166
+
167
+ if attributes.key?(:'autopay')
168
+ self.autopay = attributes[:'autopay']
169
+ end
170
+
171
+ if attributes.key?(:'date')
172
+ self.date = attributes[:'date']
173
+ else
174
+ self.date = nil
175
+ end
176
+
177
+ if attributes.key?(:'description')
178
+ self.description = attributes[:'description']
179
+ else
180
+ self.description = nil
181
+ end
182
+
183
+ if attributes.key?(:'duration')
184
+ self.duration = attributes[:'duration']
185
+ end
186
+
187
+ if attributes.key?(:'id')
188
+ self.id = attributes[:'id']
189
+ else
190
+ self.id = nil
191
+ end
192
+
193
+ if attributes.key?(:'interval')
194
+ self.interval = attributes[:'interval']
195
+ else
196
+ self.interval = nil
197
+ end
198
+
199
+ if attributes.key?(:'name')
200
+ self.name = attributes[:'name']
201
+ end
202
+
203
+ if attributes.key?(:'recipient')
204
+ self.recipient = attributes[:'recipient']
205
+ end
206
+
207
+ if attributes.key?(:'skipped')
208
+ if (value = attributes[:'skipped']).is_a?(Array)
209
+ self.skipped = value
210
+ end
211
+ else
212
+ self.skipped = nil
213
+ end
214
+
215
+ if attributes.key?(:'start_date')
216
+ self.start_date = attributes[:'start_date']
217
+ else
218
+ self.start_date = nil
219
+ end
220
+
221
+ if attributes.key?(:'status')
222
+ self.status = attributes[:'status']
223
+ else
224
+ self.status = nil
225
+ end
226
+
227
+ if attributes.key?(:'type')
228
+ self.type = attributes[:'type']
229
+ else
230
+ self.type = nil
231
+ end
232
+ end
233
+
234
+ # Show invalid properties with the reasons. Usually used together with valid?
235
+ # @return Array for valid properties with the reasons
236
+ def list_invalid_properties
237
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
238
+ invalid_properties = Array.new
239
+ if @amount.nil?
240
+ invalid_properties.push('invalid value for "amount", amount cannot be nil.')
241
+ end
242
+
243
+ if @date.nil?
244
+ invalid_properties.push('invalid value for "date", date cannot be nil.')
245
+ end
246
+
247
+ if @id.nil?
248
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
249
+ end
250
+
251
+ if @interval.nil?
252
+ invalid_properties.push('invalid value for "interval", interval cannot be nil.')
253
+ end
254
+
255
+ if @skipped.nil?
256
+ invalid_properties.push('invalid value for "skipped", skipped cannot be nil.')
257
+ end
258
+
259
+ if @start_date.nil?
260
+ invalid_properties.push('invalid value for "start_date", start_date cannot be nil.')
261
+ end
262
+
263
+ if @status.nil?
264
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
265
+ end
266
+
267
+ if @type.nil?
268
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
269
+ end
270
+
271
+ invalid_properties
272
+ end
273
+
274
+ # Check to see if the all the properties in the model are valid
275
+ # @return true if the model is valid
276
+ def valid?
277
+ warn '[DEPRECATED] the `valid?` method is obsolete'
278
+ return false if @amount.nil?
279
+ return false if @date.nil?
280
+ return false if @id.nil?
281
+ return false if @interval.nil?
282
+ interval_validator = EnumAttributeValidator.new('String', ["WEEKLY", "MONTHLY"])
283
+ return false unless interval_validator.valid?(@interval)
284
+ return false if @skipped.nil?
285
+ return false if @start_date.nil?
286
+ return false if @status.nil?
287
+ status_validator = EnumAttributeValidator.new('String', ["PAID", "IN_PROCESS", "UNPAID", "VOID", "EXPIRED", "PRINTED", "MAILED", "FAILED", "REFUNDED", "CANCELED", "OVERDUE"])
288
+ return false unless status_validator.valid?(@status)
289
+ return false if @type.nil?
290
+ type_validator = EnumAttributeValidator.new('String', ["INVOICE", "CHECK"])
291
+ return false unless type_validator.valid?(@type)
292
+ true
293
+ end
294
+
295
+ # Custom attribute writer method with validation
296
+ # @param [Object] amount Value to be assigned
297
+ def amount=(amount)
298
+ if amount.nil?
299
+ fail ArgumentError, 'amount cannot be nil'
300
+ end
301
+
302
+ @amount = amount
303
+ end
304
+
305
+ # Custom attribute writer method with validation
306
+ # @param [Object] date Value to be assigned
307
+ def date=(date)
308
+ if date.nil?
309
+ fail ArgumentError, 'date cannot be nil'
310
+ end
311
+
312
+ @date = date
313
+ end
314
+
315
+ # Custom attribute writer method with validation
316
+ # @param [Object] id Value to be assigned
317
+ def id=(id)
318
+ if id.nil?
319
+ fail ArgumentError, 'id cannot be nil'
320
+ end
321
+
322
+ @id = id
323
+ end
324
+
325
+ # Custom attribute writer method checking allowed values (enum).
326
+ # @param [Object] interval Object to be assigned
327
+ def interval=(interval)
328
+ validator = EnumAttributeValidator.new('String', ["WEEKLY", "MONTHLY"])
329
+ unless validator.valid?(interval)
330
+ fail ArgumentError, "invalid value for \"interval\", must be one of #{validator.allowable_values}."
331
+ end
332
+ @interval = interval
333
+ end
334
+
335
+ # Custom attribute writer method with validation
336
+ # @param [Object] skipped Value to be assigned
337
+ def skipped=(skipped)
338
+ if skipped.nil?
339
+ fail ArgumentError, 'skipped cannot be nil'
340
+ end
341
+
342
+ @skipped = skipped
343
+ end
344
+
345
+ # Custom attribute writer method with validation
346
+ # @param [Object] start_date Value to be assigned
347
+ def start_date=(start_date)
348
+ if start_date.nil?
349
+ fail ArgumentError, 'start_date cannot be nil'
350
+ end
351
+
352
+ @start_date = start_date
353
+ end
354
+
355
+ # Custom attribute writer method checking allowed values (enum).
356
+ # @param [Object] status Object to be assigned
357
+ def status=(status)
358
+ validator = EnumAttributeValidator.new('String', ["PAID", "IN_PROCESS", "UNPAID", "VOID", "EXPIRED", "PRINTED", "MAILED", "FAILED", "REFUNDED", "CANCELED", "OVERDUE"])
359
+ unless validator.valid?(status)
360
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
361
+ end
362
+ @status = status
363
+ end
364
+
365
+ # Custom attribute writer method checking allowed values (enum).
366
+ # @param [Object] type Object to be assigned
367
+ def type=(type)
368
+ validator = EnumAttributeValidator.new('String', ["INVOICE", "CHECK"])
369
+ unless validator.valid?(type)
370
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
371
+ end
372
+ @type = type
373
+ end
374
+
375
+ # Checks equality by comparing each attribute.
376
+ # @param [Object] Object to be compared
377
+ def ==(o)
378
+ return true if self.equal?(o)
379
+ self.class == o.class &&
380
+ account == o.account &&
381
+ amount == o.amount &&
382
+ autopay == o.autopay &&
383
+ date == o.date &&
384
+ description == o.description &&
385
+ duration == o.duration &&
386
+ id == o.id &&
387
+ interval == o.interval &&
388
+ name == o.name &&
389
+ recipient == o.recipient &&
390
+ skipped == o.skipped &&
391
+ start_date == o.start_date &&
392
+ status == o.status &&
393
+ type == o.type
394
+ end
395
+
396
+ # @see the `==` method
397
+ # @param [Object] Object to be compared
398
+ def eql?(o)
399
+ self == o
400
+ end
401
+
402
+ # Calculates hash code according to all attributes.
403
+ # @return [Integer] Hash code
404
+ def hash
405
+ [account, amount, autopay, date, description, duration, id, interval, name, recipient, skipped, start_date, status, type].hash
406
+ end
407
+
408
+ # Builds the object from hash
409
+ # @param [Hash] attributes Model attributes in the form of hash
410
+ # @return [Object] Returns the model itself
411
+ def self.build_from_hash(attributes)
412
+ return nil unless attributes.is_a?(Hash)
413
+ attributes = attributes.transform_keys(&:to_sym)
414
+ transformed_hash = {}
415
+ openapi_types.each_pair do |key, type|
416
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
417
+ transformed_hash["#{key}"] = nil
418
+ elsif type =~ /\AArray<(.*)>/i
419
+ # check to ensure the input is an array given that the attribute
420
+ # is documented as an array but the input is not
421
+ if attributes[attribute_map[key]].is_a?(Array)
422
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
423
+ end
424
+ elsif !attributes[attribute_map[key]].nil?
425
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
426
+ end
427
+ end
428
+ new(transformed_hash)
429
+ end
430
+
431
+ # Deserializes the data based on type
432
+ # @param string type Data type
433
+ # @param string value Value to be deserialized
434
+ # @return [Object] Deserialized data
435
+ def self._deserialize(type, value)
436
+ case type.to_sym
437
+ when :Time
438
+ Time.parse(value)
439
+ when :Date
440
+ Date.parse(value)
441
+ when :String
442
+ value.to_s
443
+ when :Integer
444
+ value.to_i
445
+ when :Float
446
+ value.to_f
447
+ when :Boolean
448
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
449
+ true
450
+ else
451
+ false
452
+ end
453
+ when :Object
454
+ # generic object (usually a Hash), return directly
455
+ value
456
+ when /\AArray<(?<inner_type>.+)>\z/
457
+ inner_type = Regexp.last_match[:inner_type]
458
+ value.map { |v| _deserialize(inner_type, v) }
459
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
460
+ k_type = Regexp.last_match[:k_type]
461
+ v_type = Regexp.last_match[:v_type]
462
+ {}.tap do |hash|
463
+ value.each do |k, v|
464
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
465
+ end
466
+ end
467
+ else # model
468
+ # models (e.g. Pet) or oneOf
469
+ klass = ::Checkbook.const_get(type)
470
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
471
+ end
472
+ end
473
+
474
+ # Returns the string representation of the object
475
+ # @return [String] String presentation of the object
476
+ def to_s
477
+ to_hash.to_s
478
+ end
479
+
480
+ # to_body is an alias to to_hash (backward compatibility)
481
+ # @return [Hash] Returns the object in the form of hash
482
+ def to_body
483
+ to_hash
484
+ end
485
+
486
+ # Returns the object in the form of hash
487
+ # @return [Hash] Returns the object in the form of hash
488
+ def to_hash
489
+ hash = {}
490
+ self.class.attribute_map.each_pair do |attr, param|
491
+ value = self.send(attr)
492
+ if value.nil?
493
+ is_nullable = self.class.openapi_nullable.include?(attr)
494
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
495
+ end
496
+
497
+ hash[param] = _to_hash(value)
498
+ end
499
+ hash
500
+ end
501
+
502
+ # Outputs non-array value in the form of hash
503
+ # For object, use to_hash. Otherwise, just return the value
504
+ # @param [Object] value Any valid value
505
+ # @return [Hash] Returns the value in the form of hash
506
+ def _to_hash(value)
507
+ if value.is_a?(Array)
508
+ value.compact.map { |v| _to_hash(v) }
509
+ elsif value.is_a?(Hash)
510
+ {}.tap do |hash|
511
+ value.each { |k, v| hash[k] = _to_hash(v) }
512
+ end
513
+ elsif value.respond_to? :to_hash
514
+ value.to_hash
515
+ else
516
+ value
517
+ end
518
+ end
519
+
520
+ end
521
+
522
+ end