moneykit 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/moneykit/api/access_token_api.rb +53 -55
  4. data/lib/moneykit/api/account_numbers_api.rb +26 -26
  5. data/lib/moneykit/api/accounts_api.rb +88 -82
  6. data/lib/moneykit/api/identity_api.rb +31 -30
  7. data/lib/moneykit/api/institutions_api.rb +50 -48
  8. data/lib/moneykit/api/link_session_api.rb +47 -50
  9. data/lib/moneykit/api/links_api.rb +137 -81
  10. data/lib/moneykit/api/products_api.rb +33 -35
  11. data/lib/moneykit/api/transactions_api.rb +126 -101
  12. data/lib/moneykit/api/users_api.rb +100 -83
  13. data/lib/moneykit/api/webhooks_api.rb +97 -0
  14. data/lib/moneykit/api_client.rb +100 -103
  15. data/lib/moneykit/api_error.rb +14 -16
  16. data/lib/moneykit/configuration.rb +52 -65
  17. data/lib/moneykit/models/account.rb +69 -112
  18. data/lib/moneykit/models/account_balances.rb +64 -78
  19. data/lib/moneykit/models/account_group.rb +58 -61
  20. data/lib/moneykit/models/account_identity.rb +79 -124
  21. data/lib/moneykit/models/account_numbers.rb +96 -71
  22. data/lib/moneykit/models/account_numbers_link_product.rb +57 -69
  23. data/lib/moneykit/models/account_numbers_product_settings.rb +59 -63
  24. data/lib/moneykit/models/account_type.rb +23 -23
  25. data/lib/moneykit/models/account_with_account_numbers.rb +76 -124
  26. data/lib/moneykit/models/accounts_link_product.rb +53 -61
  27. data/lib/moneykit/models/ach_number.rb +57 -65
  28. data/lib/moneykit/models/address.rb +70 -90
  29. data/lib/moneykit/models/api_error_auth_expired_access_token_response.rb +72 -78
  30. data/lib/moneykit/models/api_error_auth_unauthorized_response.rb +69 -78
  31. data/lib/moneykit/models/api_error_rate_limit_exceeded_response.rb +72 -78
  32. data/lib/moneykit/models/app.rb +46 -50
  33. data/lib/moneykit/models/bacs_number.rb +53 -61
  34. data/lib/moneykit/models/balances.rb +58 -64
  35. data/lib/moneykit/models/basic_account_details.rb +62 -77
  36. data/lib/moneykit/models/country.rb +13 -14
  37. data/lib/moneykit/models/create_link_session_request.rb +109 -119
  38. data/lib/moneykit/models/create_link_session_response.rb +48 -52
  39. data/lib/moneykit/models/currency.rb +193 -193
  40. data/lib/moneykit/models/cursor.rb +40 -39
  41. data/lib/moneykit/models/cursor_pagination.rb +49 -54
  42. data/lib/moneykit/models/cursors.rb +40 -39
  43. data/lib/moneykit/models/customer_app.rb +54 -64
  44. data/lib/moneykit/models/customer_user.rb +59 -69
  45. data/lib/moneykit/models/eft_number.rb +56 -67
  46. data/lib/moneykit/models/email.rb +56 -63
  47. data/lib/moneykit/models/email1.rb +50 -53
  48. data/lib/moneykit/models/exchange_token_request.rb +48 -52
  49. data/lib/moneykit/models/exchange_token_response.rb +54 -64
  50. data/lib/moneykit/models/generate_access_token_response.rb +59 -73
  51. data/lib/moneykit/models/get_account_numbers_response.rb +58 -66
  52. data/lib/moneykit/models/get_account_response.rb +55 -67
  53. data/lib/moneykit/models/get_accounts_response.rb +58 -67
  54. data/lib/moneykit/models/get_institutions_response.rb +58 -67
  55. data/lib/moneykit/models/get_transactions_response.rb +81 -105
  56. data/lib/moneykit/models/get_user_accounts_response.rb +50 -58
  57. data/lib/moneykit/models/get_user_links_response.rb +50 -58
  58. data/lib/moneykit/models/get_user_transactions_response.rb +75 -95
  59. data/lib/moneykit/models/http_validation_error.rb +77 -84
  60. data/lib/moneykit/models/identity.rb +49 -49
  61. data/lib/moneykit/models/identity_link_product.rb +57 -69
  62. data/lib/moneykit/models/identity_product_settings.rb +59 -63
  63. data/lib/moneykit/models/identity_response.rb +58 -67
  64. data/lib/moneykit/models/institution.rb +85 -113
  65. data/lib/moneykit/models/institution_error_not_found_response.rb +72 -80
  66. data/lib/moneykit/models/institution_styling_response.rb +77 -93
  67. data/lib/moneykit/models/international_number.rb +54 -64
  68. data/lib/moneykit/models/introspect_client_response.rb +70 -89
  69. data/lib/moneykit/models/jwk_set.rb +51 -55
  70. data/lib/moneykit/models/link.rb +78 -100
  71. data/lib/moneykit/models/link1.rb +78 -100
  72. data/lib/moneykit/models/link2.rb +78 -100
  73. data/lib/moneykit/models/link3.rb +78 -100
  74. data/lib/moneykit/models/link4.rb +78 -100
  75. data/lib/moneykit/models/link_common.rb +82 -117
  76. data/lib/moneykit/models/link_error.rb +19 -19
  77. data/lib/moneykit/models/link_error_bad_config_response.rb +269 -0
  78. data/lib/moneykit/models/link_error_bad_state_response.rb +71 -88
  79. data/lib/moneykit/models/link_error_deleted_response.rb +72 -80
  80. data/lib/moneykit/models/link_error_forbidden_action_response.rb +69 -78
  81. data/lib/moneykit/models/link_error_not_found_response.rb +72 -80
  82. data/lib/moneykit/models/link_error_unauthorized_access_response.rb +72 -80
  83. data/lib/moneykit/models/link_permission_scope.rb +14 -15
  84. data/lib/moneykit/models/link_permissions.rb +52 -62
  85. data/lib/moneykit/models/link_products.rb +62 -78
  86. data/lib/moneykit/models/link_response.rb +95 -136
  87. data/lib/moneykit/models/link_session_customer_user.rb +65 -83
  88. data/lib/moneykit/models/link_session_customer_user_email.rb +59 -68
  89. data/lib/moneykit/models/link_session_customer_user_phone.rb +67 -82
  90. data/lib/moneykit/models/link_session_error_forbidden_config_response.rb +69 -78
  91. data/lib/moneykit/models/link_session_error_invalid_token_exchange.rb +69 -78
  92. data/lib/moneykit/models/link_session_setting_overrides.rb +64 -99
  93. data/lib/moneykit/models/link_state.rb +15 -16
  94. data/lib/moneykit/models/link_state_changed_webhook.rb +121 -148
  95. data/lib/moneykit/models/location_inner.rb +41 -46
  96. data/lib/moneykit/models/money_kit_env.rb +12 -13
  97. data/lib/moneykit/models/money_link_features.rb +62 -66
  98. data/lib/moneykit/models/moneylink_features.rb +50 -49
  99. data/lib/moneykit/models/numbers.rb +60 -73
  100. data/lib/moneykit/models/owner.rb +76 -89
  101. data/lib/moneykit/models/phone.rb +60 -68
  102. data/lib/moneykit/models/phone_number.rb +63 -74
  103. data/lib/moneykit/models/phone_number_type.rb +14 -15
  104. data/lib/moneykit/models/product.rb +14 -15
  105. data/lib/moneykit/models/products.rb +52 -64
  106. data/lib/moneykit/models/products1.rb +48 -56
  107. data/lib/moneykit/models/products_settings.rb +58 -70
  108. data/lib/moneykit/models/provider.rb +18 -17
  109. data/lib/moneykit/models/public_link_error.rb +43 -0
  110. data/lib/moneykit/models/refresh_products_request.rb +52 -65
  111. data/lib/moneykit/models/requested_link_permission.rb +60 -75
  112. data/lib/moneykit/models/response401_disconnect_links_id_delete.rb +83 -283
  113. data/lib/moneykit/models/response401_exchange_token_link_session_exchange_token_post.rb +82 -281
  114. data/lib/moneykit/models/response401_get_account_links_id_accounts_account_id_get.rb +83 -283
  115. data/lib/moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get.rb +83 -283
  116. data/lib/moneykit/models/response401_get_accounts_links_id_accounts_get.rb +83 -283
  117. data/lib/moneykit/models/response401_get_identities_links_id_identity_get.rb +83 -283
  118. data/lib/moneykit/models/response401_get_institution_institutions_institution_id_get.rb +82 -281
  119. data/lib/moneykit/models/response401_get_institution_styling_institutions_institution_id_styling_get.rb +66 -72
  120. data/lib/moneykit/models/response401_get_institutions_institutions_get.rb +82 -281
  121. data/lib/moneykit/models/response401_get_link_links_id_get.rb +83 -283
  122. data/lib/moneykit/models/response401_get_transactions_diff_links_id_transactions_sync_get.rb +83 -283
  123. data/lib/moneykit/models/response401_get_transactions_links_id_transactions_get.rb +83 -283
  124. data/lib/moneykit/models/response401_get_user_accounts_users_id_accounts_get.rb +82 -281
  125. data/lib/moneykit/models/response401_get_user_links_users_id_links_get.rb +82 -281
  126. data/lib/moneykit/models/response401_get_user_transactions_users_id_transactions_get.rb +82 -281
  127. data/lib/moneykit/models/response401_get_well_known_jwks_well_known_jwks_json_get.rb +82 -281
  128. data/lib/moneykit/models/response401_instrospect_client_auth_introspect_get.rb +82 -281
  129. data/lib/moneykit/models/response401_refresh_products_links_id_products_post.rb +83 -283
  130. data/lib/moneykit/models/response401_reset_login_links_id_reset_post.rb +102 -0
  131. data/lib/moneykit/models/response401_trigger_test_link_webhook_event_webhooks_test_link_id_post.rb +102 -0
  132. data/lib/moneykit/models/response401_update_link_links_id_patch.rb +83 -283
  133. data/lib/moneykit/models/settings.rb +61 -73
  134. data/lib/moneykit/models/supported_version.rb +11 -12
  135. data/lib/moneykit/models/transaction.rb +104 -131
  136. data/lib/moneykit/models/transaction_diff.rb +69 -78
  137. data/lib/moneykit/models/transaction_sync_response.rb +65 -87
  138. data/lib/moneykit/models/transaction_type.rb +12 -13
  139. data/lib/moneykit/models/transaction_type_filter.rb +12 -13
  140. data/lib/moneykit/models/transactions.rb +58 -57
  141. data/lib/moneykit/models/transactions1.rb +55 -63
  142. data/lib/moneykit/models/transactions_link_product.rb +57 -69
  143. data/lib/moneykit/models/transactions_product_settings.rb +67 -71
  144. data/lib/moneykit/models/update_link_request.rb +63 -69
  145. data/lib/moneykit/models/user_accounts_out.rb +40 -40
  146. data/lib/moneykit/models/user_links_out.rb +40 -40
  147. data/lib/moneykit/models/user_transactions_paged_response.rb +40 -40
  148. data/lib/moneykit/models/validation_error.rb +63 -77
  149. data/lib/moneykit/models/validation_error_location_inner.rb +101 -0
  150. data/lib/moneykit/models/webhook_link_test_event.rb +40 -0
  151. data/lib/moneykit/models/webhook_test_link_request.rb +252 -0
  152. data/lib/moneykit/models/webhook_test_link_response.rb +220 -0
  153. data/lib/moneykit/version.rb +10 -12
  154. data/lib/moneykit.rb +18 -39
  155. data/lib/plaid_compatible/money_kit_plaid_compatible/api/plaid_api.rb +738 -737
  156. data/lib/plaid_compatible/money_kit_plaid_compatible/api_client.rb +339 -340
  157. data/lib/plaid_compatible/money_kit_plaid_compatible/api_error.rb +47 -47
  158. data/lib/plaid_compatible/money_kit_plaid_compatible/configuration.rb +258 -260
  159. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_balance.rb +210 -212
  160. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_base.rb +221 -237
  161. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_identity.rb +231 -252
  162. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_subtype.rb +100 -101
  163. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_type.rb +35 -36
  164. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request.rb +209 -211
  165. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request_options.rb +188 -185
  166. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_response.rb +205 -210
  167. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address.rb +195 -193
  168. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address_data.rb +222 -226
  169. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_numbers.rb +218 -226
  170. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request.rb +209 -211
  171. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request_options.rb +188 -185
  172. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_response.rb +211 -222
  173. data/lib/plaid_compatible/money_kit_plaid_compatible/models/country_code.rb +32 -33
  174. data/lib/plaid_compatible/money_kit_plaid_compatible/models/email.rb +197 -198
  175. data/lib/plaid_compatible/money_kit_plaid_compatible/models/http_validation_error.rb +183 -181
  176. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request.rb +209 -211
  177. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request_options.rb +188 -185
  178. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_response.rb +205 -210
  179. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institution.rb +228 -232
  180. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_request.rb +216 -217
  181. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_response.rb +195 -196
  182. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item.rb +251 -261
  183. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_error_webhook.rb +217 -229
  184. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_request.rb +205 -205
  185. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_response.rb +201 -205
  186. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_request.rb +205 -205
  187. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_response.rb +206 -211
  188. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_request.rb +205 -205
  189. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_response.rb +188 -185
  190. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_investments.rb +195 -193
  191. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_last_webhook.rb +195 -193
  192. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_nullable.rb +194 -198
  193. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_transactions.rb +195 -193
  194. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request.rb +272 -291
  195. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request_user.rb +225 -225
  196. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_response.rb +206 -211
  197. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_ach.rb +215 -221
  198. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_bacs.rb +206 -211
  199. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_eft.rb +215 -224
  200. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_international.rb +206 -211
  201. data/lib/plaid_compatible/money_kit_plaid_compatible/models/owner.rb +218 -226
  202. data/lib/plaid_compatible/money_kit_plaid_compatible/models/personal_finance_category.rb +197 -198
  203. data/lib/plaid_compatible/money_kit_plaid_compatible/models/phone_number.rb +206 -211
  204. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error.rb +253 -266
  205. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error_type.rb +43 -44
  206. data/lib/plaid_compatible/money_kit_plaid_compatible/models/products.rb +33 -34
  207. data/lib/plaid_compatible/money_kit_plaid_compatible/models/removed_transaction.rb +187 -183
  208. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transaction.rb +288 -315
  209. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request.rb +225 -235
  210. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request_options.rb +222 -224
  211. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_response.rb +225 -236
  212. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_request.rb +205 -205
  213. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_response.rb +188 -185
  214. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request.rb +223 -229
  215. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request_options.rb +197 -193
  216. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_response.rb +235 -252
  217. data/lib/plaid_compatible/money_kit_plaid_compatible/models/validation_error.rb +198 -207
  218. data/lib/plaid_compatible/money_kit_plaid_compatible/models/webhook_environment_values.rb +32 -33
  219. data/lib/plaid_compatible/money_kit_plaid_compatible/version.rb +14 -14
  220. data/lib/plaid_compatible/money_kit_plaid_compatible.rb +24 -24
  221. data/moneykit.gemspec +22 -25
  222. metadata +14 -5
