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