plaid 14.0.0.beta.5.pre.plural.pre.income.pre.breakdown → 15.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (673) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +405 -5
  3. data/CONTRIBUTING.md +1 -5
  4. data/Dockerfile +4 -2
  5. data/Gemfile.lock +10 -6
  6. data/Makefile +10 -1
  7. data/README.md +28 -21
  8. data/lib/plaid/api/plaid_api.rb +4490 -980
  9. data/lib/plaid/api_client.rb +6 -5
  10. data/lib/plaid/api_error.rb +4 -4
  11. data/lib/plaid/configuration.rb +7 -6
  12. data/lib/plaid/models/account_access.rb +248 -0
  13. data/lib/plaid/models/account_assets.rb +22 -10
  14. data/lib/plaid/models/account_assets_all_of.rb +19 -7
  15. data/lib/plaid/models/account_balance.rb +8 -12
  16. data/lib/plaid/models/account_base.rb +4 -5
  17. data/lib/plaid/models/account_filter.rb +258 -0
  18. data/lib/plaid/models/account_filters_response.rb +2 -2
  19. data/lib/plaid/models/account_identity.rb +6 -6
  20. data/lib/plaid/models/account_identity_all_of.rb +3 -3
  21. data/lib/plaid/models/account_product_access.rb +249 -0
  22. data/lib/plaid/models/account_product_access_nullable.rb +256 -0
  23. data/lib/plaid/models/account_selection_cardinality.rb +40 -0
  24. data/lib/plaid/models/account_subtype.rb +12 -5
  25. data/lib/plaid/models/account_type.rb +6 -4
  26. data/lib/plaid/models/accounts_balance_get_request.rb +2 -2
  27. data/lib/plaid/models/accounts_balance_get_request_options.rb +3 -3
  28. data/lib/plaid/models/accounts_get_request.rb +2 -2
  29. data/lib/plaid/models/accounts_get_request_options.rb +2 -2
  30. data/lib/plaid/models/accounts_get_response.rb +2 -2
  31. data/lib/plaid/models/ach_class.rb +6 -4
  32. data/lib/plaid/models/address.rb +2 -3
  33. data/lib/plaid/models/address_data.rb +5 -9
  34. data/lib/plaid/models/{nullable_address_data.rb → address_data_nullable.rb} +9 -12
  35. data/lib/plaid/models/{nullable_address.rb → address_nullable.rb} +6 -6
  36. data/lib/plaid/models/application.rb +98 -7
  37. data/lib/plaid/models/application_get_request.rb +3 -3
  38. data/lib/plaid/models/application_get_response.rb +3 -3
  39. data/lib/plaid/models/apr.rb +2 -2
  40. data/lib/plaid/models/asset_report.rb +5 -9
  41. data/lib/plaid/models/asset_report_audit_copy_create_request.rb +2 -2
  42. data/lib/plaid/models/asset_report_audit_copy_create_response.rb +2 -2
  43. data/lib/plaid/models/asset_report_audit_copy_get_request.rb +2 -2
  44. data/lib/plaid/models/asset_report_audit_copy_remove_request.rb +2 -2
  45. data/lib/plaid/models/asset_report_audit_copy_remove_response.rb +2 -2
  46. data/lib/plaid/models/asset_report_create_request.rb +7 -7
  47. data/lib/plaid/models/asset_report_create_request_options.rb +4 -2
  48. data/lib/plaid/models/asset_report_create_response.rb +2 -2
  49. data/lib/plaid/models/asset_report_filter_request.rb +2 -2
  50. data/lib/plaid/models/asset_report_filter_response.rb +2 -2
  51. data/lib/plaid/models/asset_report_get_request.rb +4 -2
  52. data/lib/plaid/models/asset_report_get_response.rb +2 -2
  53. data/lib/plaid/models/asset_report_item.rb +4 -4
  54. data/lib/plaid/models/asset_report_pdf_get_request.rb +2 -2
  55. data/lib/plaid/models/asset_report_refresh_request.rb +8 -7
  56. data/lib/plaid/models/asset_report_refresh_request_options.rb +4 -2
  57. data/lib/plaid/models/asset_report_refresh_response.rb +2 -2
  58. data/lib/plaid/models/asset_report_relay_create_request.rb +271 -0
  59. data/lib/plaid/models/asset_report_relay_create_response.rb +240 -0
  60. data/lib/plaid/models/asset_report_relay_get_request.rb +245 -0
  61. data/lib/plaid/models/asset_report_relay_refresh_request.rb +255 -0
  62. data/lib/plaid/models/asset_report_relay_refresh_response.rb +254 -0
  63. data/lib/plaid/models/asset_report_relay_remove_request.rb +245 -0
  64. data/lib/plaid/models/asset_report_relay_remove_response.rb +240 -0
  65. data/lib/plaid/models/asset_report_remove_request.rb +2 -2
  66. data/lib/plaid/models/asset_report_remove_response.rb +2 -2
  67. data/lib/plaid/models/asset_report_transaction.rb +129 -185
  68. data/lib/plaid/models/asset_report_transaction_all_of.rb +7 -22
  69. data/lib/plaid/models/asset_report_user.rb +3 -3
  70. data/lib/plaid/models/assets_error_webhook.rb +8 -4
  71. data/lib/plaid/models/assets_product_ready_webhook.rb +2 -2
  72. data/lib/plaid/models/assets_relay_webhook.rb +299 -0
  73. data/lib/plaid/models/auth_get_numbers.rb +22 -2
  74. data/lib/plaid/models/auth_get_request.rb +2 -2
  75. data/lib/plaid/models/auth_get_request_options.rb +2 -2
  76. data/lib/plaid/models/auth_get_response.rb +2 -2
  77. data/lib/plaid/models/auth_metadata.rb +220 -0
  78. data/lib/plaid/models/auth_supported_methods.rb +255 -0
  79. data/lib/plaid/models/automatically_verified_webhook.rb +2 -2
  80. data/lib/plaid/models/bank_initiated_return_risk.rb +300 -0
  81. data/lib/plaid/models/bank_transfer.rb +4 -4
  82. data/lib/plaid/models/bank_transfer_balance.rb +3 -2
  83. data/lib/plaid/models/bank_transfer_balance_get_request.rb +3 -3
  84. data/lib/plaid/models/bank_transfer_balance_get_response.rb +3 -3
  85. data/lib/plaid/models/bank_transfer_cancel_request.rb +3 -3
  86. data/lib/plaid/models/bank_transfer_cancel_response.rb +3 -3
  87. data/lib/plaid/models/bank_transfer_create_request.rb +6 -6
  88. data/lib/plaid/models/bank_transfer_create_response.rb +3 -3
  89. data/lib/plaid/models/bank_transfer_direction.rb +7 -4
  90. data/lib/plaid/models/bank_transfer_event.rb +8 -18
  91. data/lib/plaid/models/bank_transfer_event_list_bank_transfer_type.rb +40 -0
  92. data/lib/plaid/models/bank_transfer_event_list_direction.rb +40 -0
  93. data/lib/plaid/models/bank_transfer_event_list_request.rb +5 -41
  94. data/lib/plaid/models/bank_transfer_event_list_response.rb +3 -3
  95. data/lib/plaid/models/bank_transfer_event_sync_request.rb +3 -3
  96. data/lib/plaid/models/bank_transfer_event_sync_response.rb +3 -3
  97. data/lib/plaid/models/bank_transfer_event_type.rb +6 -6
  98. data/lib/plaid/models/bank_transfer_failure.rb +3 -3
  99. data/lib/plaid/models/bank_transfer_get_request.rb +3 -3
  100. data/lib/plaid/models/bank_transfer_get_response.rb +3 -3
  101. data/lib/plaid/models/bank_transfer_list_request.rb +3 -3
  102. data/lib/plaid/models/bank_transfer_list_response.rb +3 -3
  103. data/lib/plaid/models/bank_transfer_migrate_account_request.rb +14 -4
  104. data/lib/plaid/models/bank_transfer_migrate_account_response.rb +3 -3
  105. data/lib/plaid/models/bank_transfer_network.rb +6 -4
  106. data/lib/plaid/models/bank_transfer_status.rb +6 -4
  107. data/lib/plaid/models/bank_transfer_sweep.rb +270 -0
  108. data/lib/plaid/models/bank_transfer_sweep_get_request.rb +245 -0
  109. data/lib/plaid/models/bank_transfer_sweep_get_response.rb +239 -0
  110. data/lib/plaid/models/bank_transfer_sweep_list_request.rb +302 -0
  111. data/lib/plaid/models/bank_transfer_sweep_list_response.rb +241 -0
  112. data/lib/plaid/models/bank_transfer_type.rb +6 -4
  113. data/lib/plaid/models/bank_transfer_user.rb +4 -4
  114. data/lib/plaid/models/bank_transfers_events_update_webhook.rb +2 -2
  115. data/lib/plaid/models/categories_get_response.rb +2 -2
  116. data/lib/plaid/models/category.rb +2 -2
  117. data/lib/plaid/models/cause.rb +156 -15
  118. data/lib/plaid/models/cause_all_of.rb +219 -0
  119. data/lib/plaid/models/client_provided_enhanced_transaction.rb +284 -0
  120. data/lib/plaid/models/client_provided_raw_transaction.rb +270 -0
  121. data/lib/plaid/models/connected_application.rb +298 -0
  122. data/lib/plaid/models/country_code.rb +8 -4
  123. data/lib/plaid/models/credit_account_subtype.rb +40 -0
  124. data/lib/plaid/models/credit_bank_income.rb +273 -0
  125. data/lib/plaid/models/credit_bank_income_account.rb +281 -0
  126. data/lib/plaid/models/credit_bank_income_account_type.rb +38 -0
  127. data/lib/plaid/models/credit_bank_income_category.rb +48 -0
  128. data/lib/plaid/models/credit_bank_income_cause.rb +259 -0
  129. data/lib/plaid/models/credit_bank_income_error_type.rb +53 -0
  130. data/lib/plaid/models/credit_bank_income_get_request.rb +249 -0
  131. data/lib/plaid/models/credit_bank_income_get_request_options.rb +222 -0
  132. data/lib/plaid/models/credit_bank_income_get_response.rb +236 -0
  133. data/lib/plaid/models/credit_bank_income_historical_summary.rb +273 -0
  134. data/lib/plaid/models/credit_bank_income_item.rb +274 -0
  135. data/lib/plaid/models/credit_bank_income_pay_frequency.rb +42 -0
  136. data/lib/plaid/models/credit_bank_income_source.rb +309 -0
  137. data/lib/plaid/models/credit_bank_income_summary.rb +303 -0
  138. data/lib/plaid/models/credit_bank_income_transaction.rb +304 -0
  139. data/lib/plaid/models/credit_bank_income_warning.rb +237 -0
  140. data/lib/plaid/models/credit_bank_income_warning_code.rb +41 -0
  141. data/lib/plaid/models/credit_bank_income_warning_type.rb +38 -0
  142. data/lib/plaid/models/credit_card_liability.rb +26 -35
  143. data/lib/plaid/models/credit_document_metadata.rb +258 -0
  144. data/lib/plaid/models/credit_employer_verification.rb +221 -0
  145. data/lib/plaid/models/credit_employment_get_request.rb +245 -0
  146. data/lib/plaid/models/credit_employment_get_response.rb +242 -0
  147. data/lib/plaid/models/credit_employment_verification.rb +282 -0
  148. data/lib/plaid/models/credit_filter.rb +4 -4
  149. data/lib/plaid/models/credit_pay_stub.rb +329 -0
  150. data/lib/plaid/models/credit_pay_stub_address.rb +265 -0
  151. data/lib/plaid/models/credit_pay_stub_deductions.rb +240 -0
  152. data/lib/plaid/models/credit_pay_stub_earnings.rb +240 -0
  153. data/lib/plaid/models/credit_pay_stub_employee.rb +260 -0
  154. data/lib/plaid/models/{nullable_recipient_bacs.rb → credit_pay_stub_employer.rb} +26 -27
  155. data/lib/plaid/models/credit_pay_stub_net_pay.rb +265 -0
  156. data/lib/plaid/models/credit_pay_stub_verification.rb +237 -0
  157. data/lib/plaid/models/credit_payroll_income_get_request.rb +240 -0
  158. data/lib/plaid/models/credit_payroll_income_get_response.rb +251 -0
  159. data/lib/plaid/models/credit_payroll_income_precheck_request.rb +272 -0
  160. data/lib/plaid/models/credit_payroll_income_precheck_response.rb +239 -0
  161. data/lib/plaid/models/credit_platform_ids.rb +243 -0
  162. data/lib/plaid/models/credit_w2.rb +486 -0
  163. data/lib/plaid/models/customer_initiated_return_risk.rb +300 -0
  164. data/lib/plaid/models/deductions.rb +262 -0
  165. data/lib/plaid/models/deductions_breakdown.rb +265 -0
  166. data/lib/plaid/models/deductions_total.rb +254 -0
  167. data/lib/plaid/models/default_update_webhook.rb +3 -4
  168. data/lib/plaid/models/deposit_switch_address_data.rb +2 -2
  169. data/lib/plaid/models/deposit_switch_alt_create_request.rb +60 -6
  170. data/lib/plaid/models/deposit_switch_alt_create_response.rb +2 -2
  171. data/lib/plaid/models/deposit_switch_create_request.rb +60 -6
  172. data/lib/plaid/models/deposit_switch_create_request_options.rb +251 -0
  173. data/lib/plaid/models/deposit_switch_create_response.rb +2 -2
  174. data/lib/plaid/models/deposit_switch_get_request.rb +2 -2
  175. data/lib/plaid/models/deposit_switch_get_response.rb +77 -10
  176. data/lib/plaid/models/deposit_switch_state_update_webhook.rb +250 -0
  177. data/lib/plaid/models/deposit_switch_target_account.rb +3 -2
  178. data/lib/plaid/models/deposit_switch_target_user.rb +3 -2
  179. data/lib/plaid/models/deposit_switch_token_create_request.rb +2 -2
  180. data/lib/plaid/models/deposit_switch_token_create_response.rb +3 -3
  181. data/lib/plaid/models/depository_account_subtype.rb +47 -0
  182. data/lib/plaid/models/depository_filter.rb +4 -4
  183. data/lib/plaid/models/distribution_breakdown.rb +296 -0
  184. data/lib/plaid/models/doc_type.rb +46 -0
  185. data/lib/plaid/models/document_metadata.rb +249 -0
  186. data/lib/plaid/models/earnings.rb +252 -0
  187. data/lib/plaid/models/earnings_breakdown.rb +297 -0
  188. data/lib/plaid/models/earnings_breakdown_canonical_description.rb +47 -0
  189. data/lib/plaid/models/earnings_total.rb +283 -0
  190. data/lib/plaid/models/email.rb +2 -2
  191. data/lib/plaid/models/employee.rb +31 -18
  192. data/lib/plaid/models/employee_income_summary_field_string.rb +3 -2
  193. data/lib/plaid/models/employer.rb +8 -4
  194. data/lib/plaid/models/employer_income_summary_field_string.rb +3 -2
  195. data/lib/plaid/models/employer_verification.rb +221 -0
  196. data/lib/plaid/models/employers_search_request.rb +2 -2
  197. data/lib/plaid/models/employers_search_response.rb +2 -2
  198. data/lib/plaid/models/employment_details.rb +230 -0
  199. data/lib/plaid/models/employment_verification.rb +271 -0
  200. data/lib/plaid/models/employment_verification_get_request.rb +245 -0
  201. data/lib/plaid/models/employment_verification_get_response.rb +242 -0
  202. data/lib/plaid/models/employment_verification_status.rb +40 -0
  203. data/lib/plaid/models/enhancements.rb +298 -0
  204. data/lib/plaid/models/error.rb +7 -14
  205. data/lib/plaid/models/external_payment_initiation_consent_options.rb +249 -0
  206. data/lib/plaid/models/external_payment_options.rb +72 -8
  207. data/lib/plaid/models/external_payment_refund_details.rb +9 -3
  208. data/lib/plaid/models/{external_payment_schedule.rb → external_payment_schedule_base.rb} +23 -27
  209. data/lib/plaid/models/external_payment_schedule_get.rb +21 -21
  210. data/lib/plaid/models/external_payment_schedule_request.rb +283 -0
  211. data/lib/plaid/models/health_incident.rb +22 -8
  212. data/lib/plaid/models/historical_balance.rb +5 -5
  213. data/lib/plaid/models/historical_update_webhook.rb +4 -5
  214. data/lib/plaid/models/holding.rb +4 -4
  215. data/lib/plaid/models/holdings_default_update_webhook.rb +3 -4
  216. data/lib/plaid/models/holdings_override.rb +289 -0
  217. data/lib/plaid/models/identity_default_update_webhook.rb +286 -0
  218. data/lib/plaid/models/identity_get_request.rb +2 -2
  219. data/lib/plaid/models/identity_get_request_options.rb +2 -2
  220. data/lib/plaid/models/identity_get_response.rb +2 -2
  221. data/lib/plaid/models/identity_update_types.rb +41 -0
  222. data/lib/plaid/models/incident_update.rb +7 -6
  223. data/lib/plaid/models/income_breakdown.rb +4 -4
  224. data/lib/plaid/models/income_breakdown_type.rb +41 -0
  225. data/lib/plaid/models/income_override.rb +222 -0
  226. data/lib/plaid/models/income_summary.rb +27 -2
  227. data/lib/plaid/models/income_summary_field_number.rb +3 -2
  228. data/lib/plaid/models/income_summary_field_string.rb +3 -2
  229. data/lib/plaid/models/income_verification_create_request.rb +25 -6
  230. data/lib/plaid/models/income_verification_create_request_options.rb +222 -0
  231. data/lib/plaid/models/income_verification_create_response.rb +2 -2
  232. data/lib/plaid/models/income_verification_documents_download_request.rb +29 -11
  233. data/lib/plaid/models/income_verification_payroll_flow_type.rb +39 -0
  234. data/lib/plaid/models/{income_verification_paystub_get_request.rb → income_verification_paystubs_get_request.rb} +22 -15
  235. data/lib/plaid/models/income_verification_paystubs_get_response.rb +262 -0
  236. data/lib/plaid/models/income_verification_precheck_confidence.rb +40 -0
  237. data/lib/plaid/models/income_verification_precheck_employer.rb +253 -0
  238. data/lib/plaid/models/income_verification_precheck_employer_address.rb +267 -0
  239. data/lib/plaid/models/income_verification_precheck_employer_address_data.rb +260 -0
  240. data/lib/plaid/models/income_verification_precheck_military_info.rb +232 -0
  241. data/lib/plaid/models/income_verification_precheck_request.rb +281 -0
  242. data/lib/plaid/models/income_verification_precheck_response.rb +254 -0
  243. data/lib/plaid/models/income_verification_precheck_user.rb +253 -0
  244. data/lib/plaid/models/{income_verification_summary_get_request.rb → income_verification_refresh_request.rb} +22 -15
  245. data/lib/plaid/models/income_verification_refresh_response.rb +239 -0
  246. data/lib/plaid/models/income_verification_source_type.rb +39 -0
  247. data/lib/plaid/models/income_verification_status_webhook.rb +16 -16
  248. data/lib/plaid/models/income_verification_taxforms_get_request.rb +252 -0
  249. data/lib/plaid/models/income_verification_taxforms_get_response.rb +262 -0
  250. data/lib/plaid/models/income_verification_webhook_status.rb +3 -2
  251. data/lib/plaid/models/inflow_model.rb +3 -3
  252. data/lib/plaid/models/initial_update_webhook.rb +3 -3
  253. data/lib/plaid/models/institution.rb +25 -10
  254. data/lib/plaid/models/institution_status.rb +31 -18
  255. data/lib/plaid/models/institutions_get_by_id_request.rb +24 -3
  256. data/lib/plaid/models/institutions_get_by_id_request_options.rb +16 -4
  257. data/lib/plaid/models/institutions_get_by_id_response.rb +2 -2
  258. data/lib/plaid/models/institutions_get_request.rb +33 -3
  259. data/lib/plaid/models/institutions_get_request_options.rb +38 -6
  260. data/lib/plaid/models/institutions_get_response.rb +3 -3
  261. data/lib/plaid/models/institutions_search_account_filter.rb +3 -2
  262. data/lib/plaid/models/institutions_search_payment_initiation_options.rb +18 -6
  263. data/lib/plaid/models/institutions_search_request.rb +24 -11
  264. data/lib/plaid/models/institutions_search_request_options.rb +20 -5
  265. data/lib/plaid/models/institutions_search_response.rb +2 -2
  266. data/lib/plaid/models/investment_account_subtype.rb +85 -0
  267. data/lib/plaid/models/investment_filter.rb +5 -5
  268. data/lib/plaid/models/investment_holdings_get_request_options.rb +2 -2
  269. data/lib/plaid/models/investment_transaction.rb +8 -56
  270. data/lib/plaid/models/investment_transaction_subtype.rb +82 -0
  271. data/lib/plaid/models/investment_transaction_type.rb +43 -0
  272. data/lib/plaid/models/investments_default_update_webhook.rb +3 -4
  273. data/lib/plaid/models/investments_holdings_get_request.rb +2 -2
  274. data/lib/plaid/models/investments_holdings_get_response.rb +2 -2
  275. data/lib/plaid/models/investments_transactions_get_request.rb +2 -2
  276. data/lib/plaid/models/investments_transactions_get_request_options.rb +2 -2
  277. data/lib/plaid/models/investments_transactions_get_response.rb +2 -2
  278. data/lib/plaid/models/investments_transactions_override.rb +319 -0
  279. data/lib/plaid/models/item.rb +31 -7
  280. data/lib/plaid/models/item_access_token_invalidate_request.rb +2 -2
  281. data/lib/plaid/models/item_access_token_invalidate_response.rb +2 -2
  282. data/lib/plaid/models/item_application_list_request.rb +241 -0
  283. data/lib/plaid/models/item_application_list_response.rb +237 -0
  284. data/lib/plaid/models/item_application_list_user_auth.rb +232 -0
  285. data/lib/plaid/models/item_application_scopes_update_request.rb +298 -0
  286. data/lib/plaid/models/item_application_scopes_update_response.rb +225 -0
  287. data/lib/plaid/models/item_error_webhook.rb +8 -4
  288. data/lib/plaid/models/item_get_request.rb +2 -2
  289. data/lib/plaid/models/item_get_response.rb +3 -3
  290. data/lib/plaid/models/item_import_request.rb +2 -2
  291. data/lib/plaid/models/item_import_request_options.rb +2 -2
  292. data/lib/plaid/models/item_import_request_user_auth.rb +2 -2
  293. data/lib/plaid/models/item_import_response.rb +2 -2
  294. data/lib/plaid/models/item_product_ready_webhook.rb +3 -4
  295. data/lib/plaid/models/item_public_token_create_request.rb +2 -2
  296. data/lib/plaid/models/item_public_token_create_response.rb +2 -2
  297. data/lib/plaid/models/item_public_token_exchange_request.rb +2 -2
  298. data/lib/plaid/models/item_public_token_exchange_response.rb +2 -2
  299. data/lib/plaid/models/item_remove_request.rb +2 -2
  300. data/lib/plaid/models/item_remove_response.rb +2 -2
  301. data/lib/plaid/models/item_status.rb +8 -17
  302. data/lib/plaid/models/item_status_investments.rb +232 -0
  303. data/lib/plaid/models/item_status_last_webhook.rb +232 -0
  304. data/lib/plaid/models/{nullable_item_status.rb → item_status_nullable.rb} +12 -20
  305. data/lib/plaid/models/item_status_transactions.rb +232 -0
  306. data/lib/plaid/models/item_webhook_update_request.rb +4 -8
  307. data/lib/plaid/models/item_webhook_update_response.rb +2 -2
  308. data/lib/plaid/models/jwk_public_key.rb +4 -2
  309. data/lib/plaid/models/jwt_header.rb +2 -2
  310. data/lib/plaid/models/liabilities_default_update_webhook.rb +35 -6
  311. data/lib/plaid/models/liabilities_get_request.rb +2 -2
  312. data/lib/plaid/models/liabilities_get_request_options.rb +2 -2
  313. data/lib/plaid/models/liabilities_get_response.rb +2 -2
  314. data/lib/plaid/models/liabilities_object.rb +5 -5
  315. data/lib/plaid/models/liability_override.rb +5 -5
  316. data/lib/plaid/models/link_token_account_filters.rb +3 -3
  317. data/lib/plaid/models/link_token_create_credit_filter.rb +222 -0
  318. data/lib/plaid/models/link_token_create_depository_filter.rb +222 -0
  319. data/lib/plaid/models/link_token_create_institution_data.rb +220 -0
  320. data/lib/plaid/models/link_token_create_investment_filter.rb +222 -0
  321. data/lib/plaid/models/link_token_create_loan_filter.rb +222 -0
  322. data/lib/plaid/models/link_token_create_request.rb +56 -10
  323. data/lib/plaid/models/link_token_create_request_account_subtypes.rb +11 -23
  324. data/lib/plaid/models/link_token_create_request_auth.rb +2 -2
  325. data/lib/plaid/models/link_token_create_request_deposit_switch.rb +2 -2
  326. data/lib/plaid/models/link_token_create_request_income_verification.rb +59 -13
  327. data/lib/plaid/models/link_token_create_request_income_verification_bank_income.rb +220 -0
  328. data/lib/plaid/models/link_token_create_request_income_verification_payroll_income.rb +223 -0
  329. data/lib/plaid/models/link_token_create_request_payment_initiation.rb +23 -2
  330. data/lib/plaid/models/link_token_create_request_transfer.rb +220 -0
  331. data/lib/plaid/models/link_token_create_request_update.rb +222 -0
  332. data/lib/plaid/models/link_token_create_request_user.rb +10 -10
  333. data/lib/plaid/models/link_token_create_response.rb +3 -3
  334. data/lib/plaid/models/link_token_eu_config.rb +220 -0
  335. data/lib/plaid/models/link_token_get_metadata_response.rb +22 -3
  336. data/lib/plaid/models/link_token_get_request.rb +2 -2
  337. data/lib/plaid/models/link_token_get_response.rb +14 -4
  338. data/lib/plaid/models/loan_account_subtype.rb +49 -0
  339. data/lib/plaid/models/loan_filter.rb +4 -4
  340. data/lib/plaid/models/location.rb +4 -4
  341. data/lib/plaid/models/meta.rb +2 -2
  342. data/lib/plaid/models/mfa.rb +2 -2
  343. data/lib/plaid/models/mortgage_interest_rate.rb +2 -2
  344. data/lib/plaid/models/mortgage_liability.rb +25 -11
  345. data/lib/plaid/models/mortgage_property_address.rb +2 -2
  346. data/lib/plaid/models/net_pay.rb +274 -0
  347. data/lib/plaid/models/new_accounts_available_webhook.rb +249 -0
  348. data/lib/plaid/models/numbers.rb +2 -42
  349. data/lib/plaid/models/numbers_ach.rb +3 -3
  350. data/lib/plaid/models/{nullable_numbers_ach.rb → numbers_ach_nullable.rb} +7 -6
  351. data/lib/plaid/models/numbers_bacs.rb +2 -2
  352. data/lib/plaid/models/{nullable_numbers_bacs.rb → numbers_bacs_nullable.rb} +6 -5
  353. data/lib/plaid/models/numbers_eft.rb +2 -2
  354. data/lib/plaid/models/{nullable_numbers_eft.rb → numbers_eft_nullable.rb} +6 -5
  355. data/lib/plaid/models/numbers_international.rb +2 -2
  356. data/lib/plaid/models/{nullable_numbers_international.rb → numbers_international_nullable.rb} +6 -5
  357. data/lib/plaid/models/override_account_type.rb +43 -0
  358. data/lib/plaid/models/override_accounts.rb +34 -7
  359. data/lib/plaid/models/owner.rb +2 -2
  360. data/lib/plaid/models/owner_override.rb +2 -2
  361. data/lib/plaid/models/pay.rb +232 -0
  362. data/lib/plaid/models/pay_frequency.rb +4 -38
  363. data/lib/plaid/models/pay_frequency_value.rb +43 -0
  364. data/lib/plaid/models/pay_period_details.rb +99 -32
  365. data/lib/plaid/models/pay_stub_deductions_breakdown.rb +265 -0
  366. data/lib/plaid/models/pay_stub_deductions_total.rb +254 -0
  367. data/lib/plaid/models/pay_stub_distribution_breakdown.rb +287 -0
  368. data/lib/plaid/models/pay_stub_earnings_breakdown.rb +298 -0
  369. data/lib/plaid/models/pay_stub_earnings_total.rb +265 -0
  370. data/lib/plaid/models/pay_stub_pay_period_details.rb +314 -0
  371. data/lib/plaid/models/pay_stub_taxpayer_id.rb +232 -0
  372. data/lib/plaid/models/pay_stub_verification_attribute.rb +221 -0
  373. data/lib/plaid/models/payment_amount.rb +3 -38
  374. data/lib/plaid/models/payment_amount_currency.rb +39 -0
  375. data/lib/plaid/models/payment_channel.rb +40 -0
  376. data/lib/plaid/models/payment_consent_max_payment_amount.rb +246 -0
  377. data/lib/plaid/models/payment_consent_periodic_alignment.rb +39 -0
  378. data/lib/plaid/models/payment_consent_periodic_amount.rb +247 -0
  379. data/lib/plaid/models/payment_consent_periodic_amount_amount.rb +246 -0
  380. data/lib/plaid/models/payment_consent_periodic_interval.rb +41 -0
  381. data/lib/plaid/models/payment_consent_valid_date_time.rb +232 -0
  382. data/lib/plaid/models/payment_initiation_address.rb +119 -5
  383. data/lib/plaid/models/payment_initiation_consent.rb +357 -0
  384. data/lib/plaid/models/payment_initiation_consent_constraints.rb +241 -0
  385. data/lib/plaid/models/payment_initiation_consent_create_request.rb +373 -0
  386. data/lib/plaid/models/payment_initiation_consent_create_response.rb +254 -0
  387. data/lib/plaid/models/payment_initiation_consent_get_request.rb +266 -0
  388. data/lib/plaid/models/payment_initiation_consent_get_response.rb +380 -0
  389. data/lib/plaid/models/payment_initiation_consent_payment_execute_request.rb +325 -0
  390. data/lib/plaid/models/payment_initiation_consent_payment_execute_response.rb +254 -0
  391. data/lib/plaid/models/payment_initiation_consent_revoke_request.rb +266 -0
  392. data/lib/plaid/models/payment_initiation_consent_revoke_response.rb +220 -0
  393. data/lib/plaid/models/payment_initiation_consent_scope.rb +39 -0
  394. data/lib/plaid/models/payment_initiation_consent_status.rb +42 -0
  395. data/lib/plaid/models/payment_initiation_metadata.rb +18 -3
  396. data/lib/plaid/models/payment_initiation_optional_restriction_bacs.rb +55 -2
  397. data/lib/plaid/models/payment_initiation_payment.rb +55 -47
  398. data/lib/plaid/models/payment_initiation_payment_create_request.rb +54 -4
  399. data/lib/plaid/models/payment_initiation_payment_create_response.rb +3 -4
  400. data/lib/plaid/models/payment_initiation_payment_create_status.rb +38 -0
  401. data/lib/plaid/models/payment_initiation_payment_get_request.rb +23 -2
  402. data/lib/plaid/models/payment_initiation_payment_get_response.rb +56 -48
  403. data/lib/plaid/models/payment_initiation_payment_list_request.rb +12 -3
  404. data/lib/plaid/models/payment_initiation_payment_list_response.rb +2 -2
  405. data/lib/plaid/models/payment_initiation_payment_reverse_request.rb +266 -0
  406. data/lib/plaid/models/payment_initiation_payment_reverse_response.rb +254 -0
  407. data/lib/plaid/models/payment_initiation_payment_status.rb +50 -0
  408. data/lib/plaid/models/payment_initiation_payment_token_create_request.rb +23 -2
  409. data/lib/plaid/models/payment_initiation_payment_token_create_response.rb +3 -3
  410. data/lib/plaid/models/payment_initiation_recipient.rb +3 -3
  411. data/lib/plaid/models/payment_initiation_recipient_create_request.rb +50 -3
  412. data/lib/plaid/models/payment_initiation_recipient_create_response.rb +2 -2
  413. data/lib/plaid/models/payment_initiation_recipient_get_request.rb +23 -2
  414. data/lib/plaid/models/payment_initiation_recipient_get_response.rb +3 -3
  415. data/lib/plaid/models/payment_initiation_recipient_get_response_all_of.rb +2 -2
  416. data/lib/plaid/models/payment_initiation_recipient_list_request.rb +2 -2
  417. data/lib/plaid/models/payment_initiation_recipient_list_response.rb +2 -2
  418. data/lib/plaid/models/payment_initiation_refund.rb +268 -0
  419. data/lib/plaid/models/payment_initiation_refund_status.rb +41 -0
  420. data/lib/plaid/models/payment_initiation_standing_order_metadata.rb +17 -2
  421. data/lib/plaid/models/payment_meta.rb +2 -2
  422. data/lib/plaid/models/payment_schedule_interval.rb +6 -4
  423. data/lib/plaid/models/payment_scheme.rb +41 -0
  424. data/lib/plaid/models/payment_status_update_webhook.rb +8 -57
  425. data/lib/plaid/models/payroll_income_object.rb +255 -0
  426. data/lib/plaid/models/payroll_item.rb +251 -0
  427. data/lib/plaid/models/payroll_item_status.rb +221 -0
  428. data/lib/plaid/models/paystub.rb +90 -41
  429. data/lib/plaid/models/paystub_address.rb +298 -0
  430. data/lib/plaid/models/paystub_deduction.rb +3 -2
  431. data/lib/plaid/models/paystub_details.rb +264 -0
  432. data/lib/plaid/models/paystub_employer.rb +230 -0
  433. data/lib/plaid/models/paystub_override.rb +248 -0
  434. data/lib/plaid/models/paystub_override_employee.rb +229 -0
  435. data/lib/plaid/models/paystub_override_employee_address.rb +260 -0
  436. data/lib/plaid/models/paystub_override_employer.rb +220 -0
  437. data/lib/plaid/models/paystub_pay_frequency.rb +42 -0
  438. data/lib/plaid/models/paystub_verification.rb +236 -0
  439. data/lib/plaid/models/paystub_verification_status.rb +41 -0
  440. data/lib/plaid/models/paystub_ytd_details.rb +5 -12
  441. data/lib/plaid/models/pending_expiration_webhook.rb +4 -4
  442. data/lib/plaid/models/personal_finance_category.rb +240 -0
  443. data/lib/plaid/models/phone_number.rb +12 -4
  444. data/lib/plaid/models/plaid_error.rb +360 -0
  445. data/lib/plaid/models/platform_ids.rb +243 -0
  446. data/lib/plaid/models/processor_apex_processor_token_create_request.rb +2 -2
  447. data/lib/plaid/models/processor_auth_get_request.rb +2 -2
  448. data/lib/plaid/models/processor_auth_get_response.rb +2 -2
  449. data/lib/plaid/models/processor_balance_get_request.rb +15 -6
  450. data/lib/plaid/models/processor_balance_get_request_options.rb +220 -0
  451. data/lib/plaid/models/processor_balance_get_response.rb +2 -2
  452. data/lib/plaid/models/processor_bank_transfer_create_request.rb +459 -0
  453. data/lib/plaid/models/processor_bank_transfer_create_response.rb +239 -0
  454. data/lib/plaid/models/processor_identity_get_request.rb +2 -2
  455. data/lib/plaid/models/processor_identity_get_response.rb +2 -2
  456. data/lib/plaid/models/processor_number.rb +6 -6
  457. data/lib/plaid/models/processor_stripe_bank_account_token_create_request.rb +2 -2
  458. data/lib/plaid/models/processor_stripe_bank_account_token_create_response.rb +2 -2
  459. data/lib/plaid/models/processor_token_create_request.rb +37 -3
  460. data/lib/plaid/models/processor_token_create_response.rb +2 -2
  461. data/lib/plaid/models/product_access.rb +327 -0
  462. data/lib/plaid/models/product_status.rb +6 -6
  463. data/lib/plaid/models/product_status_breakdown.rb +2 -3
  464. data/lib/plaid/models/products.rb +10 -4
  465. data/lib/plaid/models/projected_income_summary_field_number.rb +3 -2
  466. data/lib/plaid/models/pslf_status.rb +4 -4
  467. data/lib/plaid/models/recaptcha_required_error.rb +2 -2
  468. data/lib/plaid/models/recipient_bacs.rb +55 -3
  469. data/lib/plaid/models/recipient_bacs_nullable.rb +289 -0
  470. data/lib/plaid/models/recurring_transaction_frequency.rb +42 -0
  471. data/lib/plaid/models/relay_event.rb +40 -0
  472. data/lib/plaid/models/removed_transaction.rb +220 -0
  473. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_request.rb +3 -3
  474. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_response.rb +3 -3
  475. data/lib/plaid/models/sandbox_bank_transfer_simulate_request.rb +3 -3
  476. data/lib/plaid/models/sandbox_bank_transfer_simulate_response.rb +3 -3
  477. data/lib/plaid/models/sandbox_income_fire_webhook_request.rb +309 -0
  478. data/lib/plaid/models/sandbox_income_fire_webhook_response.rb +225 -0
  479. data/lib/plaid/models/sandbox_item_fire_webhook_request.rb +15 -6
  480. data/lib/plaid/models/sandbox_item_fire_webhook_response.rb +2 -2
  481. data/lib/plaid/models/sandbox_item_reset_login_request.rb +2 -2
  482. data/lib/plaid/models/sandbox_item_reset_login_response.rb +2 -2
  483. data/lib/plaid/models/sandbox_item_set_verification_status_request.rb +2 -2
  484. data/lib/plaid/models/sandbox_item_set_verification_status_response.rb +2 -2
  485. data/lib/plaid/models/sandbox_oauth_select_accounts_request.rb +240 -0
  486. data/lib/plaid/models/sandbox_processor_token_create_request.rb +3 -2
  487. data/lib/plaid/models/sandbox_processor_token_create_request_options.rb +2 -2
  488. data/lib/plaid/models/sandbox_processor_token_create_response.rb +3 -2
  489. data/lib/plaid/models/sandbox_public_token_create_request.rb +2 -2
  490. data/lib/plaid/models/sandbox_public_token_create_request_options.rb +2 -2
  491. data/lib/plaid/models/sandbox_public_token_create_request_options_transactions.rb +5 -5
  492. data/lib/plaid/models/sandbox_public_token_create_response.rb +2 -2
  493. data/lib/plaid/models/sandbox_transfer_fire_webhook_request.rb +245 -0
  494. data/lib/plaid/models/sandbox_transfer_fire_webhook_response.rb +225 -0
  495. data/lib/plaid/models/sandbox_transfer_repayment_simulate_request.rb +230 -0
  496. data/lib/plaid/models/sandbox_transfer_repayment_simulate_response.rb +225 -0
  497. data/lib/plaid/models/sandbox_transfer_simulate_request.rb +270 -0
  498. data/lib/plaid/models/{income_verification_paystub_get_response.rb → sandbox_transfer_simulate_response.rb} +12 -16
  499. data/lib/plaid/models/sandbox_transfer_sweep_simulate_request.rb +230 -0
  500. data/lib/plaid/models/{income_verification_summary_get_response.rb → sandbox_transfer_sweep_simulate_response.rb} +13 -21
  501. data/lib/plaid/models/scopes.rb +243 -0
  502. data/lib/plaid/models/scopes_context.rb +39 -0
  503. data/lib/plaid/models/scopes_nullable.rb +250 -0
  504. data/lib/plaid/models/security.rb +4 -4
  505. data/lib/plaid/models/security_override.rb +270 -0
  506. data/lib/plaid/models/sender_bacs_nullable.rb +289 -0
  507. data/lib/plaid/models/servicer_address_data.rb +2 -2
  508. data/lib/plaid/models/signal_address_data.rb +263 -0
  509. data/lib/plaid/models/signal_decision_report_request.rb +318 -0
  510. data/lib/plaid/models/signal_decision_report_response.rb +225 -0
  511. data/lib/plaid/models/signal_device.rb +232 -0
  512. data/lib/plaid/models/signal_evaluate_core_attributes.rb +903 -0
  513. data/lib/plaid/models/signal_evaluate_request.rb +376 -0
  514. data/lib/plaid/models/signal_evaluate_response.rb +248 -0
  515. data/lib/plaid/models/signal_person_name.rb +265 -0
  516. data/lib/plaid/models/signal_return_report_request.rb +290 -0
  517. data/lib/plaid/models/signal_return_report_response.rb +225 -0
  518. data/lib/plaid/models/signal_scores.rb +228 -0
  519. data/lib/plaid/models/signal_user.rb +252 -0
  520. data/lib/plaid/models/simulated_transfer_sweep.rb +277 -0
  521. data/lib/plaid/models/standalone_account_type.rb +4 -4
  522. data/lib/plaid/models/standalone_currency_code_list.rb +2 -2
  523. data/lib/plaid/models/standalone_investment_transaction_type.rb +4 -4
  524. data/lib/plaid/models/student_loan.rb +35 -15
  525. data/lib/plaid/models/student_loan_repayment_model.rb +2 -2
  526. data/lib/plaid/models/student_loan_status.rb +4 -4
  527. data/lib/plaid/models/student_repayment_plan.rb +4 -4
  528. data/lib/plaid/models/taxform.rb +244 -0
  529. data/lib/plaid/models/taxpayer_id.rb +269 -0
  530. data/lib/plaid/models/total.rb +249 -0
  531. data/lib/plaid/models/total_canonical_description.rb +54 -0
  532. data/lib/plaid/models/transaction.rb +191 -130
  533. data/lib/plaid/models/transaction_all_of.rb +311 -0
  534. data/lib/plaid/models/transaction_base.rb +458 -0
  535. data/lib/plaid/models/transaction_code.rb +6 -4
  536. data/lib/plaid/models/transaction_data.rb +4 -4
  537. data/lib/plaid/models/transaction_override.rb +6 -6
  538. data/lib/plaid/models/transaction_stream.rb +430 -0
  539. data/lib/plaid/models/transaction_stream_amount.rb +242 -0
  540. data/lib/plaid/models/transaction_stream_status.rb +41 -0
  541. data/lib/plaid/models/transactions_category_rule.rb +259 -0
  542. data/lib/plaid/models/transactions_enhance_get_request.rb +262 -0
  543. data/lib/plaid/models/transactions_enhance_get_response.rb +227 -0
  544. data/lib/plaid/models/transactions_get_request.rb +2 -2
  545. data/lib/plaid/models/transactions_get_request_options.rb +43 -6
  546. data/lib/plaid/models/transactions_get_response.rb +2 -2
  547. data/lib/plaid/models/transactions_recurring_get_request.rb +271 -0
  548. data/lib/plaid/models/transactions_recurring_get_request_options.rb +222 -0
  549. data/lib/plaid/models/transactions_recurring_get_response.rb +274 -0
  550. data/lib/plaid/models/transactions_refresh_request.rb +2 -2
  551. data/lib/plaid/models/transactions_refresh_response.rb +2 -2
  552. data/lib/plaid/models/transactions_removed_webhook.rb +3 -4
  553. data/lib/plaid/models/transactions_rule_details.rb +253 -0
  554. data/lib/plaid/models/transactions_rule_field.rb +39 -0
  555. data/lib/plaid/models/transactions_rule_type.rb +39 -0
  556. data/lib/plaid/models/transactions_rules_create_request.rb +284 -0
  557. data/lib/plaid/models/transactions_rules_create_response.rb +239 -0
  558. data/lib/plaid/models/transactions_rules_list_request.rb +255 -0
  559. data/lib/plaid/models/transactions_rules_list_response.rb +242 -0
  560. data/lib/plaid/models/transactions_rules_remove_request.rb +270 -0
  561. data/lib/plaid/models/transactions_rules_remove_response.rb +225 -0
  562. data/lib/plaid/models/transactions_sync_request.rb +293 -0
  563. data/lib/plaid/models/transactions_sync_response.rb +306 -0
  564. data/lib/plaid/models/transfer.rb +462 -0
  565. data/lib/plaid/models/transfer_authorization.rb +298 -0
  566. data/lib/plaid/models/transfer_authorization_create_request.rb +360 -0
  567. data/lib/plaid/models/transfer_authorization_create_response.rb +239 -0
  568. data/lib/plaid/models/transfer_authorization_decision.rb +39 -0
  569. data/lib/plaid/models/transfer_authorization_decision_rationale.rb +239 -0
  570. data/lib/plaid/models/transfer_authorization_decision_rationale_code.rb +42 -0
  571. data/lib/plaid/models/transfer_authorization_device.rb +230 -0
  572. data/lib/plaid/models/transfer_authorization_guarantee_decision.rb +40 -0
  573. data/lib/plaid/models/transfer_authorization_guarantee_decision_rationale.rb +239 -0
  574. data/lib/plaid/models/transfer_authorization_guarantee_decision_rationale_code.rb +41 -0
  575. data/lib/plaid/models/transfer_authorization_proposed_transfer.rb +327 -0
  576. data/lib/plaid/models/transfer_cancel_request.rb +245 -0
  577. data/lib/plaid/models/transfer_cancel_response.rb +225 -0
  578. data/lib/plaid/models/transfer_create_request.rb +452 -0
  579. data/lib/plaid/models/transfer_create_response.rb +239 -0
  580. data/lib/plaid/models/transfer_event.rb +377 -0
  581. data/lib/plaid/models/transfer_event_list_request.rb +386 -0
  582. data/lib/plaid/models/transfer_event_list_response.rb +241 -0
  583. data/lib/plaid/models/transfer_event_list_transfer_type.rb +40 -0
  584. data/lib/plaid/models/transfer_event_sync_request.rb +305 -0
  585. data/lib/plaid/models/transfer_event_sync_response.rb +241 -0
  586. data/lib/plaid/models/transfer_event_type.rb +44 -0
  587. data/lib/plaid/models/transfer_events_update_webhook.rb +240 -0
  588. data/lib/plaid/models/transfer_failure.rb +231 -0
  589. data/lib/plaid/models/transfer_get_request.rb +245 -0
  590. data/lib/plaid/models/transfer_get_response.rb +239 -0
  591. data/lib/plaid/models/transfer_intent_authorization_decision.rb +39 -0
  592. data/lib/plaid/models/transfer_intent_create.rb +389 -0
  593. data/lib/plaid/models/transfer_intent_create_mode.rb +39 -0
  594. data/lib/plaid/models/transfer_intent_create_request.rb +396 -0
  595. data/lib/plaid/models/transfer_intent_create_response.rb +239 -0
  596. data/lib/plaid/models/transfer_intent_get.rb +430 -0
  597. data/lib/plaid/models/transfer_intent_get_failure_reason.rb +240 -0
  598. data/lib/plaid/models/transfer_intent_get_request.rb +255 -0
  599. data/lib/plaid/models/transfer_intent_get_response.rb +239 -0
  600. data/lib/plaid/models/transfer_intent_status.rb +40 -0
  601. data/lib/plaid/models/transfer_list_request.rb +330 -0
  602. data/lib/plaid/models/transfer_list_response.rb +241 -0
  603. data/lib/plaid/models/transfer_migrate_account_request.rb +285 -0
  604. data/lib/plaid/models/transfer_migrate_account_response.rb +255 -0
  605. data/lib/plaid/models/transfer_network.rb +39 -0
  606. data/lib/plaid/models/transfer_repayment.rb +270 -0
  607. data/lib/plaid/models/transfer_repayment_list_request.rb +320 -0
  608. data/lib/plaid/models/transfer_repayment_list_response.rb +241 -0
  609. data/lib/plaid/models/transfer_repayment_return.rb +291 -0
  610. data/lib/plaid/models/transfer_repayment_return_list_request.rb +313 -0
  611. data/lib/plaid/models/transfer_repayment_return_list_response.rb +241 -0
  612. data/lib/plaid/models/transfer_status.rb +42 -0
  613. data/lib/plaid/models/transfer_sweep.rb +270 -0
  614. data/lib/plaid/models/transfer_sweep_get_request.rb +245 -0
  615. data/lib/plaid/models/transfer_sweep_get_response.rb +239 -0
  616. data/lib/plaid/models/transfer_sweep_list_request.rb +320 -0
  617. data/lib/plaid/models/transfer_sweep_list_response.rb +241 -0
  618. data/lib/plaid/models/transfer_sweep_status.rb +41 -0
  619. data/lib/plaid/models/transfer_type.rb +39 -0
  620. data/lib/plaid/models/transfer_user_address_in_request.rb +260 -0
  621. data/lib/plaid/models/transfer_user_address_in_response.rb +265 -0
  622. data/lib/plaid/models/transfer_user_in_request.rb +254 -0
  623. data/lib/plaid/models/transfer_user_in_response.rb +257 -0
  624. data/lib/plaid/models/user_create_request.rb +245 -0
  625. data/lib/plaid/models/user_create_response.rb +254 -0
  626. data/lib/plaid/models/user_custom_password.rb +2 -2
  627. data/lib/plaid/models/user_permission_revoked_webhook.rb +3 -4
  628. data/lib/plaid/models/{bank_transfer_receiver_details.rb → verification_attribute.rb} +23 -23
  629. data/lib/plaid/models/verification_expired_webhook.rb +3 -3
  630. data/lib/plaid/models/verification_refresh_status.rb +40 -0
  631. data/lib/plaid/models/verification_status.rb +6 -4
  632. data/lib/plaid/models/w2.rb +437 -0
  633. data/lib/plaid/models/{income_verification_documents_download_response.rb → w2_box12.rb} +26 -18
  634. data/lib/plaid/models/w2_state_and_local_wages.rb +287 -0
  635. data/lib/plaid/models/wallet_balance.rb +240 -0
  636. data/lib/plaid/models/wallet_get_request.rb +266 -0
  637. data/lib/plaid/models/wallet_get_response.rb +259 -0
  638. data/lib/plaid/models/{nullable_access_token.rb → wallet_numbers.rb} +18 -7
  639. data/lib/plaid/models/wallet_transaction.rb +346 -0
  640. data/lib/plaid/models/wallet_transaction_amount.rb +306 -0
  641. data/lib/plaid/models/wallet_transaction_counterparty.rb +260 -0
  642. data/lib/plaid/models/wallet_transaction_counterparty_bacs.rb +289 -0
  643. data/lib/plaid/models/wallet_transaction_counterparty_numbers.rb +224 -0
  644. data/lib/plaid/models/wallet_transaction_execute_request.rb +384 -0
  645. data/lib/plaid/models/wallet_transaction_execute_response.rb +254 -0
  646. data/lib/plaid/models/wallet_transaction_status.rb +41 -0
  647. data/lib/plaid/models/wallet_transactions_list_request.rb +331 -0
  648. data/lib/plaid/models/wallet_transactions_list_response.rb +252 -0
  649. data/lib/plaid/models/warning.rb +36 -2
  650. data/lib/plaid/models/webhook_type.rb +43 -0
  651. data/lib/plaid/models/webhook_update_acknowledged_webhook.rb +3 -4
  652. data/lib/plaid/models/webhook_verification_key_get_request.rb +2 -2
  653. data/lib/plaid/models/webhook_verification_key_get_response.rb +2 -2
  654. data/lib/plaid/models/ytd_gross_income_summary_field_number.rb +3 -2
  655. data/lib/plaid/models/ytd_net_income_summary_field_number.rb +3 -2
  656. data/lib/plaid/version.rb +3 -3
  657. data/lib/plaid.rb +344 -19
  658. data/plaid.gemspec +2 -2
  659. data/templates/ruby/api_client.mustache +3 -2
  660. data/templates/ruby/api_client_faraday_partial.mustache +2 -1
  661. data/templates/ruby/api_error.mustache +49 -0
  662. data/templates/ruby/configuration.mustache +6 -4
  663. data/templates/ruby/partial_model_enum_class.mustache +22 -0
  664. data/test/test_accounts.rb +4 -8
  665. data/test/test_asset_report.rb +1 -1
  666. data/test/test_bank_transfers.rb +1 -1
  667. data/test/test_item.rb +0 -10
  668. data/test/test_payment_initiation.rb +1 -1
  669. data/test/test_processor.rb +1 -16
  670. metadata +349 -24
  671. data/PUBLISH.md +0 -19
  672. data/lib/plaid/models/standalone_investment_transaction_subtype.rb +0 -650
  673. data/pkg/plaid-14.2.0.gem +0 -0