@@ -1,378 +1,351 @@
1
- =begin
2
- #Plaid Compatibility Layer
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
-
6
- The version of the OpenAPI document: 0.1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.1
10
-
11
- =end
1
+ # #Plaid Compatibility Layer
2
+ #
3
+ # No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ #
5
+ # The version of the OpenAPI document: 0.1.0
6
+ #
7
+ # Generated by: https://openapi-generator.tech
8
+ # OpenAPI Generator version: 5.1.1
9
+ #
12
10
 
13
11
  require 'date'
14
12
  require 'time'
15
13
 
16
- module MoneyKit::PlaidCompatible
17
- # A representation of a transaction
18
- class Transaction
19
- # The ID of the account in which this transaction occurred.
20
- attr_accessor :account_id
14
+ module MoneyKit
15
+ module PlaidCompatible
16
+ # A representation of a transaction
17
+ class Transaction
18
+ # The ID of the account in which this transaction occurred.
19
+ attr_accessor :account_id
20
+
21
+ # The settled value of the transaction, denominated in the transactions'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.
22
+ attr_accessor :amount
23
+
24
+ # The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
25
+ attr_accessor :iso_currency_code
26
+
27
+ # A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). 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.
28
+ attr_accessor :category
29
+
30
+ # The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). 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.
31
+ attr_accessor :category_id
32
+
33
+ # 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](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
34
+ attr_accessor :date
35
+
36
+ # 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.
37
+ attr_accessor :name
38
+
39
+ # The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
40
+ attr_accessor :merchant_name
41
+
42
+ # 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`.
43
+ attr_accessor :original_description
44
+
45
+ # When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
46
+ attr_accessor :pending
47
+
48
+ # The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
49
+ attr_accessor :transaction_id
50
+
51
+ # Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
52
+ attr_accessor :datetime
53
+
54
+ attr_accessor :personal_finance_category
55
+
56
+ # Attribute mapping from ruby-style variable name to JSON key.
57
+ def self.attribute_map
58
+ {
59
+ 'account_id': :account_id,
60
+ 'amount': :amount,
61
+ 'iso_currency_code': :iso_currency_code,
62
+ 'category': :category,
63
+ 'category_id': :category_id,
64
+ 'date': :date,
65
+ 'name': :name,
66
+ 'merchant_name': :merchant_name,
67
+ 'original_description': :original_description,
68
+ 'pending': :pending,
69
+ 'transaction_id': :transaction_id,
70
+ 'datetime': :datetime,
71
+ 'personal_finance_category': :personal_finance_category
72
+ }
73
+ end
21
74
 
