moneykit 0.0.3 → 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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/moneykit/api/access_token_api.rb +9 -9
  4. data/lib/moneykit/api/account_numbers_api.rb +6 -6
  5. data/lib/moneykit/api/accounts_api.rb +15 -15
  6. data/lib/moneykit/api/identity_api.rb +6 -6
  7. data/lib/moneykit/api/institutions_api.rb +7 -7
  8. data/lib/moneykit/api/link_session_api.rb +7 -7
  9. data/lib/moneykit/api/links_api.rb +76 -13
  10. data/lib/moneykit/api/products_api.rb +6 -6
  11. data/lib/moneykit/api/transactions_api.rb +28 -28
  12. data/lib/moneykit/api/users_api.rb +14 -14
  13. data/lib/moneykit/api/webhooks_api.rb +97 -0
  14. data/lib/moneykit/api_client.rb +40 -36
  15. data/lib/moneykit/api_error.rb +1 -1
  16. data/lib/moneykit/configuration.rb +20 -30
  17. data/lib/moneykit/models/account.rb +27 -54
  18. data/lib/moneykit/models/account_balances.rb +18 -27
  19. data/lib/moneykit/models/account_group.rb +23 -26
  20. data/lib/moneykit/models/account_identity.rb +34 -59
  21. data/lib/moneykit/models/account_numbers.rb +75 -51
  22. data/lib/moneykit/models/account_numbers_link_product.rb +18 -28
  23. data/lib/moneykit/models/account_numbers_product_settings.rb +16 -21
  24. data/lib/moneykit/models/account_with_account_numbers.rb +29 -56
  25. data/lib/moneykit/models/accounts_link_product.rb +17 -25
  26. data/lib/moneykit/models/ach_number.rb +19 -26
  27. data/lib/moneykit/models/address.rb +17 -28
  28. data/lib/moneykit/models/api_error_auth_expired_access_token_response.rb +17 -24
  29. data/lib/moneykit/models/api_error_auth_unauthorized_response.rb +18 -25
  30. data/lib/moneykit/models/api_error_rate_limit_exceeded_response.rb +17 -24
  31. data/lib/moneykit/models/bacs_number.rb +18 -25
  32. data/lib/moneykit/models/basic_account_details.rb +20 -29
  33. data/lib/moneykit/models/country.rb +1 -1
  34. data/lib/moneykit/models/create_link_session_request.rb +48 -45
  35. data/lib/moneykit/models/create_link_session_response.rb +17 -24
  36. data/lib/moneykit/models/currency.rb +1 -1
  37. data/lib/moneykit/models/cursor_pagination.rb +17 -24
  38. data/lib/moneykit/models/customer_app.rb +18 -25
  39. data/lib/moneykit/models/eft_number.rb +19 -26
  40. data/lib/moneykit/models/email.rb +17 -22
  41. data/lib/moneykit/models/exchange_token_request.rb +17 -24
  42. data/lib/moneykit/models/exchange_token_response.rb +19 -26
  43. data/lib/moneykit/models/generate_access_token_response.rb +19 -26
  44. data/lib/moneykit/models/get_account_numbers_response.rb +23 -26
  45. data/lib/moneykit/models/get_account_response.rb +19 -26
  46. data/lib/moneykit/models/get_accounts_response.rb +25 -31
  47. data/lib/moneykit/models/get_institutions_response.rb +25 -31
  48. data/lib/moneykit/models/get_transactions_response.rb +34 -39
  49. data/lib/moneykit/models/get_user_accounts_response.rb +24 -32
  50. data/lib/moneykit/models/get_user_links_response.rb +24 -32
  51. data/lib/moneykit/models/get_user_transactions_response.rb +32 -34
  52. data/lib/moneykit/models/http_validation_error.rb +24 -28
  53. data/lib/moneykit/models/identity_link_product.rb +18 -28
  54. data/lib/moneykit/models/identity_product_settings.rb +16 -21
  55. data/lib/moneykit/models/identity_response.rb +24 -30
  56. data/lib/moneykit/models/institution.rb +29 -38
  57. data/lib/moneykit/models/institution_error_not_found_response.rb +17 -24
  58. data/lib/moneykit/models/international_number.rb +18 -25
  59. data/lib/moneykit/models/introspect_client_response.rb +22 -29
  60. data/lib/moneykit/models/jwk_set.rb +23 -26
  61. data/lib/moneykit/models/link_common.rb +25 -39
  62. data/lib/moneykit/models/link_error_bad_config_response.rb +269 -0
  63. data/lib/moneykit/models/link_error_bad_state_response.rb +19 -28
  64. data/lib/moneykit/models/link_error_deleted_response.rb +17 -24
  65. data/lib/moneykit/models/link_error_forbidden_action_response.rb +18 -25
  66. data/lib/moneykit/models/link_error_not_found_response.rb +17 -24
  67. data/lib/moneykit/models/link_error_unauthorized_access_response.rb +17 -24
  68. data/lib/moneykit/models/link_permission_scope.rb +1 -1
  69. data/lib/moneykit/models/link_permissions.rb +23 -33
  70. data/lib/moneykit/models/link_products.rb +16 -21
  71. data/lib/moneykit/models/link_response.rb +26 -39
  72. data/lib/moneykit/models/link_session_customer_user.rb +20 -28
  73. data/lib/moneykit/models/link_session_customer_user_email.rb +18 -25
  74. data/lib/moneykit/models/link_session_customer_user_phone.rb +18 -26
  75. data/lib/moneykit/models/link_session_error_forbidden_config_response.rb +18 -25
  76. data/lib/moneykit/models/link_session_error_invalid_token_exchange.rb +18 -25
  77. data/lib/moneykit/models/link_session_setting_overrides.rb +19 -43
  78. data/lib/moneykit/models/link_state.rb +1 -1
  79. data/lib/moneykit/models/link_state_changed_webhook.rb +28 -31
  80. data/lib/moneykit/models/money_link_features.rb +27 -32
  81. data/lib/moneykit/models/owner.rb +42 -42
  82. data/lib/moneykit/models/phone_number.rb +18 -25
  83. data/lib/moneykit/models/phone_number_type.rb +1 -1
  84. data/lib/moneykit/models/product.rb +1 -1
  85. data/lib/moneykit/models/products_settings.rb +19 -24
  86. data/lib/moneykit/models/provider.rb +4 -2
  87. data/lib/moneykit/models/public_link_error.rb +43 -0
  88. data/lib/moneykit/models/refresh_products_request.rb +23 -34
  89. data/lib/moneykit/models/requested_link_permission.rb +19 -26
  90. data/lib/moneykit/models/response401_disconnect_links_id_delete.rb +75 -269
  91. data/lib/moneykit/models/response401_exchange_token_link_session_exchange_token_post.rb +74 -267
  92. data/lib/moneykit/models/response401_get_account_links_id_accounts_account_id_get.rb +75 -269
  93. data/lib/moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get.rb +75 -269
  94. data/lib/moneykit/models/response401_get_accounts_links_id_accounts_get.rb +75 -269
  95. data/lib/moneykit/models/response401_get_identities_links_id_identity_get.rb +75 -269
  96. data/lib/moneykit/models/response401_get_institution_institutions_institution_id_get.rb +74 -267
  97. data/lib/moneykit/models/response401_get_institutions_institutions_get.rb +74 -267
  98. data/lib/moneykit/models/response401_get_link_links_id_get.rb +75 -269
  99. data/lib/moneykit/models/response401_get_transactions_diff_links_id_transactions_sync_get.rb +75 -269
  100. data/lib/moneykit/models/response401_get_transactions_links_id_transactions_get.rb +75 -269
  101. data/lib/moneykit/models/response401_get_user_accounts_users_id_accounts_get.rb +74 -267
  102. data/lib/moneykit/models/response401_get_user_links_users_id_links_get.rb +74 -267
  103. data/lib/moneykit/models/response401_get_user_transactions_users_id_transactions_get.rb +74 -267
  104. data/lib/moneykit/models/response401_get_well_known_jwks_well_known_jwks_json_get.rb +74 -267
  105. data/lib/moneykit/models/response401_instrospect_client_auth_introspect_get.rb +74 -267
  106. data/lib/moneykit/models/response401_refresh_products_links_id_products_post.rb +75 -269
  107. data/lib/moneykit/models/response401_reset_login_links_id_reset_post.rb +102 -0
  108. data/lib/moneykit/models/response401_trigger_test_link_webhook_event_webhooks_test_link_id_post.rb +102 -0
  109. data/lib/moneykit/models/response401_update_link_links_id_patch.rb +75 -269
  110. data/lib/moneykit/models/transaction.rb +35 -35
  111. data/lib/moneykit/models/transaction_diff.rb +36 -37
  112. data/lib/moneykit/models/transaction_sync_response.rb +23 -30
  113. data/lib/moneykit/models/transaction_type.rb +1 -1
  114. data/lib/moneykit/models/transaction_type_filter.rb +1 -1
  115. data/lib/moneykit/models/transactions_link_product.rb +18 -28
  116. data/lib/moneykit/models/transactions_product_settings.rb +16 -21
  117. data/lib/moneykit/models/update_link_request.rb +21 -28
  118. data/lib/moneykit/models/validation_error.rb +25 -28
  119. data/lib/moneykit/models/validation_error_location_inner.rb +101 -0
  120. data/lib/moneykit/models/webhook_link_test_event.rb +40 -0
  121. data/lib/moneykit/models/webhook_test_link_request.rb +252 -0
  122. data/lib/moneykit/models/webhook_test_link_response.rb +220 -0
  123. data/lib/moneykit/version.rb +2 -2
  124. data/lib/moneykit.rb +10 -29
  125. data/lib/plaid_compatible/money_kit_plaid_compatible/api/plaid_api.rb +684 -679
  126. data/lib/plaid_compatible/money_kit_plaid_compatible/api_client.rb +330 -330
  127. data/lib/plaid_compatible/money_kit_plaid_compatible/api_error.rb +33 -33
  128. data/lib/plaid_compatible/money_kit_plaid_compatible/configuration.rb +245 -245
  129. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_balance.rb +198 -198
  130. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_base.rb +213 -213
  131. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_identity.rb +223 -223
  132. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_subtype.rb +89 -89
  133. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_type.rb +22 -22
  134. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request.rb +198 -198
  135. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request_options.rb +175 -175
  136. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_response.rb +194 -194
  137. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address.rb +183 -183
  138. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address_data.rb +209 -209
  139. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_numbers.rb +211 -209
  140. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request.rb +198 -198
  141. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request_options.rb +175 -175
  142. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_response.rb +200 -200
  143. data/lib/plaid_compatible/money_kit_plaid_compatible/models/country_code.rb +19 -19
  144. data/lib/plaid_compatible/money_kit_plaid_compatible/models/email.rb +184 -184
  145. data/lib/plaid_compatible/money_kit_plaid_compatible/models/http_validation_error.rb +171 -171
  146. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request.rb +198 -198
  147. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request_options.rb +175 -175
  148. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_response.rb +194 -194
  149. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institution.rb +216 -214
  150. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_request.rb +202 -202
  151. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_response.rb +183 -183
  152. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item.rb +246 -245
  153. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_error_webhook.rb +208 -208
  154. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_request.rb +192 -192
  155. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_response.rb +189 -189
  156. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_request.rb +192 -192
  157. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_response.rb +193 -193
  158. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_request.rb +192 -192
  159. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_response.rb +175 -175
  160. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_investments.rb +182 -182
  161. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_last_webhook.rb +182 -182
  162. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_nullable.rb +183 -183
  163. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_transactions.rb +182 -182
  164. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request.rb +268 -266
  165. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request_user.rb +212 -212
  166. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_response.rb +193 -193
  167. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_ach.rb +202 -202
  168. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_bacs.rb +193 -193
  169. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_eft.rb +202 -202
  170. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_international.rb +193 -193
  171. data/lib/plaid_compatible/money_kit_plaid_compatible/models/owner.rb +211 -209
  172. data/lib/plaid_compatible/money_kit_plaid_compatible/models/personal_finance_category.rb +184 -184
  173. data/lib/plaid_compatible/money_kit_plaid_compatible/models/phone_number.rb +193 -193
  174. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error.rb +247 -245
  175. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error_type.rb +30 -30
  176. data/lib/plaid_compatible/money_kit_plaid_compatible/models/products.rb +20 -20
  177. data/lib/plaid_compatible/money_kit_plaid_compatible/models/removed_transaction.rb +174 -174
  178. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transaction.rb +283 -283
  179. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request.rb +217 -217
  180. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request_options.rb +211 -211
  181. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_response.rb +217 -217
  182. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_request.rb +192 -192
  183. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_response.rb +175 -175
  184. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request.rb +215 -215
  185. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request_options.rb +184 -184
  186. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_response.rb +228 -228
  187. data/lib/plaid_compatible/money_kit_plaid_compatible/models/validation_error.rb +187 -187
  188. data/lib/plaid_compatible/money_kit_plaid_compatible/models/webhook_environment_values.rb +19 -19
  189. data/lib/plaid_compatible/money_kit_plaid_compatible/version.rb +1 -1
  190. data/lib/plaid_compatible/money_kit_plaid_compatible.rb +13 -13
  191. data/moneykit.gemspec +2 -1
  192. metadata +14 -5