@@ -3,10 +3,10 @@
3
3
 
4
4
  #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
5
 
6
- The version of the OpenAPI document: 2020-09-14_1.16.6
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.0
9
+ OpenAPI Generator version: 5.1.1
10
10
 
11
11
  =end
12
12
 
@@ -14,18 +14,14 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Plaid
17
- # By default, Link will only display account types that are compatible with all products supplied in the `products` parameter of `/link/token/create`. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `\"all\"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the [Account schema](/docs/api/accounts#accounts-schema). For institutions using OAuth, the filter will not affect the list of institutions or accounts shown by the bank in the OAuth window.
17
+ # By default, Link will only display account types that are compatible with all products supplied in the `products` parameter of `/link/token/create`. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `\"all\"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema). For institutions using OAuth, the filter will not affect the list of institutions or accounts shown by the bank in the OAuth window.
18
18
  class LinkTokenCreateRequestAccountSubtypes
19
- # A filter to apply to `depository`-type accounts
20
19
  attr_accessor :depository
21
20
 
22
- # A filter to apply to `credit`-type accounts
23
21
  attr_accessor :credit
24
22
 
25
- # A filter to apply to `loan`-type accounts
26
23
  attr_accessor :loan
27
24
 
28
- # A filter to apply to `investment`-type accounts
29
25
  attr_accessor :investment