22
- # The settled value of the transaction, denominated in the transactions'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.
23
- attr_accessor :amount
75
+ # Returns all the JSON keys this model knows about
76
+ def self.acceptable_attributes
77
+ attribute_map.values
78
+ end
24
79
 
25
- # The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
26
- attr_accessor :iso_currency_code
80
+ # Attribute type mapping.
81
+ def self.openapi_types
82
+ {
83
+ 'account_id': :String,
84
+ 'amount': :Float,
85
+ 'iso_currency_code': :String,
86
+ 'category': :'Array<String>',
87
+ 'category_id': :String,
88
+ 'date': :Date,
89
+ 'name': :String,
90
+ 'merchant_name': :String,
91
+ 'original_description': :String,
92
+ 'pending': :Boolean,
93
+ 'transaction_id': :String,
94
+ 'datetime': :Time,
95
+ 'personal_finance_category': :PersonalFinanceCategory
96
+ }
97
+ end
27
98
 
28
- # A hierarchical array of the categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). 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
99
+ # List of attributes with nullable: true
100
+ def self.openapi_nullable
101
+ Set.new(%i[
102
+ iso_currency_code
103
+ category
104
+ category_id
105
+ merchant_name
106
+ original_description
107
+ datetime
108
+ personal_finance_category
109
+ ])
110
+ end
30
111
 
