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,329 @@
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 CreateDirectoryCardResponse
18
+ # Unique identifier for card
19
+ attr_accessor :id
20
+
21
+ # Card name
22
+ attr_accessor :name
23
+
24
+ # Last 4 of card number
25
+ attr_accessor :number
26
+
27
+ # Account type
28
+ attr_accessor :type
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'id' => :'id',
56
+ :'name' => :'name',
57
+ :'number' => :'number',
58
+ :'type' => :'type'
59
+ }
60
+ end
61
+
62
+ # Returns attribute mapping this model knows about
63
+ def self.acceptable_attribute_map
64
+ attribute_map
65
+ end
66
+
67
+ # Returns all the JSON keys this model knows about
68
+ def self.acceptable_attributes
69
+ acceptable_attribute_map.values
70
+ end
71
+
72
+ # Attribute type mapping.
73
+ def self.openapi_types
74
+ {
75
+ :'id' => :'String',
76
+ :'name' => :'String',
77
+ :'number' => :'String',
78
+ :'type' => :'String'
79
+ }
80
+ end
81
+
82
+ # List of attributes with nullable: true
83
+ def self.openapi_nullable
84
+ Set.new([
85
+ :'name',
86
+ ])
87
+ end
88
+
89
+ # Initializes the object
90
+ # @param [Hash] attributes Model attributes in the form of hash
91
+ def initialize(attributes = {})
92
+ if (!attributes.is_a?(Hash))
93
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Checkbook::CreateDirectoryCardResponse` initialize method"
94
+ end
95
+
96
+ # check to see if the attribute exists and convert string to symbol for hash key
97
+ acceptable_attribute_map = self.class.acceptable_attribute_map
98
+ attributes = attributes.each_with_object({}) { |(k, v), h|
99
+ if (!acceptable_attribute_map.key?(k.to_sym))
100
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Checkbook::CreateDirectoryCardResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
101
+ end
102
+ h[k.to_sym] = v
103
+ }
104
+
105
+ if attributes.key?(:'id')
106
+ self.id = attributes[:'id']
107
+ else
108
+ self.id = nil
109
+ end
110
+
111
+ if attributes.key?(:'name')
112
+ self.name = attributes[:'name']
113
+ else
114
+ self.name = nil
115
+ end
116
+
117
+ if attributes.key?(:'number')
118
+ self.number = attributes[:'number']
119
+ else
120
+ self.number = nil
121
+ end
122
+
123
+ if attributes.key?(:'type')
124
+ self.type = attributes[:'type']
125
+ else
126
+ self.type = nil
127
+ end
128
+ end
129
+
130
+ # Show invalid properties with the reasons. Usually used together with valid?
131
+ # @return Array for valid properties with the reasons
132
+ def list_invalid_properties
133
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
134
+ invalid_properties = Array.new
135
+ if @id.nil?
136
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
137
+ end
138
+
139
+ if @number.nil?
140
+ invalid_properties.push('invalid value for "number", number cannot be nil.')
141
+ end
142
+
143
+ if @type.nil?
144
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
145
+ end
146
+
147
+ invalid_properties
148
+ end
149
+
150
+ # Check to see if the all the properties in the model are valid
151
+ # @return true if the model is valid
152
+ def valid?
153
+ warn '[DEPRECATED] the `valid?` method is obsolete'
154
+ return false if @id.nil?
155
+ return false if @number.nil?
156
+ return false if @type.nil?
157
+ type_validator = EnumAttributeValidator.new('String', ["CARD"])
158
+ return false unless type_validator.valid?(@type)
159
+ true
160
+ end
161
+
162
+ # Custom attribute writer method with validation
163
+ # @param [Object] id Value to be assigned
164
+ def id=(id)
165
+ if id.nil?
166
+ fail ArgumentError, 'id cannot be nil'
167
+ end
168
+
169
+ @id = id
170
+ end
171
+
172
+ # Custom attribute writer method with validation
173
+ # @param [Object] number Value to be assigned
174
+ def number=(number)
175
+ if number.nil?
176
+ fail ArgumentError, 'number cannot be nil'
177
+ end
178
+
179
+ @number = number
180
+ end
181
+
182
+ # Custom attribute writer method checking allowed values (enum).
183
+ # @param [Object] type Object to be assigned
184
+ def type=(type)
185
+ validator = EnumAttributeValidator.new('String', ["CARD"])
186
+ unless validator.valid?(type)
187
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
188
+ end
189
+ @type = type
190
+ end
191
+
192
+ # Checks equality by comparing each attribute.
193
+ # @param [Object] Object to be compared
194
+ def ==(o)
195
+ return true if self.equal?(o)
196
+ self.class == o.class &&
197
+ id == o.id &&
198
+ name == o.name &&
199
+ number == o.number &&
200
+ type == o.type
201
+ end
202
+
203
+ # @see the `==` method
204
+ # @param [Object] Object to be compared
205
+ def eql?(o)
206
+ self == o
207
+ end
208
+
209
+ # Calculates hash code according to all attributes.
210
+ # @return [Integer] Hash code
211
+ def hash
212
+ [id, name, number, type].hash
213
+ end
214
+
215
+ # Builds the object from hash
216
+ # @param [Hash] attributes Model attributes in the form of hash
217
+ # @return [Object] Returns the model itself
218
+ def self.build_from_hash(attributes)
219
+ return nil unless attributes.is_a?(Hash)
220
+ attributes = attributes.transform_keys(&:to_sym)
221
+ transformed_hash = {}
222
+ openapi_types.each_pair do |key, type|
223
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
224
+ transformed_hash["#{key}"] = nil
225
+ elsif type =~ /\AArray<(.*)>/i
226
+ # check to ensure the input is an array given that the attribute
227
+ # is documented as an array but the input is not
228
+ if attributes[attribute_map[key]].is_a?(Array)
229
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
230
+ end
231
+ elsif !attributes[attribute_map[key]].nil?
232
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
233
+ end
234
+ end
235
+ new(transformed_hash)
236
+ end
237
+
238
+ # Deserializes the data based on type
239
+ # @param string type Data type
240
+ # @param string value Value to be deserialized
241
+ # @return [Object] Deserialized data
242
+ def self._deserialize(type, value)
243
+ case type.to_sym
244
+ when :Time
245
+ Time.parse(value)
246
+ when :Date
247
+ Date.parse(value)
248
+ when :String
249
+ value.to_s
250
+ when :Integer
251
+ value.to_i
252
+ when :Float
253
+ value.to_f
254
+ when :Boolean
255
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
256
+ true
257
+ else
258
+ false
259
+ end
260
+ when :Object
261
+ # generic object (usually a Hash), return directly
262
+ value
263
+ when /\AArray<(?<inner_type>.+)>\z/
264
+ inner_type = Regexp.last_match[:inner_type]
265
+ value.map { |v| _deserialize(inner_type, v) }
266
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
267
+ k_type = Regexp.last_match[:k_type]
268
+ v_type = Regexp.last_match[:v_type]
269
+ {}.tap do |hash|
270
+ value.each do |k, v|
271
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
272
+ end
273
+ end
274
+ else # model
275
+ # models (e.g. Pet) or oneOf
276
+ klass = ::Checkbook.const_get(type)
277
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
278
+ end
279
+ end
280
+
281
+ # Returns the string representation of the object
282
+ # @return [String] String presentation of the object
283
+ def to_s
284
+ to_hash.to_s
285
+ end
286
+
287
+ # to_body is an alias to to_hash (backward compatibility)
288
+ # @return [Hash] Returns the object in the form of hash
289
+ def to_body
290
+ to_hash
291
+ end
292
+
293
+ # Returns the object in the form of hash
294
+ # @return [Hash] Returns the object in the form of hash
295
+ def to_hash
296
+ hash = {}
297
+ self.class.attribute_map.each_pair do |attr, param|
298
+ value = self.send(attr)
299
+ if value.nil?
300
+ is_nullable = self.class.openapi_nullable.include?(attr)
301
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
302
+ end
303
+
304
+ hash[param] = _to_hash(value)
305
+ end
306
+ hash
307
+ end
308
+
309
+ # Outputs non-array value in the form of hash
310
+ # For object, use to_hash. Otherwise, just return the value
311
+ # @param [Object] value Any valid value
312
+ # @return [Hash] Returns the value in the form of hash
313
+ def _to_hash(value)
314
+ if value.is_a?(Array)
315
+ value.compact.map { |v| _to_hash(v) }
316
+ elsif value.is_a?(Hash)
317
+ {}.tap do |hash|
318
+ value.each { |k, v| hash[k] = _to_hash(v) }
319
+ end
320
+ elsif value.respond_to? :to_hash
321
+ value.to_hash
322
+ else
323
+ value
324
+ end
325
+ end
326
+
327
+ end
328
+
329
+ end
@@ -0,0 +1,291 @@
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 CreateDirectoryRequest
18
+ attr_accessor :address
19
+
20
+ # Email
21
+ attr_accessor :email
22
+
23
+ # Name
24
+ attr_accessor :name
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'address' => :'address',
30
+ :'email' => :'email',
31
+ :'name' => :'name'
32
+ }
33
+ end
34
+
35
+ # Returns attribute mapping this model knows about
36
+ def self.acceptable_attribute_map
37
+ attribute_map
38
+ end
39
+
40
+ # Returns all the JSON keys this model knows about
41
+ def self.acceptable_attributes
42
+ acceptable_attribute_map.values
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.openapi_types
47
+ {
48
+ :'address' => :'DirectoryRequestAddress',
49
+ :'email' => :'String',
50
+ :'name' => :'String'
51
+ }
52
+ end
53
+
54
+ # List of attributes with nullable: true
55
+ def self.openapi_nullable
56
+ Set.new([
57
+ :'email',
58
+ ])
59
+ end
60
+
61
+ # Initializes the object
62
+ # @param [Hash] attributes Model attributes in the form of hash
63
+ def initialize(attributes = {})
64
+ if (!attributes.is_a?(Hash))
65
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Checkbook::CreateDirectoryRequest` initialize method"
66
+ end
67
+
68
+ # check to see if the attribute exists and convert string to symbol for hash key
69
+ acceptable_attribute_map = self.class.acceptable_attribute_map
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!acceptable_attribute_map.key?(k.to_sym))
72
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Checkbook::CreateDirectoryRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
73
+ end
74
+ h[k.to_sym] = v
75
+ }
76
+
77
+ if attributes.key?(:'address')
78
+ self.address = attributes[:'address']
79
+ end
80
+
81
+ if attributes.key?(:'email')
82
+ self.email = attributes[:'email']
83
+ end
84
+
85
+ if attributes.key?(:'name')
86
+ self.name = attributes[:'name']
87
+ else
88
+ self.name = nil
89
+ end
90
+ end
91
+
92
+ # Show invalid properties with the reasons. Usually used together with valid?
93
+ # @return Array for valid properties with the reasons
94
+ def list_invalid_properties
95
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
96
+ invalid_properties = Array.new
97
+ if !@email.nil? && @email.to_s.length > 80
98
+ invalid_properties.push('invalid value for "email", the character length must be smaller than or equal to 80.')
99
+ end
100
+
101
+ if @name.nil?
102
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
103
+ end
104
+
105
+ if @name.to_s.length > 180
106
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 180.')
107
+ end
108
+
109
+ if @name.to_s.length < 2
110
+ invalid_properties.push('invalid value for "name", the character length must be greater than or equal to 2.')
111
+ end
112
+
113
+ invalid_properties
114
+ end
115
+
116
+ # Check to see if the all the properties in the model are valid
117
+ # @return true if the model is valid
118
+ def valid?
119
+ warn '[DEPRECATED] the `valid?` method is obsolete'
120
+ return false if !@email.nil? && @email.to_s.length > 80
121
+ return false if @name.nil?
122
+ return false if @name.to_s.length > 180
123
+ return false if @name.to_s.length < 2
124
+ true
125
+ end
126
+
127
+ # Custom attribute writer method with validation
128
+ # @param [Object] email Value to be assigned
129
+ def email=(email)
130
+ if !email.nil? && email.to_s.length > 80
131
+ fail ArgumentError, 'invalid value for "email", the character length must be smaller than or equal to 80.'
132
+ end
133
+
134
+ @email = email
135
+ end
136
+
137
+ # Custom attribute writer method with validation
138
+ # @param [Object] name Value to be assigned
139
+ def name=(name)
140
+ if name.nil?
141
+ fail ArgumentError, 'name cannot be nil'
142
+ end
143
+
144
+ if name.to_s.length > 180
145
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 180.'
146
+ end
147
+
148
+ if name.to_s.length < 2
149
+ fail ArgumentError, 'invalid value for "name", the character length must be greater than or equal to 2.'
150
+ end
151
+
152
+ @name = name
153
+ end
154
+
155
+ # Checks equality by comparing each attribute.
156
+ # @param [Object] Object to be compared
157
+ def ==(o)
158
+ return true if self.equal?(o)
159
+ self.class == o.class &&
160
+ address == o.address &&
161
+ email == o.email &&
162
+ name == o.name
163
+ end
164
+
165
+ # @see the `==` method
166
+ # @param [Object] Object to be compared
167
+ def eql?(o)
168
+ self == o
169
+ end
170
+
171
+ # Calculates hash code according to all attributes.
172
+ # @return [Integer] Hash code
173
+ def hash
174
+ [address, email, name].hash
175
+ end
176
+
177
+ # Builds the object from hash
178
+ # @param [Hash] attributes Model attributes in the form of hash
179
+ # @return [Object] Returns the model itself
180
+ def self.build_from_hash(attributes)
181
+ return nil unless attributes.is_a?(Hash)
182
+ attributes = attributes.transform_keys(&:to_sym)
183
+ transformed_hash = {}
184
+ openapi_types.each_pair do |key, type|
185
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
186
+ transformed_hash["#{key}"] = nil
187
+ elsif type =~ /\AArray<(.*)>/i
188
+ # check to ensure the input is an array given that the attribute
189
+ # is documented as an array but the input is not
190
+ if attributes[attribute_map[key]].is_a?(Array)
191
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
192
+ end
193
+ elsif !attributes[attribute_map[key]].nil?
194
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
195
+ end
196
+ end
197
+ new(transformed_hash)
198
+ end
199
+
200
+ # Deserializes the data based on type
201
+ # @param string type Data type
202
+ # @param string value Value to be deserialized
203
+ # @return [Object] Deserialized data
204
+ def self._deserialize(type, value)
205
+ case type.to_sym
206
+ when :Time
207
+ Time.parse(value)
208
+ when :Date
209
+ Date.parse(value)
210
+ when :String
211
+ value.to_s
212
+ when :Integer
213
+ value.to_i
214
+ when :Float
215
+ value.to_f
216
+ when :Boolean
217
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
218
+ true
219
+ else
220
+ false
221
+ end
222
+ when :Object
223
+ # generic object (usually a Hash), return directly
224
+ value
225
+ when /\AArray<(?<inner_type>.+)>\z/
226
+ inner_type = Regexp.last_match[:inner_type]
227
+ value.map { |v| _deserialize(inner_type, v) }
228
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
229
+ k_type = Regexp.last_match[:k_type]
230
+ v_type = Regexp.last_match[:v_type]
231
+ {}.tap do |hash|
232
+ value.each do |k, v|
233
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
234
+ end
235
+ end
236
+ else # model
237
+ # models (e.g. Pet) or oneOf
238
+ klass = ::Checkbook.const_get(type)
239
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
240
+ end
241
+ end
242
+
243
+ # Returns the string representation of the object
244
+ # @return [String] String presentation of the object
245
+ def to_s
246
+ to_hash.to_s
247
+ end
248
+
249
+ # to_body is an alias to to_hash (backward compatibility)
250
+ # @return [Hash] Returns the object in the form of hash
251
+ def to_body
252
+ to_hash
253
+ end
254
+
255
+ # Returns the object in the form of hash
256
+ # @return [Hash] Returns the object in the form of hash
257
+ def to_hash
258
+ hash = {}
259
+ self.class.attribute_map.each_pair do |attr, param|
260
+ value = self.send(attr)
261
+ if value.nil?
262
+ is_nullable = self.class.openapi_nullable.include?(attr)
263
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
264
+ end
265
+
266
+ hash[param] = _to_hash(value)
267
+ end
268
+ hash
269
+ end
270
+
271
+ # Outputs non-array value in the form of hash
272
+ # For object, use to_hash. Otherwise, just return the value
273
+ # @param [Object] value Any valid value
274
+ # @return [Hash] Returns the value in the form of hash
275
+ def _to_hash(value)
276
+ if value.is_a?(Array)
277
+ value.compact.map { |v| _to_hash(v) }
278
+ elsif value.is_a?(Hash)
279
+ {}.tap do |hash|
280
+ value.each { |k, v| hash[k] = _to_hash(v) }
281
+ end
282
+ elsif value.respond_to? :to_hash
283
+ value.to_hash
284
+ else
285
+ value
286
+ end
287
+ end
288
+
289
+ end
290
+
291
+ end