30
26
 
31
27
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -46,10 +42,10 @@ module Plaid
46
42
  # Attribute type mapping.
47
43
  def self.openapi_types
48
44
  {
49
- :'depository' => :'Hash<String, Object>',
50
- :'credit' => :'Hash<String, Object>',
51
- :'loan' => :'Hash<String, Object>',
52
- :'investment' => :'Hash<String, Object>'
45
+ :'depository' => :'LinkTokenCreateDepositoryFilter',
46
+ :'credit' => :'LinkTokenCreateCreditFilter',
47
+ :'loan' => :'LinkTokenCreateLoanFilter',
48
+ :'investment' => :'LinkTokenCreateInvestmentFilter'
53
49
  }
54
50
  end
55
51
 
@@ -75,27 +71,19 @@ module Plaid
75
71
  }
76
72
 
77
73
  if attributes.key?(:'depository')
78
- if (value = attributes[:'depository']).is_a?(Hash)
79
- self.depository = value
80
- end
74
+ self.depository = attributes[:'depository']
81
75
  end
82
76
 
83
77
  if attributes.key?(:'credit')
84
- if (value = attributes[:'credit']).is_a?(Hash)
85
- self.credit = value
86
- end
78
+ self.credit = attributes[:'credit']
87
79
  end
88
80
 