31
- # The ID of the category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/transactions/#categoriesget). 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.
32
- attr_accessor :category_id
112
+ # Initializes the object
113
+ # @param [Hash] attributes Model attributes in the form of hash
114
+ def initialize(attributes = {})
115
+ unless attributes.is_a?(Hash)
116
+ raise ArgumentError,
117
+ 'The input argument (attributes) must be a hash in `MoneyKit::PlaidCompatible::Transaction` initialize method'
118
+ end
33
119
 
34
- # 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](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ).
35
- attr_accessor :date
120
+ # check to see if the attribute exists and convert string to symbol for hash key
121
+ attributes = attributes.each_with_object({}) do |(k, v), h|
122
+ unless self.class.attribute_map.key?(k.to_sym)
123
+ raise ArgumentError,
124
+ "`#{k}` is not a valid attribute in `MoneyKit::PlaidCompatible::Transaction`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
125
+ end
36
126
 
37
- # 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.
38
- attr_accessor :name
127
+ h[k.to_sym] = v
128
+ end
39
129
 
40
- # The merchant name, as enriched by Plaid from the `name` field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be `null`.
41
- attr_accessor :merchant_name
130
+ self.account_id = attributes[:account_id] if attributes.key?(:account_id)
42
131
 
43
- # 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`.
44
- attr_accessor :original_description
132
+ self.amount = attributes[:amount] if attributes.key?(:amount)
45
133
 
