plaid 14.0.0.beta.5 → 14.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (387) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/CONTRIBUTING.md +1 -5
  4. data/Gemfile.lock +14 -4
  5. data/Makefile +1 -1
  6. data/README.md +5 -4
  7. data/doc/rdoc/.DS_Store +0 -0
  8. data/lib/plaid.rb +59 -13
  9. data/lib/plaid/.DS_Store +0 -0
  10. data/lib/plaid/api/plaid_api.rb +644 -61
  11. data/lib/plaid/api_client.rb +3 -2
  12. data/lib/plaid/api_error.rb +1 -1
  13. data/lib/plaid/configuration.rb +1 -1
  14. data/lib/plaid/models/account_access.rb +238 -0
  15. data/lib/plaid/models/account_assets.rb +16 -5
  16. data/lib/plaid/models/account_assets_all_of.rb +16 -4
  17. data/lib/plaid/models/account_balance.rb +6 -10
  18. data/lib/plaid/models/account_base.rb +1 -2
  19. data/lib/plaid/models/account_filter.rb +258 -0
  20. data/lib/plaid/models/account_filters_response.rb +1 -1
  21. data/lib/plaid/models/account_identity.rb +1 -2
  22. data/lib/plaid/models/account_identity_all_of.rb +1 -1
  23. data/lib/plaid/models/account_selection_cardinality.rb +38 -0
  24. data/lib/plaid/models/account_subtype.rb +5 -1
  25. data/lib/plaid/models/account_type.rb +1 -1
  26. data/lib/plaid/models/accounts_balance_get_request.rb +1 -1
  27. data/lib/plaid/models/accounts_balance_get_request_options.rb +1 -1
  28. data/lib/plaid/models/accounts_get_request.rb +1 -1
  29. data/lib/plaid/models/accounts_get_request_options.rb +1 -1
  30. data/lib/plaid/models/accounts_get_response.rb +1 -1
  31. data/lib/plaid/models/ach_class.rb +1 -1
  32. data/lib/plaid/models/address.rb +1 -2
  33. data/lib/plaid/models/address_data.rb +2 -6
  34. data/lib/plaid/models/{nullable_address_data.rb → address_data_nullable.rb} +5 -9
  35. data/lib/plaid/models/{nullable_address.rb → address_nullable.rb} +4 -5
  36. data/lib/plaid/models/application.rb +17 -2
  37. data/lib/plaid/models/application_get_request.rb +1 -1
  38. data/lib/plaid/models/application_get_response.rb +1 -1
  39. data/lib/plaid/models/apr.rb +1 -1
  40. data/lib/plaid/models/asset_report.rb +2 -2
  41. data/lib/plaid/models/asset_report_audit_copy_create_request.rb +1 -1
  42. data/lib/plaid/models/asset_report_audit_copy_create_response.rb +1 -1
  43. data/lib/plaid/models/asset_report_audit_copy_get_request.rb +1 -1
  44. data/lib/plaid/models/asset_report_audit_copy_remove_request.rb +1 -1
  45. data/lib/plaid/models/asset_report_audit_copy_remove_response.rb +1 -1
  46. data/lib/plaid/models/asset_report_create_request.rb +1 -1
  47. data/lib/plaid/models/asset_report_create_request_options.rb +1 -1
  48. data/lib/plaid/models/asset_report_create_response.rb +1 -1
  49. data/lib/plaid/models/asset_report_filter_request.rb +1 -1
  50. data/lib/plaid/models/asset_report_filter_response.rb +1 -1
  51. data/lib/plaid/models/asset_report_get_request.rb +1 -1
  52. data/lib/plaid/models/asset_report_get_response.rb +1 -1
  53. data/lib/plaid/models/asset_report_item.rb +2 -2
  54. data/lib/plaid/models/asset_report_pdf_get_request.rb +1 -1
  55. data/lib/plaid/models/asset_report_refresh_request.rb +1 -1
  56. data/lib/plaid/models/asset_report_refresh_request_options.rb +1 -1
  57. data/lib/plaid/models/asset_report_refresh_response.rb +1 -1
  58. data/lib/plaid/models/asset_report_remove_request.rb +1 -1
  59. data/lib/plaid/models/asset_report_remove_response.rb +1 -1
  60. data/lib/plaid/models/asset_report_transaction.rb +108 -187
  61. data/lib/plaid/models/asset_report_transaction_all_of.rb +6 -21
  62. data/lib/plaid/models/asset_report_user.rb +2 -2
  63. data/lib/plaid/models/assets_error_webhook.rb +1 -1
  64. data/lib/plaid/models/assets_product_ready_webhook.rb +1 -1
  65. data/lib/plaid/models/auth_get_numbers.rb +21 -1
  66. data/lib/plaid/models/auth_get_request.rb +1 -1
  67. data/lib/plaid/models/auth_get_request_options.rb +1 -1
  68. data/lib/plaid/models/auth_get_response.rb +1 -1
  69. data/lib/plaid/models/automatically_verified_webhook.rb +1 -1
  70. data/lib/plaid/models/bank_initiated_return_risk.rb +300 -0
  71. data/lib/plaid/models/bank_transfer.rb +2 -2
  72. data/lib/plaid/models/bank_transfer_balance.rb +1 -1
  73. data/lib/plaid/models/bank_transfer_balance_get_request.rb +1 -1
  74. data/lib/plaid/models/bank_transfer_balance_get_response.rb +1 -1
  75. data/lib/plaid/models/bank_transfer_cancel_request.rb +1 -1
  76. data/lib/plaid/models/bank_transfer_cancel_response.rb +1 -1
  77. data/lib/plaid/models/bank_transfer_create_request.rb +1 -1
  78. data/lib/plaid/models/bank_transfer_create_response.rb +1 -1
  79. data/lib/plaid/models/bank_transfer_direction.rb +2 -1
  80. data/lib/plaid/models/bank_transfer_event.rb +2 -2
  81. data/lib/plaid/models/bank_transfer_event_list_request.rb +16 -4
  82. data/lib/plaid/models/bank_transfer_event_list_response.rb +1 -1
  83. data/lib/plaid/models/bank_transfer_event_sync_request.rb +1 -1
  84. data/lib/plaid/models/bank_transfer_event_sync_response.rb +1 -1
  85. data/lib/plaid/models/bank_transfer_event_type.rb +1 -1
  86. data/lib/plaid/models/bank_transfer_failure.rb +2 -2
  87. data/lib/plaid/models/bank_transfer_get_request.rb +1 -1
  88. data/lib/plaid/models/bank_transfer_get_response.rb +1 -1
  89. data/lib/plaid/models/bank_transfer_list_request.rb +1 -1
  90. data/lib/plaid/models/bank_transfer_list_response.rb +1 -1
  91. data/lib/plaid/models/bank_transfer_migrate_account_request.rb +1 -1
  92. data/lib/plaid/models/bank_transfer_migrate_account_response.rb +1 -1
  93. data/lib/plaid/models/bank_transfer_network.rb +1 -1
  94. data/lib/plaid/models/bank_transfer_receiver_details.rb +3 -3
  95. data/lib/plaid/models/bank_transfer_status.rb +1 -1
  96. data/lib/plaid/models/bank_transfer_type.rb +1 -1
  97. data/lib/plaid/models/bank_transfer_user.rb +2 -2
  98. data/lib/plaid/models/bank_transfers_events_update_webhook.rb +1 -1
  99. data/lib/plaid/models/categories_get_response.rb +1 -1
  100. data/lib/plaid/models/category.rb +1 -1
  101. data/lib/plaid/models/cause.rb +1 -1
  102. data/lib/plaid/models/connected_application.rb +357 -0
  103. data/lib/plaid/models/country_code.rb +1 -1
  104. data/lib/plaid/models/credit_card_liability.rb +5 -9
  105. data/lib/plaid/models/credit_filter.rb +2 -2
  106. data/lib/plaid/models/customer_initiated_return_risk.rb +300 -0
  107. data/lib/plaid/models/default_update_webhook.rb +1 -1
  108. data/lib/plaid/models/deposit_switch_address_data.rb +1 -1
  109. data/lib/plaid/models/deposit_switch_alt_create_request.rb +59 -5
  110. data/lib/plaid/models/deposit_switch_alt_create_response.rb +1 -1
  111. data/lib/plaid/models/deposit_switch_create_request.rb +59 -5
  112. data/lib/plaid/models/deposit_switch_create_request_options.rb +251 -0
  113. data/lib/plaid/models/deposit_switch_create_response.rb +1 -1
  114. data/lib/plaid/models/deposit_switch_get_request.rb +1 -1
  115. data/lib/plaid/models/deposit_switch_get_response.rb +74 -7
  116. data/lib/plaid/models/deposit_switch_state_update_webhook.rb +250 -0
  117. data/lib/plaid/models/deposit_switch_target_account.rb +1 -1
  118. data/lib/plaid/models/deposit_switch_target_user.rb +1 -1
  119. data/lib/plaid/models/deposit_switch_token_create_request.rb +1 -1
  120. data/lib/plaid/models/deposit_switch_token_create_response.rb +2 -2
  121. data/lib/plaid/models/depository_filter.rb +2 -2
  122. data/lib/plaid/models/email.rb +1 -1
  123. data/lib/plaid/models/employee.rb +6 -17
  124. data/lib/plaid/models/employee_income_summary_field_string.rb +1 -1
  125. data/lib/plaid/models/employer.rb +7 -3
  126. data/lib/plaid/models/employer_income_summary_field_string.rb +1 -1
  127. data/lib/plaid/models/employers_search_request.rb +1 -1
  128. data/lib/plaid/models/employers_search_response.rb +1 -1
  129. data/lib/plaid/models/error.rb +2 -9
  130. data/lib/plaid/models/external_payment_options.rb +61 -7
  131. data/lib/plaid/models/external_payment_refund_details.rb +7 -2
  132. data/lib/plaid/models/{external_payment_schedule.rb → external_payment_schedule_base.rb} +21 -25
  133. data/lib/plaid/models/external_payment_schedule_get.rb +19 -19
  134. data/lib/plaid/models/external_payment_schedule_request.rb +283 -0
  135. data/lib/plaid/models/health_incident.rb +18 -5
  136. data/lib/plaid/models/historical_balance.rb +3 -3
  137. data/lib/plaid/models/historical_update_webhook.rb +1 -1
  138. data/lib/plaid/models/holding.rb +3 -3
  139. data/lib/plaid/models/holdings_default_update_webhook.rb +1 -1
  140. data/lib/plaid/models/identity_get_request.rb +1 -1
  141. data/lib/plaid/models/identity_get_request_options.rb +1 -1
  142. data/lib/plaid/models/identity_get_response.rb +1 -1
  143. data/lib/plaid/models/incident_update.rb +4 -4
  144. data/lib/plaid/models/income_breakdown.rb +36 -2
  145. data/lib/plaid/models/income_summary.rb +26 -1
  146. data/lib/plaid/models/income_summary_field_number.rb +1 -1
  147. data/lib/plaid/models/income_summary_field_string.rb +1 -1
  148. data/lib/plaid/models/income_verification_create_request.rb +1 -1
  149. data/lib/plaid/models/income_verification_create_response.rb +1 -1
  150. data/lib/plaid/models/income_verification_documents_download_request.rb +1 -1
  151. data/lib/plaid/models/income_verification_documents_download_response.rb +1 -1
  152. data/lib/plaid/models/{income_verification_paystub_get_request.rb → income_verification_paystubs_get_request.rb} +5 -5
  153. data/lib/plaid/models/income_verification_paystubs_get_response.rb +241 -0
  154. data/lib/plaid/models/income_verification_refresh_request.rb +245 -0
  155. data/lib/plaid/models/income_verification_refresh_response.rb +239 -0
  156. data/lib/plaid/models/income_verification_status_webhook.rb +2 -2
  157. data/lib/plaid/models/income_verification_summary_get_request.rb +1 -1
  158. data/lib/plaid/models/income_verification_summary_get_response.rb +12 -2
  159. data/lib/plaid/models/income_verification_webhook_status.rb +1 -1
  160. data/lib/plaid/models/inflow_model.rb +1 -1
  161. data/lib/plaid/models/initial_update_webhook.rb +1 -1
  162. data/lib/plaid/models/institution.rb +2 -2
  163. data/lib/plaid/models/institution_status.rb +30 -3
  164. data/lib/plaid/models/institutions_get_by_id_request.rb +1 -1
  165. data/lib/plaid/models/institutions_get_by_id_request_options.rb +2 -2
  166. data/lib/plaid/models/institutions_get_by_id_response.rb +1 -1
  167. data/lib/plaid/models/institutions_get_request.rb +1 -1
  168. data/lib/plaid/models/institutions_get_request_options.rb +2 -2
  169. data/lib/plaid/models/institutions_get_response.rb +1 -1
  170. data/lib/plaid/models/institutions_search_account_filter.rb +1 -1
  171. data/lib/plaid/models/institutions_search_payment_initiation_options.rb +1 -1
  172. data/lib/plaid/models/institutions_search_request.rb +2 -2
  173. data/lib/plaid/models/institutions_search_request_options.rb +2 -2
  174. data/lib/plaid/models/institutions_search_response.rb +1 -1
  175. data/lib/plaid/models/investment_filter.rb +2 -2
  176. data/lib/plaid/models/investment_holdings_get_request_options.rb +1 -1
  177. data/lib/plaid/models/investment_transaction.rb +5 -5
  178. data/lib/plaid/models/investments_default_update_webhook.rb +1 -1
  179. data/lib/plaid/models/investments_holdings_get_request.rb +1 -1
  180. data/lib/plaid/models/investments_holdings_get_response.rb +1 -1
  181. data/lib/plaid/models/investments_transactions_get_request.rb +1 -1
  182. data/lib/plaid/models/investments_transactions_get_request_options.rb +1 -1
  183. data/lib/plaid/models/investments_transactions_get_response.rb +1 -1
  184. data/lib/plaid/models/item.rb +5 -5
  185. data/lib/plaid/models/item_access_token_invalidate_request.rb +1 -1
  186. data/lib/plaid/models/item_access_token_invalidate_response.rb +1 -1
  187. data/lib/plaid/models/item_application_list_request.rb +241 -0
  188. data/lib/plaid/models/item_application_list_response.rb +237 -0
  189. data/lib/plaid/models/item_application_list_user_auth.rb +232 -0
  190. data/lib/plaid/models/item_application_scopes_update_request.rb +274 -0
  191. data/lib/plaid/models/{income_verification_paystub_get_response.rb → item_application_scopes_update_response.rb} +11 -15
  192. data/lib/plaid/models/item_error_webhook.rb +1 -1
  193. data/lib/plaid/models/item_get_request.rb +1 -1
  194. data/lib/plaid/models/item_get_response.rb +2 -2
  195. data/lib/plaid/models/item_import_request.rb +1 -1
  196. data/lib/plaid/models/item_import_request_options.rb +1 -1
  197. data/lib/plaid/models/item_import_request_user_auth.rb +1 -1
  198. data/lib/plaid/models/item_import_response.rb +1 -1
  199. data/lib/plaid/models/item_product_ready_webhook.rb +1 -1
  200. data/lib/plaid/models/item_public_token_create_request.rb +1 -1
  201. data/lib/plaid/models/item_public_token_create_response.rb +1 -1
  202. data/lib/plaid/models/item_public_token_exchange_request.rb +1 -1
  203. data/lib/plaid/models/item_public_token_exchange_response.rb +1 -1
  204. data/lib/plaid/models/item_remove_request.rb +1 -1
  205. data/lib/plaid/models/item_remove_response.rb +1 -1
  206. data/lib/plaid/models/item_status.rb +7 -16
  207. data/lib/plaid/models/item_status_investments.rb +232 -0
  208. data/lib/plaid/models/{nullable_recipient_bacs.rb → item_status_last_webhook.rb} +22 -26
  209. data/lib/plaid/models/{nullable_item_status.rb → item_status_nullable.rb} +10 -19
  210. data/lib/plaid/models/item_status_transactions.rb +232 -0
  211. data/lib/plaid/models/item_webhook_update_request.rb +1 -1
  212. data/lib/plaid/models/item_webhook_update_response.rb +1 -1
  213. data/lib/plaid/models/jwk_public_key.rb +1 -1
  214. data/lib/plaid/models/jwt_header.rb +1 -1
  215. data/lib/plaid/models/liabilities_default_update_webhook.rb +27 -2
  216. data/lib/plaid/models/liabilities_get_request.rb +1 -1
  217. data/lib/plaid/models/liabilities_get_request_options.rb +1 -1
  218. data/lib/plaid/models/liabilities_get_response.rb +1 -1
  219. data/lib/plaid/models/liabilities_object.rb +4 -4
  220. data/lib/plaid/models/liability_override.rb +3 -3
  221. data/lib/plaid/models/link_token_account_filters.rb +2 -2
  222. data/lib/plaid/models/link_token_create_request.rb +12 -3
  223. data/lib/plaid/models/link_token_create_request_account_subtypes.rb +2 -2
  224. data/lib/plaid/models/link_token_create_request_auth.rb +1 -1
  225. data/lib/plaid/models/link_token_create_request_deposit_switch.rb +1 -1
  226. data/lib/plaid/models/link_token_create_request_income_verification.rb +2 -3
  227. data/lib/plaid/models/link_token_create_request_payment_initiation.rb +22 -1
  228. data/lib/plaid/models/link_token_create_request_user.rb +8 -8
  229. data/lib/plaid/models/link_token_create_response.rb +1 -1
  230. data/lib/plaid/models/link_token_eu_config.rb +220 -0
  231. data/lib/plaid/models/link_token_get_metadata_response.rb +11 -1
  232. data/lib/plaid/models/link_token_get_request.rb +1 -1
  233. data/lib/plaid/models/link_token_get_response.rb +11 -1
  234. data/lib/plaid/models/loan_filter.rb +2 -2
  235. data/lib/plaid/models/location.rb +1 -1
  236. data/lib/plaid/models/meta.rb +1 -1
  237. data/lib/plaid/models/mfa.rb +1 -1
  238. data/lib/plaid/models/mortgage_interest_rate.rb +1 -1
  239. data/lib/plaid/models/mortgage_liability.rb +20 -6
  240. data/lib/plaid/models/mortgage_property_address.rb +1 -1
  241. data/lib/plaid/models/numbers.rb +1 -41
  242. data/lib/plaid/models/numbers_ach.rb +2 -2
  243. data/lib/plaid/models/{nullable_numbers_ach.rb → numbers_ach_nullable.rb} +5 -5
  244. data/lib/plaid/models/numbers_bacs.rb +1 -1
  245. data/lib/plaid/models/{nullable_numbers_bacs.rb → numbers_bacs_nullable.rb} +4 -4
  246. data/lib/plaid/models/numbers_eft.rb +1 -1
  247. data/lib/plaid/models/{nullable_numbers_eft.rb → numbers_eft_nullable.rb} +4 -4
  248. data/lib/plaid/models/numbers_international.rb +1 -1
  249. data/lib/plaid/models/{nullable_numbers_international.rb → numbers_international_nullable.rb} +4 -4
  250. data/lib/plaid/models/override_account_type.rb +40 -0
  251. data/lib/plaid/models/override_accounts.rb +2 -2
  252. data/lib/plaid/models/owner.rb +1 -1
  253. data/lib/plaid/models/owner_override.rb +1 -1
  254. data/lib/plaid/models/pay_frequency.rb +1 -1
  255. data/lib/plaid/models/pay_period_details.rb +4 -4
  256. data/lib/plaid/models/payment_amount.rb +12 -1
  257. data/lib/plaid/models/payment_initiation_address.rb +118 -4
  258. data/lib/plaid/models/payment_initiation_metadata.rb +16 -1
  259. data/lib/plaid/models/payment_initiation_optional_restriction_bacs.rb +53 -1
  260. data/lib/plaid/models/payment_initiation_payment.rb +20 -2
  261. data/lib/plaid/models/payment_initiation_payment_create_request.rb +53 -3
  262. data/lib/plaid/models/payment_initiation_payment_create_response.rb +35 -1
  263. data/lib/plaid/models/payment_initiation_payment_get_request.rb +22 -1
  264. data/lib/plaid/models/payment_initiation_payment_get_response.rb +20 -2
  265. data/lib/plaid/models/payment_initiation_payment_list_request.rb +1 -18
  266. data/lib/plaid/models/payment_initiation_payment_list_response.rb +1 -1
  267. data/lib/plaid/models/payment_initiation_payment_token_create_request.rb +22 -1
  268. data/lib/plaid/models/payment_initiation_payment_token_create_response.rb +1 -1
  269. data/lib/plaid/models/payment_initiation_recipient.rb +2 -2
  270. data/lib/plaid/models/payment_initiation_recipient_create_request.rb +49 -2
  271. data/lib/plaid/models/payment_initiation_recipient_create_response.rb +1 -1
  272. data/lib/plaid/models/payment_initiation_recipient_get_request.rb +22 -1
  273. data/lib/plaid/models/payment_initiation_recipient_get_response.rb +2 -2
  274. data/lib/plaid/models/payment_initiation_recipient_get_response_all_of.rb +1 -1
  275. data/lib/plaid/models/payment_initiation_recipient_list_request.rb +1 -1
  276. data/lib/plaid/models/payment_initiation_recipient_list_response.rb +1 -1
  277. data/lib/plaid/models/payment_initiation_standing_order_metadata.rb +16 -1
  278. data/lib/plaid/models/payment_meta.rb +1 -1
  279. data/lib/plaid/models/payment_schedule_interval.rb +1 -1
  280. data/lib/plaid/models/payment_status_update_webhook.rb +2 -2
  281. data/lib/plaid/models/paystub.rb +3 -18
  282. data/lib/plaid/models/paystub_deduction.rb +1 -1
  283. data/lib/plaid/models/{nullable_access_token.rb → paystub_employer.rb} +17 -6
  284. data/lib/plaid/models/paystub_ytd_details.rb +2 -1
  285. data/lib/plaid/models/pending_expiration_webhook.rb +2 -2
  286. data/lib/plaid/models/phone_number.rb +11 -3
  287. data/lib/plaid/models/processor_apex_processor_token_create_request.rb +1 -1
  288. data/lib/plaid/models/processor_auth_get_request.rb +1 -1
  289. data/lib/plaid/models/processor_auth_get_response.rb +1 -1
  290. data/lib/plaid/models/processor_balance_get_request.rb +1 -1
  291. data/lib/plaid/models/processor_balance_get_response.rb +1 -1
  292. data/lib/plaid/models/processor_bank_transfer_create_request.rb +459 -0
  293. data/lib/plaid/models/processor_bank_transfer_create_response.rb +239 -0
  294. data/lib/plaid/models/processor_identity_get_request.rb +1 -1
  295. data/lib/plaid/models/processor_identity_get_response.rb +1 -1
  296. data/lib/plaid/models/processor_number.rb +5 -5
  297. data/lib/plaid/models/processor_stripe_bank_account_token_create_request.rb +1 -1
  298. data/lib/plaid/models/processor_stripe_bank_account_token_create_response.rb +1 -1
  299. data/lib/plaid/models/processor_token_create_request.rb +36 -2
  300. data/lib/plaid/models/processor_token_create_response.rb +1 -1
  301. data/lib/plaid/models/product_access.rb +262 -0
  302. data/lib/plaid/models/product_status.rb +3 -3
  303. data/lib/plaid/models/product_status_breakdown.rb +1 -2
  304. data/lib/plaid/models/products.rb +2 -1
  305. data/lib/plaid/models/projected_income_summary_field_number.rb +1 -1
  306. data/lib/plaid/models/pslf_status.rb +2 -2
  307. data/lib/plaid/models/recaptcha_required_error.rb +1 -1
  308. data/lib/plaid/models/recipient_bacs.rb +53 -1
  309. data/lib/plaid/models/recipient_bacs_nullable.rb +288 -0
  310. data/lib/plaid/models/requested_scopes.rb +261 -0
  311. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_request.rb +1 -1
  312. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_response.rb +1 -1
  313. data/lib/plaid/models/sandbox_bank_transfer_simulate_request.rb +1 -1
  314. data/lib/plaid/models/sandbox_bank_transfer_simulate_response.rb +1 -1
  315. data/lib/plaid/models/sandbox_income_fire_webhook_request.rb +309 -0
  316. data/lib/plaid/models/sandbox_income_fire_webhook_response.rb +225 -0
  317. data/lib/plaid/models/sandbox_item_fire_webhook_request.rb +1 -1
  318. data/lib/plaid/models/sandbox_item_fire_webhook_response.rb +1 -1
  319. data/lib/plaid/models/sandbox_item_reset_login_request.rb +1 -1
  320. data/lib/plaid/models/sandbox_item_reset_login_response.rb +1 -1
  321. data/lib/plaid/models/sandbox_item_set_verification_status_request.rb +1 -1
  322. data/lib/plaid/models/sandbox_item_set_verification_status_response.rb +1 -1
  323. data/lib/plaid/models/sandbox_oauth_select_accounts_request.rb +240 -0
  324. data/lib/plaid/models/sandbox_processor_token_create_request.rb +1 -1
  325. data/lib/plaid/models/sandbox_processor_token_create_request_options.rb +1 -1
  326. data/lib/plaid/models/sandbox_processor_token_create_response.rb +1 -1
  327. data/lib/plaid/models/sandbox_public_token_create_request.rb +1 -1
  328. data/lib/plaid/models/sandbox_public_token_create_request_options.rb +1 -1
  329. data/lib/plaid/models/sandbox_public_token_create_request_options_transactions.rb +4 -4
  330. data/lib/plaid/models/sandbox_public_token_create_response.rb +1 -1
  331. data/lib/plaid/models/scopes.rb +243 -0
  332. data/lib/plaid/models/scopes_nullable.rb +249 -0
  333. data/lib/plaid/models/security.rb +3 -3
  334. data/lib/plaid/models/sender_bacs_nullable.rb +288 -0
  335. data/lib/plaid/models/servicer_address_data.rb +1 -1
  336. data/lib/plaid/models/signal_address_data.rb +263 -0
  337. data/lib/plaid/models/signal_decision_report_request.rb +259 -0
  338. data/lib/plaid/models/signal_decision_report_response.rb +224 -0
  339. data/lib/plaid/models/signal_device.rb +232 -0
  340. data/lib/plaid/models/signal_evaluate_core_attributes.rb +584 -0
  341. data/lib/plaid/models/signal_evaluate_request.rb +355 -0
  342. data/lib/plaid/models/signal_evaluate_response.rb +252 -0
  343. data/lib/plaid/models/signal_person_name.rb +265 -0
  344. data/lib/plaid/models/signal_return_report_request.rb +259 -0
  345. data/lib/plaid/models/signal_return_report_response.rb +224 -0
  346. data/lib/plaid/models/signal_scores.rb +227 -0
  347. data/lib/plaid/models/signal_user.rb +252 -0
  348. data/lib/plaid/models/standalone_account_type.rb +1 -1
  349. data/lib/plaid/models/standalone_currency_code_list.rb +1 -1
  350. data/lib/plaid/models/standalone_investment_transaction_subtype.rb +1 -1
  351. data/lib/plaid/models/standalone_investment_transaction_type.rb +1 -1
  352. data/lib/plaid/models/student_loan.rb +27 -7
  353. data/lib/plaid/models/student_loan_repayment_model.rb +1 -1
  354. data/lib/plaid/models/student_loan_status.rb +2 -2
  355. data/lib/plaid/models/student_repayment_plan.rb +3 -3
  356. data/lib/plaid/models/transaction.rb +164 -124
  357. data/lib/plaid/models/transaction_all_of.rb +312 -0
  358. data/lib/plaid/models/transaction_base.rb +436 -0
  359. data/lib/plaid/models/transaction_code.rb +1 -1
  360. data/lib/plaid/models/transaction_data.rb +2 -2
  361. data/lib/plaid/models/transaction_override.rb +3 -3
  362. data/lib/plaid/models/transactions_get_request.rb +1 -1
  363. data/lib/plaid/models/transactions_get_request_options.rb +18 -5
  364. data/lib/plaid/models/transactions_get_response.rb +1 -1
  365. data/lib/plaid/models/transactions_refresh_request.rb +1 -1
  366. data/lib/plaid/models/transactions_refresh_response.rb +1 -1
  367. data/lib/plaid/models/transactions_removed_webhook.rb +1 -1
  368. data/lib/plaid/models/user_custom_password.rb +1 -1
  369. data/lib/plaid/models/user_permission_revoked_webhook.rb +1 -1
  370. data/lib/plaid/models/verification_expired_webhook.rb +1 -1
  371. data/lib/plaid/models/verification_refresh_status.rb +36 -0
  372. data/lib/plaid/models/verification_status.rb +1 -1
  373. data/lib/plaid/models/warning.rb +35 -1
  374. data/lib/plaid/models/webhook_update_acknowledged_webhook.rb +1 -1
  375. data/lib/plaid/models/webhook_verification_key_get_request.rb +1 -1
  376. data/lib/plaid/models/webhook_verification_key_get_response.rb +1 -1
  377. data/lib/plaid/models/ytd_gross_income_summary_field_number.rb +1 -1
  378. data/lib/plaid/models/ytd_net_income_summary_field_number.rb +1 -1
  379. data/lib/plaid/version.rb +2 -2
  380. data/pkg/plaid-14.0.0.beta.5.gem +0 -0
  381. data/plaid.gemspec +1 -1
  382. data/templates/ruby/api_client.mustache +3 -1
  383. data/test/test_bank_transfers.rb +1 -1
  384. data/test/test_item.rb +0 -9
  385. data/test/test_payment_initiation.rb +1 -1
  386. data/test/test_processor.rb +1 -16
  387. metadata +65 -16