89
81
  if attributes.key?(:'loan')
90
- if (value = attributes[:'loan']).is_a?(Hash)
91
- self.loan = value
92
- end
82
+ self.loan = attributes[:'loan']
93
83
  end
94
84
 
95
85
  if attributes.key?(:'investment')
96
- if (value = attributes[:'investment']).is_a?(Hash)
97
- self.investment = value
98
- end
86
+ self.investment = attributes[:'investment']
99
87
  end
100
88
  end
101
89
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
5
 
6
- The version of the OpenAPI document: 2020-09-14_1.16.6
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.0
9
+ OpenAPI Generator version: 5.1.1
10
10
 
11
11
  =end
12
12
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
5
 
6
- The version of the OpenAPI document: 2020-09-14_1.16.6
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.0
9
+ OpenAPI Generator version: 5.1.1
10
10
 
11
11
  =end
12
12
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
5
 
6
- The version of the OpenAPI document: 2020-09-14_1.16.6
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.0
9
+ OpenAPI Generator version: 5.1.1
10
10
 
11
11
  =end
12
12
 
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Plaid
17
- # Specifies options for initializing Link for use with the Income Verification (beta) product. This field is required if `income_verification` is included in the `products` array.
17
+ # Specifies options for initializing Link for use with the Income (beta) product. This field is required if `income_verification` is included in the `products` array.
18
18
  class LinkTokenCreateRequestIncomeVerification