@@ -13,339 +13,339 @@ require 'time'
13
13
 
14
14
  module MoneyKit
15
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
74
-
75
- # Returns all the JSON keys this model knows about
76
- def self.acceptable_attributes
77
- attribute_map.values
78
- end
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
79
74
 
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
75
+ # Returns all the JSON keys this model knows about
76
+ def self.acceptable_attributes
77
+ attribute_map.values
78
+ end
98
79
 
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
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
111
98
 
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'
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
+ ])
118
110
  end
119
111
 
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)
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)
123
116
  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
117
+ 'The input argument (attributes) must be a hash in `MoneyKit::PlaidCompatible::Transaction` initialize method'
125
118
  end
126
119
 
127
- h[k.to_sym] = v
128
- end
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
129
126
 
130
- self.account_id = attributes[:account_id] if attributes.key?(:account_id)
127
+ h[k.to_sym] = v
128
+ end
131
129
 
132
- self.amount = attributes[:amount] if attributes.key?(:amount)
130
+ self.account_id = attributes[:account_id] if attributes.key?(:account_id)
133
131
 
134
- self.iso_currency_code = attributes[:iso_currency_code] if attributes.key?(:iso_currency_code)
132
+ self.amount = attributes[:amount] if attributes.key?(:amount)
135
133
 