46
- # When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
47
- attr_accessor :pending
134
+ self.iso_currency_code = attributes[:iso_currency_code] if attributes.key?(:iso_currency_code)
48
135
 
49
- # The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive.
50
- attr_accessor :transaction_id
136
+ if attributes.key?(:category) && (value = attributes[:category]).is_a?(Array)
137
+ self.category = value
138
+ end
51
139
 
52
- # Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ). This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00). This field is only populated in API version 2019-05-29 and later.
53
- attr_accessor :datetime
140
+ self.category_id = attributes[:category_id] if attributes.key?(:category_id)
54
141
 
55
- attr_accessor :personal_finance_category
142
+ self.date = attributes[:date] if attributes.key?(:date)
56
143
 
57
- # Attribute mapping from ruby-style variable name to JSON key.
58
- def self.attribute_map
59
- {
60
- :'account_id' => :'account_id',
61
- :'amount' => :'amount',
62
- :'iso_currency_code' => :'iso_currency_code',
63
- :'category' => :'category',
64
- :'category_id' => :'category_id',
65
- :'date' => :'date',
66
- :'name' => :'name',
67
- :'merchant_name' => :'merchant_name',
68
- :'original_description' => :'original_description',
69
- :'pending' => :'pending',
70
- :'transaction_id' => :'transaction_id',
71
- :'datetime' => :'datetime',
72
- :'personal_finance_category' => :'personal_finance_category'
73
- }
74
- end
144
+ self.name = attributes[:name] if attributes.key?(:name)
75
145
 
76
- # Returns all the JSON keys this model knows about
77
- def self.acceptable_attributes
78
- attribute_map.values
79
- end
146
+ self.merchant_name = attributes[:merchant_name] if attributes.key?(:merchant_name)
80
147
 
81
- # Attribute type mapping.
82
- def self.openapi_types
83
- {
84
- :'account_id' => :'String',
85
- :'amount' => :'Float',
86
- :'iso_currency_code' => :'String',
87
- :'category' => :'Array<String>',
88
- :'category_id' => :'String',
89
- :'date' => :'Date',
90
- :'name' => :'String',
91
- :'merchant_name' => :'String',
92
- :'original_description' => :'String',
93
- :'pending' => :'Boolean',
94
- :'transaction_id' => :'String',
95
- :'datetime' => :'Time',
96
- :'personal_finance_category' => :'PersonalFinanceCategory'
97
- }
98
- end
148
+ self.original_description = attributes[:original_description] if attributes.key?(:original_description)
99
149
 
100
- # List of attributes with nullable: true
101
- def self.openapi_nullable
102
- Set.new([
103
- :'iso_currency_code',
104
- :'category',
105
- :'category_id',
106
- :'merchant_name',
107
- :'original_description',
108
- :'datetime',
109
- :'personal_finance_category'
110
- ])
111
- end
150
+ self.pending = attributes[:pending] if attributes.key?(:pending)
112
151
 