19
19
  # The `income_verification_id` of the verification instance, as provided by `/income/verification/create`.
20
20
  attr_accessor :income_verification_id
@@ -22,11 +22,29 @@ module Plaid
22
22
  # The `asset_report_id` of an asset report associated with the user, as provided by `/asset_report/create`. Providing an `asset_report_id` is optional and can be used to verify the user through a streamlined flow. If provided, the bank linking flow will be skipped.
23
23
  attr_accessor :asset_report_id
24
24
 
25
+ # The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income verification flow by streamlining the Link interface presented to the end user.
26
+ attr_accessor :precheck_id
27
+
28
+ # An array of access tokens corresponding to the Items that will be cross-referenced with the product data. If the `transactions` product was not initialized for the Items during link, it will be initialized after this Link session.
29
+ attr_accessor :access_tokens
30
+
31
+ # The types of source income data that users will be permitted to share. Options include `bank` and `payroll`. Currently you can only specify one of these options.
32
+ attr_accessor :income_source_types
33
+
34
+ attr_accessor :bank_income
35
+
36
+ attr_accessor :payroll_income
37
+
25
38
  # Attribute mapping from ruby-style variable name to JSON key.
26
39
  def self.attribute_map
27
40
  {
28
41
  :'income_verification_id' => :'income_verification_id',
29
- :'asset_report_id' => :'asset_report_id'
42
+ :'asset_report_id' => :'asset_report_id',
43
+ :'precheck_id' => :'precheck_id',
44
+ :'access_tokens' => :'access_tokens',
45
+ :'income_source_types' => :'income_source_types',
46
+ :'bank_income' => :'bank_income',
47
+ :'payroll_income' => :'payroll_income'
30
48
  }