136
- if attributes.key?(:category) && (value = attributes[:category]).is_a?(Array)
137
- self.category = value
138
- end
134
+ self.iso_currency_code = attributes[:iso_currency_code] if attributes.key?(:iso_currency_code)
139
135
 
140
- self.category_id = attributes[:category_id] if attributes.key?(:category_id)
136
+ if attributes.key?(:category) && (value = attributes[:category]).is_a?(Array)
137
+ self.category = value
138
+ end
141
139
 
142
- self.date = attributes[:date] if attributes.key?(:date)
140
+ self.category_id = attributes[:category_id] if attributes.key?(:category_id)
143
141
 
144
- self.name = attributes[:name] if attributes.key?(:name)
142
+ self.date = attributes[:date] if attributes.key?(:date)
145
143
 
146
- self.merchant_name = attributes[:merchant_name] if attributes.key?(:merchant_name)
144
+ self.name = attributes[:name] if attributes.key?(:name)
147
145
 
148
- self.original_description = attributes[:original_description] if attributes.key?(:original_description)
146
+ self.merchant_name = attributes[:merchant_name] if attributes.key?(:merchant_name)
149
147
 
150
- self.pending = attributes[:pending] if attributes.key?(:pending)
148
+ self.original_description = attributes[:original_description] if attributes.key?(:original_description)
151
149
 