113
- # Initializes the object
114
- # @param [Hash] attributes Model attributes in the form of hash
115
- def initialize(attributes = {})
116
- if (!attributes.is_a?(Hash))
117
- fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::PlaidCompatible::Transaction` initialize method"
118
- end
152
+ self.transaction_id = attributes[:transaction_id] if attributes.key?(:transaction_id)
119
153
 
120
- # check to see if the attribute exists and convert string to symbol for hash key
121
- attributes = attributes.each_with_object({}) { |(k, v), h|
122
- if (!self.class.attribute_map.key?(k.to_sym))
123
- fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::PlaidCompatible::Transaction`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
124
- end
125
- h[k.to_sym] = v
126
- }
154
+ self.datetime = attributes[:datetime] if attributes.key?(:datetime)
127
155
 
128
- if attributes.key?(:'account_id')
129
- self.account_id = attributes[:'account_id']
130
- end
156
+ return unless attributes.key?(:personal_finance_category)
131
157
 
132
- if attributes.key?(:'amount')
133
- self.amount = attributes[:'amount']
158
+ self.personal_finance_category = attributes[:personal_finance_category]
134
159
  end
135
160
 
136
- if attributes.key?(:'iso_currency_code')
137
- self.iso_currency_code = attributes[:'iso_currency_code']
138
- end
161
+ # Show invalid properties with the reasons. Usually used together with valid?
162
+ # @return Array for valid properties with the reasons
163
+ def list_invalid_properties
164
+ invalid_properties = []
165
+ invalid_properties.push('invalid value for "account_id", account_id cannot be nil.') if @account_id.nil?
139
166
 
140
- if attributes.key?(:'category')
141
- if (value = attributes[:'category']).is_a?(Array)
142
- self.category = value
143
- end
144
- end
167
+ invalid_properties.push('invalid value for "amount", amount cannot be nil.') if @amount.nil?
145
168
 
146
- if attributes.key?(:'category_id')
147
- self.category_id = attributes[:'category_id']
148
- end
169
+ invalid_properties.push('invalid value for "date", date cannot be nil.') if @date.nil?
149
170
 
150
- if attributes.key?(:'date')
151
- self.date = attributes[:'date']
152
- end
171
+ invalid_properties.push('invalid value for "name", name cannot be nil.') if @name.nil?
153
172
 
154
- if attributes.key?(:'name')
155
- self.name = attributes[:'name']
156
- end
173
+ invalid_properties.push('invalid value for "pending", pending cannot be nil.') if @pending.nil?
157
174
 
158
- if attributes.key?(:'merchant_name')
159
- self.merchant_name = attributes[:'merchant_name']
160
- end
161
-
162
- if attributes.key?(:'original_description')
163
- self.original_description = attributes[:'original_description']
164
- end
165
-
166
- if attributes.key?(:'pending')
167
- self.pending = attributes[:'pending']
168
- end
175
+ if @transaction_id.nil?
176
+ invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
177
+ end
169
178
 
170
- if attributes.key?(:'transaction_id')
171
- self.transaction_id = attributes[:'transaction_id']
179
+ invalid_properties
172
180
  end
173
181
 
174
- if attributes.key?(:'datetime')
175
- self.datetime = attributes[:'datetime']
182
+ # Check to see if the all the properties in the model are valid
183
+ # @return true if the model is valid
184
+ def valid?
185
+ return false if @account_id.nil?
186
+ return false if @amount.nil?
187
+ return false if @date.nil?
188
+ return false if @name.nil?
189
+ return false if @pending.nil?
190
+ return false if @transaction_id.nil?
191
+
192
+ true
176
193
  end
177
194
 
178
- if attributes.key?(:'personal_finance_category')
179
- self.personal_finance_category = attributes[:'personal_finance_category']
195
+ # Checks equality by comparing each attribute.
196
+ # @param [Object] Object to be compared
197
+ def ==(other)
198
+ return true if equal?(other)
199
+
200
+ self.class == other.class &&
201
+ account_id == other.account_id &&
202
+ amount == other.amount &&
203
+ iso_currency_code == other.iso_currency_code &&
204
+ category == other.category &&
205
+ category_id == other.category_id &&
206
+ date == other.date &&
207
+ name == other.name &&
208
+ merchant_name == other.merchant_name &&
209
+ original_description == other.original_description &&
210
+ pending == other.pending &&
211
+ transaction_id == other.transaction_id &&
212
+ datetime == other.datetime &&
213
+ personal_finance_category == other.personal_finance_category
180
214
  end
181
- end
182
215
 
183
- # Show invalid properties with the reasons. Usually used together with valid?
184
- # @return Array for valid properties with the reasons
185
- def list_invalid_properties
186
- invalid_properties = Array.new
187
- if @account_id.nil?
188
- invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
216
+ # @see the `==` method
217
+ # @param [Object] Object to be compared
218
+ def eql?(other)
219
+ self == other
189
220
  end
190
221
 
191
- if @amount.nil?
192
- invalid_properties.push('invalid value for "amount", amount cannot be nil.')
222
+ # Calculates hash code according to all attributes.
223
+ # @return [Integer] Hash code
224
+ def hash
225
+ [account_id, amount, iso_currency_code, category, category_id, date, name, merchant_name, original_description,
226
+ pending, transaction_id, datetime, personal_finance_category].hash
193
227
  end