31
49
  end
32
50
 
@@ -39,14 +57,18 @@ module Plaid
39
57
  def self.openapi_types
40
58
  {
41
59
  :'income_verification_id' => :'String',
42
- :'asset_report_id' => :'String'
60
+ :'asset_report_id' => :'String',
61
+ :'precheck_id' => :'String',
62
+ :'access_tokens' => :'Array<String>',
63
+ :'income_source_types' => :'Array<IncomeVerificationSourceType>',
64
+ :'bank_income' => :'LinkTokenCreateRequestIncomeVerificationBankIncome',
65
+ :'payroll_income' => :'LinkTokenCreateRequestIncomeVerificationPayrollIncome'
43
66
  }
44
67
  end
45
68
 
46
69
  # List of attributes with nullable: true
47
70
  def self.openapi_nullable
48
71
  Set.new([
49
- :'asset_report_id'
50
72
  ])
51
73
  end
52
74
 
@@ -72,23 +94,42 @@ module Plaid
72
94
  if attributes.key?(:'asset_report_id')
73
95
  self.asset_report_id = attributes[:'asset_report_id']
74
96
  end
97
+
98
+ if attributes.key?(:'precheck_id')
99
+ self.precheck_id = attributes[:'precheck_id']
100
+ end
101
+
102
+ if attributes.key?(:'access_tokens')
103
+ if (value = attributes[:'access_tokens']).is_a?(Array)
104
+ self.access_tokens = value
105
+ end
106
+ end
107
+
108
+ if attributes.key?(:'income_source_types')
109
+ if (value = attributes[:'income_source_types']).is_a?(Array)
110
+ self.income_source_types = value
111
+ end
112
+ end
113
+
114
+ if attributes.key?(:'bank_income')
115
+ self.bank_income = attributes[:'bank_income']
116
+ end
117
+
118
+ if attributes.key?(:'payroll_income')
119
+ self.payroll_income = attributes[:'payroll_income']
120
+ end
75
121
  end