152
- self.transaction_id = attributes[:transaction_id] if attributes.key?(:transaction_id)
150
+ self.pending = attributes[:pending] if attributes.key?(:pending)
153
151
 
154
- self.datetime = attributes[:datetime] if attributes.key?(:datetime)
152
+ self.transaction_id = attributes[:transaction_id] if attributes.key?(:transaction_id)
155
153
 
156
- return unless attributes.key?(:personal_finance_category)
154
+ self.datetime = attributes[:datetime] if attributes.key?(:datetime)
157
155
 
158
- self.personal_finance_category = attributes[:personal_finance_category]
159
- end
156
+ return unless attributes.key?(:personal_finance_category)
160
157
 
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?
158
+ self.personal_finance_category = attributes[:personal_finance_category]
159
+ end
166
160
 
167
- invalid_properties.push('invalid value for "amount", amount cannot be nil.') if @amount.nil?
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?
168
166
 
169
- invalid_properties.push('invalid value for "date", date cannot be nil.') if @date.nil?
167
+ invalid_properties.push('invalid value for "amount", amount cannot be nil.') if @amount.nil?
170
168
 
171
- invalid_properties.push('invalid value for "name", name cannot be nil.') if @name.nil?
169
+ invalid_properties.push('invalid value for "date", date cannot be nil.') if @date.nil?
172
170
 