194
228
 
195
- if @date.nil?
196
- invalid_properties.push('invalid value for "date", date cannot be nil.')
229
+ # Builds the object from hash
230
+ # @param [Hash] attributes Model attributes in the form of hash
231
+ # @return [Object] Returns the model itself
232
+ def self.build_from_hash(attributes)
233
+ new.build_from_hash(attributes)
197
234
  end
198
235
 
199
- if @name.nil?
200
- invalid_properties.push('invalid value for "name", name cannot be nil.')
201
- end
202
-
203
- if @pending.nil?
204
- invalid_properties.push('invalid value for "pending", pending cannot be nil.')
205
- end
236
+ # Builds the object from hash
237
+ # @param [Hash] attributes Model attributes in the form of hash
238
+ # @return [Object] Returns the model itself
239
+ def build_from_hash(attributes)
240
+ return nil unless attributes.is_a?(Hash)
241
+
242
+ self.class.openapi_types.each_pair do |key, type|
243
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
244
+ send("#{key}=", nil)
245
+ elsif type =~ /\AArray<(.*)>/i
246
+ # check to ensure the input is an array given that the attribute
247
+ # is documented as an array but the input is not
248
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
249
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
250
+ _deserialize(::Regexp.last_match(1), v)
251
+ end)
252
+ end
253
+ elsif !attributes[self.class.attribute_map[key]].nil?
254
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
255
+ end
256
+ end
206
257
 
207
- if @transaction_id.nil?
208
- invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
258
+ self
209
259
  end
210
260
 
211
- invalid_properties
212
- end
213
-
214
- # Check to see if the all the properties in the model are valid
215
- # @return true if the model is valid
216
- def valid?
217
- return false if @account_id.nil?
218
- return false if @amount.nil?
219
- return false if @date.nil?
220
- return false if @name.nil?
221
- return false if @pending.nil?
222
- return false if @transaction_id.nil?
223
- true
224
- end
225
-
226
- # Checks equality by comparing each attribute.
227
- # @param [Object] Object to be compared
228
- def ==(o)
229
- return true if self.equal?(o)
230
- self.class == o.class &&
231
- account_id == o.account_id &&
232
- amount == o.amount &&
233
- iso_currency_code == o.iso_currency_code &&
234
- category == o.category &&
235
- category_id == o.category_id &&
236
- date == o.date &&
237
- name == o.name &&
238
- merchant_name == o.merchant_name &&
239
- original_description == o.original_description &&
240
- pending == o.pending &&
241
- transaction_id == o.transaction_id &&
242
- datetime == o.datetime &&
243
- personal_finance_category == o.personal_finance_category
244
- end
245
-
246
- # @see the `==` method
247
- # @param [Object] Object to be compared
248
- def eql?(o)
249
- self == o
250
- end
251
-
252
- # Calculates hash code according to all attributes.
253
- # @return [Integer] Hash code
254
- def hash
255
- [account_id, amount, iso_currency_code, category, category_id, date, name, merchant_name, original_description, pending, transaction_id, datetime, personal_finance_category].hash
256
- end
257
-
258
- # Builds the object from hash
259
- # @param [Hash] attributes Model attributes in the form of hash
260
- # @return [Object] Returns the model itself
261
- def self.build_from_hash(attributes)
262
- new.build_from_hash(attributes)
263
- end
264
-
265
- # Builds the object from hash
266
- # @param [Hash] attributes Model attributes in the form of hash
267
- # @return [Object] Returns the model itself
268
- def build_from_hash(attributes)
269
- return nil unless attributes.is_a?(Hash)
270
- self.class.openapi_types.each_pair do |key, type|
271
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
272
- self.send("#{key}=", nil)
273
- elsif type =~ /\AArray<(.*)>/i
274
- # check to ensure the input is an array given that the attribute
275
- # is documented as an array but the input is not
276
- if attributes[self.class.attribute_map[key]].is_a?(Array)
277
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
261
+ # Deserializes the data based on type
262
+ # @param string type Data type
263
+ # @param string value Value to be deserialized
264
+ # @return [Object] Deserialized data
265
+ def _deserialize(type, value)
266
+ case type.to_sym
267
+ when :Time
268
+ Time.parse(value)
269
+ when :Date
270
+ Date.parse(value)
271
+ when :String
272
+ value.to_s
273
+ when :Integer
274
+ value.to_i
275
+ when :Float
276
+ value.to_f
277
+ when :Boolean
278
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
279
+ true
280
+ else
281
+ false
282
+ end
283
+ when :Object
284
+ # generic object (usually a Hash), return directly
285
+ value
286
+ when /\AArray<(?<inner_type>.+)>\z/
287
+ inner_type = Regexp.last_match[:inner_type]
288
+ value.map { |v| _deserialize(inner_type, v) }
289
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
290
+ k_type = Regexp.last_match[:k_type]
291
+ v_type = Regexp.last_match[:v_type]
292
+ {}.tap do |hash|
293
+ value.each do |k, v|
294
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
295
+ end
278
296
  end