76
122
 
77
123
  # Show invalid properties with the reasons. Usually used together with valid?
78
124
  # @return Array for valid properties with the reasons
79
125
  def list_invalid_properties
80
126
  invalid_properties = Array.new
81
- if @income_verification_id.nil?
82
- invalid_properties.push('invalid value for "income_verification_id", income_verification_id cannot be nil.')
83
- end
84
-
85
127
  invalid_properties
86
128
  end
87
129
 
88
130
  # Check to see if the all the properties in the model are valid
89
131
  # @return true if the model is valid
90
132
  def valid?
91
- return false if @income_verification_id.nil?
92
133
  true
93
134
  end
94
135
 
@@ -98,7 +139,12 @@ module Plaid
98
139
  return true if self.equal?(o)
99
140
  self.class == o.class &&
100
141
  income_verification_id == o.income_verification_id &&
101
- asset_report_id == o.asset_report_id
142
+ asset_report_id == o.asset_report_id &&
143
+ precheck_id == o.precheck_id &&
144
+ access_tokens == o.access_tokens &&
145
+ income_source_types == o.income_source_types &&
146
+ bank_income == o.bank_income &&
147
+ payroll_income == o.payroll_income
102
148
  end
103
149
 
104
150
  # @see the `==` method
@@ -110,7 +156,7 @@ module Plaid
110
156
  # Calculates hash code according to all attributes.
111
157
  # @return [Integer] Hash code
112
158
  def hash
113
- [income_verification_id, asset_report_id].hash
159
+ [income_verification_id, asset_report_id, precheck_id, access_tokens, income_source_types, bank_income, payroll_income].hash
114
160
  end
115
161
 
116
162
  # Builds the object from hash