173
- invalid_properties.push('invalid value for "pending", pending cannot be nil.') if @pending.nil?
171
+ invalid_properties.push('invalid value for "name", name cannot be nil.') if @name.nil?
174
172
 
175
- if @transaction_id.nil?
176
- invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
177
- end
173
+ invalid_properties.push('invalid value for "pending", pending cannot be nil.') if @pending.nil?
178
174
 
179
- invalid_properties
180
- end
175
+ if @transaction_id.nil?
176
+ invalid_properties.push('invalid value for "transaction_id", transaction_id cannot be nil.')
177
+ end
181
178
 
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
193
- end
179
+ invalid_properties
180
+ end
194
181
 
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
214
- end
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
193
+ end
215
194
 
216
- # @see the `==` method
217
- # @param [Object] Object to be compared
218
- def eql?(other)
219
- self == other
220
- end
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
214
+ end
221
215
 
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
227
- end
216
+ # @see the `==` method
217
+ # @param [Object] Object to be compared
218
+ def eql?(other)
219
+ self == other
220
+ end
228
221
 
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)
234
- end
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
227
+ end
228
+
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)
234
+ end
235
235
 
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)
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]]))
252
255
  end
253
- elsif !attributes[self.class.attribute_map[key]].nil?
254
- send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
255
256
  end
256
- end
257
257
 
258
- self
259
- end
258
+ self
259
+ end
260
260
 
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)
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
295
296
  end
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)
296
301
  end
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)
301
302
  end
302
- end
303
303
 
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
308
- end
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
308
+ end
309
309
 
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
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
315
315
 
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
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
326
326
 
327
- hash[param] = _to_hash(value)
327
+ hash[param] = _to_hash(value)
328
+ end
329
+ hash
328
330
  end
329
- hash
330
- end
331
331
 
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) }
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
342
347
  end
343
- elsif value.respond_to? :to_hash
344
- value.to_hash
345
- else
346
- value
347
348
  end
348
349
  end
349
350
  end
350
- end
351
351
  end