279
- elsif !attributes[self.class.attribute_map[key]].nil?
280
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
297
+ else # model
298
+ # models (e.g. Pet) or oneOf
299
+ klass = MoneyKit::PlaidCompatible.const_get(type)
300
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
281
301
  end
282
302
  end
283
303
 
284
- self
285
- end
286
-
287
- # Deserializes the data based on type
288
- # @param string type Data type
289
- # @param string value Value to be deserialized
290
- # @return [Object] Deserialized data
291
- def _deserialize(type, value)
292
- case type.to_sym
293
- when :Time
294
- Time.parse(value)
295
- when :Date
296
- Date.parse(value)
297
- when :String
298
- value.to_s
299
- when :Integer
300
- value.to_i
301
- when :Float
302
- value.to_f
303
- when :Boolean
304
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
305
- true
306
- else
307
- false
308
- end
309
- when :Object
310
- # generic object (usually a Hash), return directly
311
- value
312
- when /\AArray<(?<inner_type>.+)>\z/
313
- inner_type = Regexp.last_match[:inner_type]
314
- value.map { |v| _deserialize(inner_type, v) }
315
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
316
- k_type = Regexp.last_match[:k_type]
317
- v_type = Regexp.last_match[:v_type]
318
- {}.tap do |hash|
319
- value.each do |k, v|
320
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
321
- end
322
- end
323
- else # model
324
- # models (e.g. Pet) or oneOf
325
- klass = MoneyKit::PlaidCompatible.const_get(type)
326
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
304
+ # Returns the string representation of the object
305
+ # @return [String] String presentation of the object
306
+ def to_s
307
+ to_hash.to_s
327
308
  end
328
- end
329
309
 
330
- # Returns the string representation of the object
331
- # @return [String] String presentation of the object
332
- def to_s
333
- to_hash.to_s
334
- end
310
+ # to_body is an alias to to_hash (backward compatibility)
311
+ # @return [Hash] Returns the object in the form of hash
312
+ def to_body
313
+ to_hash
314
+ end
335
315
 
336
- # to_body is an alias to to_hash (backward compatibility)
337
- # @return [Hash] Returns the object in the form of hash
338
- def to_body
339
- to_hash
340
- end
316
+ # Returns the object in the form of hash
317
+ # @return [Hash] Returns the object in the form of hash
318
+ def to_hash
319
+ hash = {}
320
+ self.class.attribute_map.each_pair do |attr, param|
321
+ value = send(attr)
322
+ if value.nil?
323
+ is_nullable = self.class.openapi_nullable.include?(attr)
324
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
325
+ end
341
326
 
342
- # Returns the object in the form of hash
343
- # @return [Hash] Returns the object in the form of hash
344
- def to_hash
345
- hash = {}
346
- self.class.attribute_map.each_pair do |attr, param|
347
- value = self.send(attr)
348
- if value.nil?
349
- is_nullable = self.class.openapi_nullable.include?(attr)
350
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
327
+ hash[param] = _to_hash(value)
351
328
  end
352
-
353
- hash[param] = _to_hash(value)
329
+ hash
354
330
  end
355
- hash
356
- end
357
331
 
358
- # Outputs non-array value in the form of hash
359
- # For object, use to_hash. Otherwise, just return the value
360
- # @param [Object] value Any valid value
361
- # @return [Hash] Returns the value in the form of hash
362
- def _to_hash(value)
363
- if value.is_a?(Array)
364
- value.compact.map { |v| _to_hash(v) }
365
- elsif value.is_a?(Hash)
366
- {}.tap do |hash|
367
- value.each { |k, v| hash[k] = _to_hash(v) }
332
+ # Outputs non-array value in the form of hash
333
+ # For object, use to_hash. Otherwise, just return the value
334
+ # @param [Object] value Any valid value
335
+ # @return [Hash] Returns the value in the form of hash
336
+ def _to_hash(value)
337
+ if value.is_a?(Array)
338
+ value.compact.map { |v| _to_hash(v) }
339
+ elsif value.is_a?(Hash)
340
+ {}.tap do |hash|
341
+ value.each { |k, v| hash[k] = _to_hash(v) }
342
+ end
343
+ elsif value.respond_to? :to_hash
344
+ value.to_hash
345
+ else
346
+ value
368
347
  end
369
- elsif value.respond_to? :to_hash
370
- value.to_hash
371
- else
372
- value
373
348
  end
374
349
  end
375
-
376
350
  end
377
-
378
351
  end