@@ -0,0 +1,220 @@
1
+ =begin
2
+ #The Plaid API
3
+
4
+ #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
+
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Plaid
17
+ # Specifies options for initializing Link for use with Bank Income. This field is required if `income_verification` is included in the `products` array and `bank` is specified in `income_source_types`.
18
+ class LinkTokenCreateRequestIncomeVerificationBankIncome
19
+ # The number of days of data to request for the Bank Income product
20
+ attr_accessor :days_requested
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'days_requested' => :'days_requested'
26
+ }
27
+ end
28
+
29
+ # Returns all the JSON keys this model knows about
30
+ def self.acceptable_attributes
31
+ attribute_map.values
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.openapi_types
36
+ {
37
+ :'days_requested' => :'Integer'
38
+ }
39
+ end
40
+
41
+ # List of attributes with nullable: true
42
+ def self.openapi_nullable
43
+ Set.new([
44
+ ])
45
+ end
46
+
47
+ # Initializes the object
48
+ # @param [Hash] attributes Model attributes in the form of hash
49
+ def initialize(attributes = {})
50
+ if (!attributes.is_a?(Hash))
51
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Plaid::LinkTokenCreateRequestIncomeVerificationBankIncome` initialize method"
52
+ end
53
+
54
+ # check to see if the attribute exists and convert string to symbol for hash key
55
+ attributes = attributes.each_with_object({}) { |(k, v), h|
56
+ if (!self.class.attribute_map.key?(k.to_sym))
57
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Plaid::LinkTokenCreateRequestIncomeVerificationBankIncome`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
58
+ end
59
+ h[k.to_sym] = v
60
+ }
61
+
62
+ if attributes.key?(:'days_requested')
63
+ self.days_requested = attributes[:'days_requested']
64
+ end
65
+ end
66
+
67
+ # Show invalid properties with the reasons. Usually used together with valid?
68
+ # @return Array for valid properties with the reasons
69
+ def list_invalid_properties
70
+ invalid_properties = Array.new
71
+ invalid_properties
72
+ end
73
+
74
+ # Check to see if the all the properties in the model are valid
75
+ # @return true if the model is valid
76
+ def valid?
77
+ true
78
+ end
79
+
80
+ # Checks equality by comparing each attribute.
81
+ # @param [Object] Object to be compared
82
+ def ==(o)
83
+ return true if self.equal?(o)
84
+ self.class == o.class &&
85
+ days_requested == o.days_requested
86
+ end
87
+
88
+ # @see the `==` method
89
+ # @param [Object] Object to be compared
90
+ def eql?(o)
91
+ self == o
92
+ end
93
+
94
+ # Calculates hash code according to all attributes.
95
+ # @return [Integer] Hash code
96
+ def hash
97
+ [days_requested].hash
98
+ end
99
+
100
+ # Builds the object from hash
101
+ # @param [Hash] attributes Model attributes in the form of hash
102
+ # @return [Object] Returns the model itself
103
+ def self.build_from_hash(attributes)
104
+ new.build_from_hash(attributes)
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def build_from_hash(attributes)
111
+ return nil unless attributes.is_a?(Hash)
112
+ self.class.openapi_types.each_pair do |key, type|
113
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
114
+ self.send("#{key}=", nil)
115
+ elsif type =~ /\AArray<(.*)>/i
116
+ # check to ensure the input is an array given that the attribute
117
+ # is documented as an array but the input is not
118
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
119
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
120
+ end
121
+ elsif !attributes[self.class.attribute_map[key]].nil?
122
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
123
+ end
124
+ end
125
+
126
+ self
127
+ end
128
+
129
+ # Deserializes the data based on type
130
+ # @param string type Data type
131
+ # @param string value Value to be deserialized
132
+ # @return [Object] Deserialized data
133
+ def _deserialize(type, value)
134
+ case type.to_sym
135
+ when :Time
136
+ Time.parse(value)
137
+ when :Date
138
+ Date.parse(value)
139
+ when :String
140
+ value.to_s
141
+ when :Integer
142
+ value.to_i
143
+ when :Float
144
+ value.to_f
145
+ when :Boolean
146
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
147
+ true
148
+ else
149
+ false
150
+ end
151
+ when :Object
152
+ # generic object (usually a Hash), return directly
153
+ value
154
+ when /\AArray<(?<inner_type>.+)>\z/
155
+ inner_type = Regexp.last_match[:inner_type]
156
+ value.map { |v| _deserialize(inner_type, v) }
157
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
158
+ k_type = Regexp.last_match[:k_type]
159
+ v_type = Regexp.last_match[:v_type]
160
+ {}.tap do |hash|
161
+ value.each do |k, v|
162
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
163
+ end
164
+ end
165
+ else # model
166
+ # models (e.g. Pet) or oneOf
167
+ klass = Plaid.const_get(type)
168
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
169
+ end
170
+ end
171
+
172
+ # Returns the string representation of the object
173
+ # @return [String] String presentation of the object
174
+ def to_s
175
+ to_hash.to_s
176
+ end
177
+
178
+ # to_body is an alias to to_hash (backward compatibility)
179
+ # @return [Hash] Returns the object in the form of hash
180
+ def to_body
181
+ to_hash
182
+ end
183
+
184
+ # Returns the object in the form of hash
185
+ # @return [Hash] Returns the object in the form of hash
186
+ def to_hash
187
+ hash = {}
188
+ self.class.attribute_map.each_pair do |attr, param|
189
+ value = self.send(attr)
190
+ if value.nil?
191
+ is_nullable = self.class.openapi_nullable.include?(attr)
192
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
193
+ end
194
+
195
+ hash[param] = _to_hash(value)
196
+ end
197
+ hash
198
+ end
199
+
200
+ # Outputs non-array value in the form of hash
201
+ # For object, use to_hash. Otherwise, just return the value
202
+ # @param [Object] value Any valid value
203
+ # @return [Hash] Returns the value in the form of hash
204
+ def _to_hash(value)
205
+ if value.is_a?(Array)
206
+ value.compact.map { |v| _to_hash(v) }
207
+ elsif value.is_a?(Hash)
208
+ {}.tap do |hash|
209
+ value.each { |k, v| hash[k] = _to_hash(v) }
210
+ end
211
+ elsif value.respond_to? :to_hash
212
+ value.to_hash
213
+ else
214
+ value
215
+ end
216
+ end
217
+
218
+ end
219
+
220
+ end
@@ -0,0 +1,223 @@
1
+ =begin
2
+ #The Plaid API
3
+
4
+ #The Plaid REST API. Please see https://plaid.com/docs/api for more details.
5
+
6
+ The version of the OpenAPI document: 2020-09-14_1.97.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Plaid
17
+ # Specifies options for initializing Link for use with Payroll Income. This field is required if `income_verification` is included in the `products` array and `payroll` is specified in `income_source_types`.
18
+ class LinkTokenCreateRequestIncomeVerificationPayrollIncome
19
+ # The types of payroll income verification to enable for the link session. If none are specified, then users will see both document and digital payroll income.
20
+ attr_accessor :flow_types
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'flow_types' => :'flow_types'
26
+ }
27
+ end
28
+
29
+ # Returns all the JSON keys this model knows about
30
+ def self.acceptable_attributes
31
+ attribute_map.values
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.openapi_types
36
+ {
37
+ :'flow_types' => :'Array<IncomeVerificationPayrollFlowType>'
38
+ }
39
+ end
40
+
41
+ # List of attributes with nullable: true
42
+ def self.openapi_nullable
43
+ Set.new([
44
+ :'flow_types'
45
+ ])
46
+ end
47
+
48
+ # Initializes the object
49
+ # @param [Hash] attributes Model attributes in the form of hash
50
+ def initialize(attributes = {})
51
+ if (!attributes.is_a?(Hash))
52
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Plaid::LinkTokenCreateRequestIncomeVerificationPayrollIncome` initialize method"
53
+ end
54
+
55
+ # check to see if the attribute exists and convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h|
57
+ if (!self.class.attribute_map.key?(k.to_sym))
58
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Plaid::LinkTokenCreateRequestIncomeVerificationPayrollIncome`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
59
+ end
60
+ h[k.to_sym] = v
61
+ }
62
+
63
+ if attributes.key?(:'flow_types')
64
+ if (value = attributes[:'flow_types']).is_a?(Array)
65
+ self.flow_types = value
66
+ end
67
+ end
68
+ end
69
+
70
+ # Show invalid properties with the reasons. Usually used together with valid?
71
+ # @return Array for valid properties with the reasons
72
+ def list_invalid_properties
73
+ invalid_properties = Array.new
74
+ invalid_properties
75
+ end
76
+
77
+ # Check to see if the all the properties in the model are valid
78
+ # @return true if the model is valid
79
+ def valid?
80
+ true
81
+ end
82
+
83
+ # Checks equality by comparing each attribute.
84
+ # @param [Object] Object to be compared
85
+ def ==(o)
86
+ return true if self.equal?(o)
87
+ self.class == o.class &&
88
+ flow_types == o.flow_types
89
+ end
90
+
91
+ # @see the `==` method
92
+ # @param [Object] Object to be compared
93
+ def eql?(o)
94
+ self == o
95
+ end
96
+
97
+ # Calculates hash code according to all attributes.
98
+ # @return [Integer] Hash code
99
+ def hash
100
+ [flow_types].hash
101
+ end
102
+
103
+ # Builds the object from hash
104
+ # @param [Hash] attributes Model attributes in the form of hash
105
+ # @return [Object] Returns the model itself
106
+ def self.build_from_hash(attributes)
107
+ new.build_from_hash(attributes)
108
+ end
109
+
110
+ # Builds the object from hash
111
+ # @param [Hash] attributes Model attributes in the form of hash
112
+ # @return [Object] Returns the model itself
113
+ def build_from_hash(attributes)
114
+ return nil unless attributes.is_a?(Hash)
115
+ self.class.openapi_types.each_pair do |key, type|
116
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
117
+ self.send("#{key}=", nil)
118
+ elsif type =~ /\AArray<(.*)>/i
119
+ # check to ensure the input is an array given that the attribute
120
+ # is documented as an array but the input is not
121
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
122
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
123
+ end
124
+ elsif !attributes[self.class.attribute_map[key]].nil?
125
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
126
+ end
127
+ end
128
+
129
+ self
130
+ end
131
+
132
+ # Deserializes the data based on type
133
+ # @param string type Data type
134
+ # @param string value Value to be deserialized
135
+ # @return [Object] Deserialized data
136
+ def _deserialize(type, value)
137
+ case type.to_sym
138
+ when :Time
139
+ Time.parse(value)
140
+ when :Date
141
+ Date.parse(value)
142
+ when :String
143
+ value.to_s
144
+ when :Integer
145
+ value.to_i
146
+ when :Float
147
+ value.to_f
148
+ when :Boolean
149
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
150
+ true
151
+ else
152
+ false
153
+ end
154
+ when :Object
155
+ # generic object (usually a Hash), return directly
156
+ value
157
+ when /\AArray<(?<inner_type>.+)>\z/
158
+ inner_type = Regexp.last_match[:inner_type]
159
+ value.map { |v| _deserialize(inner_type, v) }
160
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
161
+ k_type = Regexp.last_match[:k_type]
162
+ v_type = Regexp.last_match[:v_type]
163
+ {}.tap do |hash|
164
+ value.each do |k, v|
165
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
166
+ end
167
+ end
168
+ else # model
169
+ # models (e.g. Pet) or oneOf
170
+ klass = Plaid.const_get(type)
171
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
172
+ end
173
+ end
174
+
175
+ # Returns the string representation of the object
176
+ # @return [String] String presentation of the object
177
+ def to_s
178
+ to_hash.to_s
179
+ end
180
+
181
+ # to_body is an alias to to_hash (backward compatibility)
182
+ # @return [Hash] Returns the object in the form of hash
183
+ def to_body
184
+ to_hash
185
+ end
186
+
187
+ # Returns the object in the form of hash
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_hash
190
+ hash = {}
191
+ self.class.attribute_map.each_pair do |attr, param|
192
+ value = self.send(attr)
193
+ if value.nil?
194
+ is_nullable = self.class.openapi_nullable.include?(attr)
195
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
196
+ end
197
+
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ # Outputs non-array value in the form of hash
204
+ # For object, use to_hash. Otherwise, just return the value
205
+ # @param [Object] value Any valid value
206
+ # @return [Hash] Returns the value in the form of hash
207
+ def _to_hash(value)
208
+ if value.is_a?(Array)
209
+ value.compact.map { |v| _to_hash(v) }
210
+ elsif value.is_a?(Hash)
211
+ {}.tap do |hash|
212
+ value.each { |k, v| hash[k] = _to_hash(v) }
213
+ end
214
+ elsif value.respond_to? :to_hash
215
+ value.to_hash
216
+ else
217
+ value
218
+ end
219
+ end
220
+
221
+ end
222
+
223
+ end