moneykit 0.0.1

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