@@ -0,0 +1,252 @@
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.20.6
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Plaid
17
+ # Details about the end user initiating the transaction (i.e., the account holder).
18
+ class SignalUser
19
+ attr_accessor :name
20
+
21
+ # The user's phone number, in E.164 format: +{countrycode}{number}. For example: \"+14151234567\"
22
+ attr_accessor :phone_number
23
+
24
+ # The user's email address.
25
+ attr_accessor :email_address
26
+
27
+ attr_accessor :address
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'name' => :'name',
33
+ :'phone_number' => :'phone_number',
34
+ :'email_address' => :'email_address',
35
+ :'address' => :'address'
36
+ }
37
+ end
38
+
39
+ # Returns all the JSON keys this model knows about
40
+ def self.acceptable_attributes
41
+ attribute_map.values
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ def self.openapi_types
46
+ {
47
+ :'name' => :'SignalPersonName',
48
+ :'phone_number' => :'String',
49
+ :'email_address' => :'String',
50
+ :'address' => :'SignalAddressData'
51
+ }
52
+ end
53
+
54
+ # List of attributes with nullable: true
55
+ def self.openapi_nullable
56
+ Set.new([
57
+ :'name',
58
+ :'phone_number',
59
+ :'email_address',
60
+ :'address'
61
+ ])
62
+ end
63
+
64
+ # Initializes the object
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ def initialize(attributes = {})
67
+ if (!attributes.is_a?(Hash))
68
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Plaid::SignalUser` initialize method"
69
+ end
70
+
71
+ # check to see if the attribute exists and convert string to symbol for hash key
72
+ attributes = attributes.each_with_object({}) { |(k, v), h|
73
+ if (!self.class.attribute_map.key?(k.to_sym))
74
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Plaid::SignalUser`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
75
+ end
76
+ h[k.to_sym] = v
77
+ }
78
+
79
+ if attributes.key?(:'name')
80
+ self.name = attributes[:'name']
81
+ end
82
+
83
+ if attributes.key?(:'phone_number')
84
+ self.phone_number = attributes[:'phone_number']
85
+ end
86
+
87
+ if attributes.key?(:'email_address')
88
+ self.email_address = attributes[:'email_address']
89
+ end
90
+
91
+ if attributes.key?(:'address')
92
+ self.address = attributes[:'address']
93
+ end
94
+ end
95
+
96
+ # Show invalid properties with the reasons. Usually used together with valid?
97
+ # @return Array for valid properties with the reasons
98
+ def list_invalid_properties
99
+ invalid_properties = Array.new
100
+ invalid_properties
101
+ end
102
+
103
+ # Check to see if the all the properties in the model are valid
104
+ # @return true if the model is valid
105
+ def valid?
106
+ true
107
+ end
108
+
109
+ # Checks equality by comparing each attribute.
110
+ # @param [Object] Object to be compared
111
+ def ==(o)
112
+ return true if self.equal?(o)
113
+ self.class == o.class &&
114
+ name == o.name &&
115
+ phone_number == o.phone_number &&
116
+ email_address == o.email_address &&
117
+ address == o.address
118
+ end
119
+
120
+ # @see the `==` method
121
+ # @param [Object] Object to be compared
122
+ def eql?(o)
123
+ self == o
124
+ end
125
+
126
+ # Calculates hash code according to all attributes.
127
+ # @return [Integer] Hash code
128
+ def hash
129
+ [name, phone_number, email_address, address].hash
130
+ end
131
+
132
+ # Builds the object from hash
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ # @return [Object] Returns the model itself
135
+ def self.build_from_hash(attributes)
136
+ new.build_from_hash(attributes)
137
+ end
138
+
139
+ # Builds the object from hash
140
+ # @param [Hash] attributes Model attributes in the form of hash
141
+ # @return [Object] Returns the model itself
142
+ def build_from_hash(attributes)
143
+ return nil unless attributes.is_a?(Hash)
144
+ self.class.openapi_types.each_pair do |key, type|
145
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
146
+ self.send("#{key}=", nil)
147
+ elsif type =~ /\AArray<(.*)>/i
148
+ # check to ensure the input is an array given that the attribute
149
+ # is documented as an array but the input is not
150
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
151
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
152
+ end
153
+ elsif !attributes[self.class.attribute_map[key]].nil?
154
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
155
+ end
156
+ end
157
+
158
+ self
159
+ end
160
+
161
+ # Deserializes the data based on type
162
+ # @param string type Data type
163
+ # @param string value Value to be deserialized
164
+ # @return [Object] Deserialized data
165
+ def _deserialize(type, value)
166
+ case type.to_sym
167
+ when :Time
168
+ Time.parse(value)
169
+ when :Date
170
+ Date.parse(value)
171
+ when :String
172
+ value.to_s
173
+ when :Integer
174
+ value.to_i
175
+ when :Float
176
+ value.to_f
177
+ when :Boolean
178
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
179
+ true
180
+ else
181
+ false
182
+ end
183
+ when :Object
184
+ # generic object (usually a Hash), return directly
185
+ value
186
+ when /\AArray<(?<inner_type>.+)>\z/
187
+ inner_type = Regexp.last_match[:inner_type]
188
+ value.map { |v| _deserialize(inner_type, v) }
189
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
190
+ k_type = Regexp.last_match[:k_type]
191
+ v_type = Regexp.last_match[:v_type]
192
+ {}.tap do |hash|
193
+ value.each do |k, v|
194
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
195
+ end
196
+ end
197
+ else # model
198
+ # models (e.g. Pet) or oneOf
199
+ klass = Plaid.const_get(type)
200
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
201
+ end
202
+ end
203
+
204
+ # Returns the string representation of the object
205
+ # @return [String] String presentation of the object
206
+ def to_s
207
+ to_hash.to_s
208
+ end
209
+
210
+ # to_body is an alias to to_hash (backward compatibility)
211
+ # @return [Hash] Returns the object in the form of hash
212
+ def to_body
213
+ to_hash
214
+ end
215
+
216
+ # Returns the object in the form of hash
217
+ # @return [Hash] Returns the object in the form of hash
218
+ def to_hash
219
+ hash = {}
220
+ self.class.attribute_map.each_pair do |attr, param|
221
+ value = self.send(attr)
222
+ if value.nil?
223
+ is_nullable = self.class.openapi_nullable.include?(attr)
224
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
225
+ end
226
+
227
+ hash[param] = _to_hash(value)
228
+ end
229
+ hash
230
+ end
231
+
232
+ # Outputs non-array value in the form of hash
233
+ # For object, use to_hash. Otherwise, just return the value
234
+ # @param [Object] value Any valid value
235
+ # @return [Hash] Returns the value in the form of hash
236
+ def _to_hash(value)
237
+ if value.is_a?(Array)
238
+ value.compact.map { |v| _to_hash(v) }
239
+ elsif value.is_a?(Hash)
240
+ {}.tap do |hash|
241
+ value.each { |k, v| hash[k] = _to_hash(v) }
242
+ end
243
+ elsif value.respond_to? :to_hash
244
+ value.to_hash
245
+ else
246
+ value
247
+ end
248
+ end
249
+
250
+ end
251
+
252
+ end
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -124,19 +124,19 @@ module Plaid
124
124
  {
125
125
  :'account_id' => :'String',
126
126
  :'account_number' => :'String',
127
- :'disbursement_dates' => :'Array<String>',
128
- :'expected_payoff_date' => :'String',
127
+ :'disbursement_dates' => :'Array<Date>',
128
+ :'expected_payoff_date' => :'Date',
129
129
  :'guarantor' => :'String',
130
130
  :'interest_rate_percentage' => :'Float',
131
131
  :'is_overdue' => :'Boolean',
132
132
  :'last_payment_amount' => :'Float',
133
- :'last_payment_date' => :'String',
134
- :'last_statement_issue_date' => :'String',
133
+ :'last_payment_date' => :'Date',
134
+ :'last_statement_issue_date' => :'Date',
135
135
  :'loan_name' => :'String',
136
136
  :'loan_status' => :'StudentLoanStatus',
137
137
  :'minimum_payment_amount' => :'Float',
138
- :'next_payment_due_date' => :'String',
139
- :'origination_date' => :'String',
138
+ :'next_payment_due_date' => :'Date',
139
+ :'origination_date' => :'Date',
140
140
  :'origination_principal_amount' => :'Float',
141
141
  :'outstanding_interest_amount' => :'Float',
142
142
  :'payment_reference_number' => :'String',
@@ -296,6 +296,22 @@ module Plaid
296
296
  invalid_properties.push('invalid value for "interest_rate_percentage", interest_rate_percentage cannot be nil.')
297
297
  end
298
298
 
299
+ if @loan_status.nil?
300
+ invalid_properties.push('invalid value for "loan_status", loan_status cannot be nil.')
301
+ end
302
+
303
+ if @pslf_status.nil?
304
+ invalid_properties.push('invalid value for "pslf_status", pslf_status cannot be nil.')
305
+ end
306
+
307
+ if @repayment_plan.nil?
308
+ invalid_properties.push('invalid value for "repayment_plan", repayment_plan cannot be nil.')
309
+ end
310
+
311
+ if @servicer_address.nil?
312
+ invalid_properties.push('invalid value for "servicer_address", servicer_address cannot be nil.')
313
+ end
314
+
299
315
  invalid_properties
300
316
  end
301
317
 
@@ -303,6 +319,10 @@ module Plaid
303
319
  # @return true if the model is valid
304
320
  def valid?
305
321
  return false if @interest_rate_percentage.nil?
322
+ return false if @loan_status.nil?
323
+ return false if @pslf_status.nil?
324
+ return false if @repayment_plan.nil?
325
+ return false if @servicer_address.nil?
306
326
  true
307
327
  end
308
328
 
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -60,7 +60,7 @@ module Plaid
60
60
  # Attribute type mapping.
61
61
  def self.openapi_types
62
62
  {
63
- :'end_date' => :'String',
63
+ :'end_date' => :'Date',
64
64
  :'type' => :'String'
65
65
  }
66
66
  end
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -107,7 +107,7 @@ module Plaid
107
107
  # Check to see if the all the properties in the model are valid
108
108
  # @return true if the model is valid
109
109
  def valid?
110
- type_validator = EnumAttributeValidator.new('String', ["extended graduated", "extended standard", "graduated", "income-contingent repayment", "income-based repayment", "interest-only", "other", "pay as you earn", "revised pay as you earn", "standard"])
110
+ type_validator = EnumAttributeValidator.new('String', ["extended graduated", "extended standard", "graduated", "income-contingent repayment", "income-based repayment", "interest-only", "other", "pay as you earn", "revised pay as you earn", "standard", "null"])
111
111
  return false unless type_validator.valid?(@type)
112
112
  true
113
113
  end
@@ -115,7 +115,7 @@ module Plaid
115
115
  # Custom attribute writer method checking allowed values (enum).
116
116
  # @param [Object] type Object to be assigned
117
117
  def type=(type)
118
- validator = EnumAttributeValidator.new('String', ["extended graduated", "extended standard", "graduated", "income-contingent repayment", "income-based repayment", "interest-only", "other", "pay as you earn", "revised pay as you earn", "standard"])
118
+ validator = EnumAttributeValidator.new('String', ["extended graduated", "extended standard", "graduated", "income-contingent repayment", "income-based repayment", "interest-only", "other", "pay as you earn", "revised pay as you earn", "standard", "null"])
119
119
  unless validator.valid?(type)
120
120
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
121
121
  end
@@ -3,7 +3,7 @@
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.20.6
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.1.0
@@ -19,60 +19,63 @@ module Plaid
19
19
  # Please use the `payment_channel` field, `transaction_type` will be deprecated in the future. `digital:` transactions that took place online. `place:` transactions that were made at a physical location. `special:` transactions that relate to banks, e.g. fees or deposits. `unresolved:` transactions that do not fit into the other three types.
20
20
  attr_accessor :transaction_type
21
21
 
22
- # The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
23
- attr_accessor :transaction_id
24
-
25
- # The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
26
- attr_accessor :account_owner
27
-
28
22
  # The ID of a posted transaction's associated pending transaction, where applicable.
29
23
  attr_accessor :pending_transaction_id
30
24
 
31
- # When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
32
- attr_accessor :pending
25
+ # The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview). If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
26
+ attr_accessor :category_id
33
27
 
34
- # The channel used to make a payment. `online:` transactions that took place online. `in store:` transactions that were made at a physical location. `other:` transactions that relate to banks, e.g. fees or deposits. This field replaces the `transaction_type` field.
35
- attr_accessor :payment_channel
28
+ # A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview). If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
29
+ attr_accessor :category
30
+
31
+ attr_accessor :location
36
32
 
37
33
  attr_accessor :payment_meta
38
34
 
35
+ # The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
36
+ attr_accessor :account_owner
37
+
39
38
  # The merchant name or transaction description. If the `transactions` object was returned by a Transactions endpoint such as `/transactions/get`, this field will always appear. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
40
39
  attr_accessor :name
41
40
 
42
- # The merchant name, as extracted by Plaid from the `name` field.
43
- attr_accessor :merchant_name
41
+ # The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/get`, this field is in beta and will be omitted unless the client is both enrolled in the closed beta program and has set `options.include_original_description` to `true`.
42
+ attr_accessor :original_description
44
43
 
45
- attr_accessor :location
44
+ # The ID of the account in which this transaction occurred.
45
+ attr_accessor :account_id
46
46
 
47
- # The date that the transaction was authorized. Dates are returned in an ISO 8601 format ( `YYYY-MM-DD` ).
48
- attr_accessor :authorized_date
47
+ # The settled value of the transaction, denominated in the account's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
48
+ attr_accessor :amount
49
49
 
50
- # Date and time when a transaction was authorized in ISO 8601 format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is only populated for UK institutions. For institutions in other countries, will be `null`.
51
- attr_accessor :authorized_datetime
50
+ # The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
51
+ attr_accessor :iso_currency_code
52
+
53
+ # The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
54
+ attr_accessor :unofficial_currency_code
52
55
 
53
56
  # For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format ( `YYYY-MM-DD` ).
54
57
  attr_accessor :date
55
58
 
56
- # Date and time when a transaction was posted in ISO 8601 format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is only populated for UK institutions. For institutions in other countries, will be `null`.
57
- attr_accessor :datetime
59
+ # When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
60
+ attr_accessor :pending
58
61
 
59
- # The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview). If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
60
- attr_accessor :category_id
62
+ # The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
63
+ attr_accessor :transaction_id
61
64
 
62
- # A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview). If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
63
- attr_accessor :category
65
+ # The channel used to make a payment. `online:` transactions that took place online. `in store:` transactions that were made at a physical location. `other:` transactions that relate to banks, e.g. fees or deposits. This field replaces the `transaction_type` field.
66
+ attr_accessor :payment_channel
64
67
 
65
- # The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. See the [currency code schema](/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
66
- attr_accessor :unofficial_currency_code
68
+ # The merchant name, as extracted by Plaid from the `name` field.
69
+ attr_accessor :merchant_name
67
70
 
68
- # The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
69
- attr_accessor :iso_currency_code
71
+ # The date that the transaction was authorized. Dates are returned in an ISO 8601 format ( `YYYY-MM-DD` ).
72
+ attr_accessor :authorized_date
70
73
 
71
- # The settled value of the transaction, denominated in the account's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.
72
- attr_accessor :amount
74
+ # Date and time when a transaction was authorized in ISO 8601 format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is only populated for UK institutions. For institutions in other countries, will be `null`.
75
+ attr_accessor :authorized_datetime
73
76
 
74
- # The ID of the account in which this transaction occurred.
75
- attr_accessor :account_id
77
+ # Date and time when a transaction was posted in ISO 8601 format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is only populated for UK institutions. For institutions in other countries, will be `null`.
78
+ attr_accessor :datetime
76
79
 
77
80
  attr_accessor :transaction_code
78
81
 
@@ -102,25 +105,26 @@ module Plaid
102
105
  def self.attribute_map
103
106
  {
104
107
  :'transaction_type' => :'transaction_type',
105
- :'transaction_id' => :'transaction_id',
106
- :'account_owner' => :'account_owner',
107
108
  :'pending_transaction_id' => :'pending_transaction_id',
108
- :'pending' => :'pending',
109
- :'payment_channel' => :'payment_channel',
109
+ :'category_id' => :'category_id',
110
+ :'category' => :'category',
111
+ :'location' => :'location',
110
112
  :'payment_meta' => :'payment_meta',
113
+ :'account_owner' => :'account_owner',
111
114
  :'name' => :'name',
115
+ :'original_description' => :'original_description',
116
+ :'account_id' => :'account_id',
117
+ :'amount' => :'amount',
118
+ :'iso_currency_code' => :'iso_currency_code',
119
+ :'unofficial_currency_code' => :'unofficial_currency_code',
120
+ :'date' => :'date',
121
+ :'pending' => :'pending',
122
+ :'transaction_id' => :'transaction_id',
123
+ :'payment_channel' => :'payment_channel',
112
124
  :'merchant_name' => :'merchant_name',
113
- :'location' => :'location',
114
125
  :'authorized_date' => :'authorized_date',
115
126
  :'authorized_datetime' => :'authorized_datetime',
116
- :'date' => :'date',
117
127
  :'datetime' => :'datetime',
118
- :'category_id' => :'category_id',
119
- :'category' => :'category',
120
- :'unofficial_currency_code' => :'unofficial_currency_code',
121
- :'iso_currency_code' => :'iso_currency_code',
122
- :'amount' => :'amount',
123
- :'account_id' => :'account_id',
124
128
  :'transaction_code' => :'transaction_code'
125
129
  }
126
130
  end
@@ -134,25 +138,26 @@ module Plaid
134
138
  def self.openapi_types
135
139
  {
136
140
  :'transaction_type' => :'String',
137
- :'transaction_id' => :'String',
138
- :'account_owner' => :'String',
139
141
  :'pending_transaction_id' => :'String',
140
- :'pending' => :'Boolean',
141
- :'payment_channel' => :'String',
142
- :'payment_meta' => :'PaymentMeta',
143
- :'name' => :'String',
144
- :'merchant_name' => :'String',
145
- :'location' => :'Location',
146
- :'authorized_date' => :'String',
147
- :'authorized_datetime' => :'String',
148
- :'date' => :'String',
149
- :'datetime' => :'String',
150
142
  :'category_id' => :'String',
151
143
  :'category' => :'Array<String>',
152
- :'unofficial_currency_code' => :'String',
153
- :'iso_currency_code' => :'String',
154
- :'amount' => :'Float',
144
+ :'location' => :'Location',
145
+ :'payment_meta' => :'PaymentMeta',
146
+ :'account_owner' => :'String',
147
+ :'name' => :'String',
148
+ :'original_description' => :'String',
155
149
  :'account_id' => :'String',
150
+ :'amount' => :'Float',
151
+ :'iso_currency_code' => :'String',
152
+ :'unofficial_currency_code' => :'String',
153
+ :'date' => :'Date',
154
+ :'pending' => :'Boolean',
155
+ :'transaction_id' => :'String',
156
+ :'payment_channel' => :'String',
157
+ :'merchant_name' => :'String',
158
+ :'authorized_date' => :'Date',
159
+ :'authorized_datetime' => :'Time',
160
+ :'datetime' => :'Time',
156
161
  :'transaction_code' => :'TransactionCode'
157
162
  }
158
163
  end
@@ -160,19 +165,29 @@ module Plaid
160
165
  # List of attributes with nullable: true
161
166
  def self.openapi_nullable
162
167
  Set.new([
163
- :'account_owner',
164
168
  :'pending_transaction_id',
169
+ :'category_id',
170
+ :'category',
171
+ :'account_owner',
172
+ :'original_description',
173
+ :'iso_currency_code',
174
+ :'unofficial_currency_code',
165
175
  :'merchant_name',
166
176
  :'authorized_date',
167
177
  :'authorized_datetime',
168
178
  :'datetime',
169
- :'category',
170
- :'unofficial_currency_code',
171
- :'iso_currency_code',
172
179
  :'transaction_code'
173
180
  ])
174
181
  end
175
182
 
183
+ # List of class defined in allOf (OpenAPI v3)
184
+ def self.openapi_all_of
185
+ [
186
+ :'TransactionAllOf',
187
+ :'TransactionBase'
188
+ ]
189
+ end
190
+
176
191
  # Initializes the object
177
192
  # @param [Hash] attributes Model attributes in the form of hash
178
193
  def initialize(attributes = {})
@@ -192,82 +207,86 @@ module Plaid
192
207
  self.transaction_type = attributes[:'transaction_type']
193
208
  end
194
209
 
195
- if attributes.key?(:'transaction_id')
196
- self.transaction_id = attributes[:'transaction_id']
197
- end
198
-
199
- if attributes.key?(:'account_owner')
200
- self.account_owner = attributes[:'account_owner']
201
- end
202
-
203
210
  if attributes.key?(:'pending_transaction_id')
204
211
  self.pending_transaction_id = attributes[:'pending_transaction_id']
205
212
  end
206
213
 
207
- if attributes.key?(:'pending')
208
- self.pending = attributes[:'pending']
214
+ if attributes.key?(:'category_id')
215
+ self.category_id = attributes[:'category_id']
209
216
  end
210
217
 
211
- if attributes.key?(:'payment_channel')
212
- self.payment_channel = attributes[:'payment_channel']
218
+ if attributes.key?(:'category')
219
+ if (value = attributes[:'category']).is_a?(Array)
220
+ self.category = value
221
+ end
222
+ end
223
+
224
+ if attributes.key?(:'location')
225
+ self.location = attributes[:'location']
213
226
  end
214
227
 
215
228
  if attributes.key?(:'payment_meta')
216
229
  self.payment_meta = attributes[:'payment_meta']
217
230
  end
218
231
 
232
+ if attributes.key?(:'account_owner')
233
+ self.account_owner = attributes[:'account_owner']
234
+ end
235
+
219
236
  if attributes.key?(:'name')
220
237
  self.name = attributes[:'name']
221
238
  end
222
239
 
223
- if attributes.key?(:'merchant_name')
224
- self.merchant_name = attributes[:'merchant_name']
240
+ if attributes.key?(:'original_description')
241
+ self.original_description = attributes[:'original_description']
225
242
  end
226
243
 
227
- if attributes.key?(:'location')
228
- self.location = attributes[:'location']
244
+ if attributes.key?(:'account_id')
245
+ self.account_id = attributes[:'account_id']
229
246
  end
230
247
 
231
- if attributes.key?(:'authorized_date')
232
- self.authorized_date = attributes[:'authorized_date']
248
+ if attributes.key?(:'amount')
249
+ self.amount = attributes[:'amount']
233
250
  end
234
251
 
235
- if attributes.key?(:'authorized_datetime')
236
- self.authorized_datetime = attributes[:'authorized_datetime']
252
+ if attributes.key?(:'iso_currency_code')
253
+ self.iso_currency_code = attributes[:'iso_currency_code']
254
+ end
255
+
256
+ if attributes.key?(:'unofficial_currency_code')
257
+ self.unofficial_currency_code = attributes[:'unofficial_currency_code']
237
258
  end
238
259
 
239
260
  if attributes.key?(:'date')
240
261
  self.date = attributes[:'date']
241
262
  end
242
263
 
243
- if attributes.key?(:'datetime')
244
- self.datetime = attributes[:'datetime']
264
+ if attributes.key?(:'pending')
265
+ self.pending = attributes[:'pending']
245
266
  end
246
267
 
247
- if attributes.key?(:'category_id')
248
- self.category_id = attributes[:'category_id']
268
+ if attributes.key?(:'transaction_id')
269
+ self.transaction_id = attributes[:'transaction_id']
249
270
  end
250
271
 
251
- if attributes.key?(:'category')
252
- if (value = attributes[:'category']).is_a?(Array)
253
- self.category = value
254
- end
272
+ if attributes.key?(:'payment_channel')
273
+ self.payment_channel = attributes[:'payment_channel']
255
274
  end
256
275
 
257
- if attributes.key?(:'unofficial_currency_code')
258
- self.unofficial_currency_code = attributes[:'unofficial_currency_code']
276
+ if attributes.key?(:'merchant_name')
277
+ self.merchant_name = attributes[:'merchant_name']
259
278
  end
260
279
 
261
- if attributes.key?(:'iso_currency_code')
262
- self.iso_currency_code = attributes[:'iso_currency_code']
280
+ if attributes.key?(:'authorized_date')
281
+ self.authorized_date = attributes[:'authorized_date']
263
282
  end
264
283
 
265
- if attributes.key?(:'amount')
266
- self.amount = attributes[:'amount']
284
+ if attributes.key?(:'authorized_datetime')
285
+ self.authorized_datetime = attributes[:'authorized_datetime']
267
286
  end
268
287
 
269
- if attributes.key?(:'account_id')
270
- self.account_id = attributes[:'account_id']
288
+ if attributes.key?(:'datetime')
289
+ self.datetime = attributes[:'datetime']
271
290
  end
272
291
 
273
292
  if attributes.key?(:'transaction_code')
@@ -279,24 +298,40 @@ module Plaid
279
298
  # @return Array for valid properties with the reasons
280
299
  def list_invalid_properties
281
300
  invalid_properties = Array.new
282
- if @transaction_id.nil?
283
- invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
301
+ if @location.nil?
302
+ invalid_properties.push('invalid value for "location", location cannot be nil.')
284
303
  end
285
304
 
286
- if @pending.nil?
287
- invalid_properties.push('invalid value for "pending", pending cannot be nil.')
305
+ if @payment_meta.nil?
306
+ invalid_properties.push('invalid value for "payment_meta", payment_meta cannot be nil.')
288
307
  end
289
308
 
290
- if @date.nil?
291
- invalid_properties.push('invalid value for "date", date cannot be nil.')
309
+ if @name.nil?
310
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
311
+ end
312
+
313
+ if @account_id.nil?
314
+ invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
292
315
  end
293
316
 
294
317
  if @amount.nil?
295
318
  invalid_properties.push('invalid value for "amount", amount cannot be nil.')
296
319
  end
297
320
 
298
- if @account_id.nil?
299
- invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
321
+ if @date.nil?
322
+ invalid_properties.push('invalid value for "date", date cannot be nil.')
323
+ end
324
+
325
+ if @pending.nil?
326
+ invalid_properties.push('invalid value for "pending", pending cannot be nil.')
327
+ end
328
+
329
+ if @transaction_id.nil?
330
+ invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
331
+ end
332
+
333
+ if @payment_channel.nil?
334
+ invalid_properties.push('invalid value for "payment_channel", payment_channel cannot be nil.')
300
335
  end
301
336
 
302
337
  invalid_properties
@@ -307,13 +342,17 @@ module Plaid
307
342
  def valid?
308
343
  transaction_type_validator = EnumAttributeValidator.new('String', ["digital", "place", "special", "unresolved"])
309
344
  return false unless transaction_type_validator.valid?(@transaction_type)
310
- return false if @transaction_id.nil?
345
+ return false if @location.nil?
346
+ return false if @payment_meta.nil?
347
+ return false if @name.nil?
348
+ return false if @account_id.nil?
349
+ return false if @amount.nil?
350
+ return false if @date.nil?
311
351
  return false if @pending.nil?
352
+ return false if @transaction_id.nil?
353
+ return false if @payment_channel.nil?
312
354
  payment_channel_validator = EnumAttributeValidator.new('String', ["online", "in store", "other"])
313
355
  return false unless payment_channel_validator.valid?(@payment_channel)
314
- return false if @date.nil?
315
- return false if @amount.nil?
316
- return false if @account_id.nil?
317
356
  true
318
357
  end
319
358
 
@@ -343,25 +382,26 @@ module Plaid
343
382
  return true if self.equal?(o)
344
383
  self.class == o.class &&
345
384
  transaction_type == o.transaction_type &&
346
- transaction_id == o.transaction_id &&
347
- account_owner == o.account_owner &&
348
385
  pending_transaction_id == o.pending_transaction_id &&
349
- pending == o.pending &&
350
- payment_channel == o.payment_channel &&
386
+ category_id == o.category_id &&
387
+ category == o.category &&
388
+ location == o.location &&
351
389
  payment_meta == o.payment_meta &&
390
+ account_owner == o.account_owner &&
352
391
  name == o.name &&
392
+ original_description == o.original_description &&
393
+ account_id == o.account_id &&
394
+ amount == o.amount &&
395
+ iso_currency_code == o.iso_currency_code &&
396
+ unofficial_currency_code == o.unofficial_currency_code &&
397
+ date == o.date &&
398
+ pending == o.pending &&
399
+ transaction_id == o.transaction_id &&
400
+ payment_channel == o.payment_channel &&
353
401
  merchant_name == o.merchant_name &&
354
- location == o.location &&
355
402
  authorized_date == o.authorized_date &&
356
403
  authorized_datetime == o.authorized_datetime &&
357
- date == o.date &&
358
404
  datetime == o.datetime &&
359
- category_id == o.category_id &&
360
- category == o.category &&
361
- unofficial_currency_code == o.unofficial_currency_code &&
362
- iso_currency_code == o.iso_currency_code &&
363
- amount == o.amount &&
364
- account_id == o.account_id &&
365
405
  transaction_code == o.transaction_code
366
406
  end
367
407
 
@@ -374,7 +414,7 @@ module Plaid
374
414
  # Calculates hash code according to all attributes.
375
415
  # @return [Integer] Hash code
376
416
  def hash
377
- [transaction_type, transaction_id, account_owner, pending_transaction_id, pending, payment_channel, payment_meta, name, merchant_name, location, authorized_date, authorized_datetime, date, datetime, category_id, category, unofficial_currency_code, iso_currency_code, amount, account_id, transaction_code].hash
417
+ [transaction_type, pending_transaction_id, category_id, category, location, payment_meta, account_owner, name, original_description, account_id, amount, iso_currency_code, unofficial_currency_code, date, pending, transaction_id, payment_channel, merchant_name, authorized_date, authorized_datetime, datetime, transaction_code].hash
378
418
  end
379
419
 
380
420
  # Builds the object from hash