diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index aa0f2d8..6a0192c 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -12,9 +12,9 @@ docs/Account.md docs/AccountBalances.md docs/AccountGroup.md docs/AccountIdentity.md -docs/AccountNumbers.md docs/AccountNumbersApi.md -docs/AccountWithAccountNumbers.md +docs/AccountNumbersLegacy20230218.md +docs/AccountWithAccountNumbersLegacy20230218.md docs/AccountsApi.md docs/AchNumber.md docs/Address.md @@ -33,7 +33,7 @@ docs/Email.md docs/ExchangeTokenRequest.md docs/ExchangeTokenResponse.md docs/GenerateAccessTokenResponse.md -docs/GetAccountNumbersResponse.md +docs/GetAccountNumbersResponseLegacy20230218.md docs/GetAccountResponse.md docs/GetAccountsResponse.md docs/GetHoldingsResponse.md @@ -93,7 +93,7 @@ docs/RequestedLinkPermission.md docs/Response401DisconnectLinksIdDelete.md docs/Response401ExchangeTokenLinkSessionExchangeTokenPost.md docs/Response401GetAccountLinksIdAccountsAccountIdGet.md -docs/Response401GetAccountNumbersLinksIdAccountsNumbersGet.md +docs/Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet.md docs/Response401GetAccountsLinksIdAccountsGet.md docs/Response401GetHoldingsLinksIdInvestmentsHoldingsGet.md docs/Response401GetIdentitiesLinksIdIdentityGet.md @@ -151,8 +151,8 @@ lib/moneykit/models/account.rb lib/moneykit/models/account_balances.rb lib/moneykit/models/account_group.rb lib/moneykit/models/account_identity.rb -lib/moneykit/models/account_numbers.rb -lib/moneykit/models/account_with_account_numbers.rb +lib/moneykit/models/account_numbers_legacy20230218.rb +lib/moneykit/models/account_with_account_numbers_legacy20230218.rb lib/moneykit/models/ach_number.rb lib/moneykit/models/address.rb lib/moneykit/models/api_error_auth_expired_access_token_response.rb @@ -173,7 +173,7 @@ lib/moneykit/models/email.rb lib/moneykit/models/exchange_token_request.rb lib/moneykit/models/exchange_token_response.rb lib/moneykit/models/generate_access_token_response.rb -lib/moneykit/models/get_account_numbers_response.rb +lib/moneykit/models/get_account_numbers_response_legacy20230218.rb lib/moneykit/models/get_account_response.rb lib/moneykit/models/get_accounts_response.rb lib/moneykit/models/get_holdings_response.rb @@ -227,7 +227,7 @@ lib/moneykit/models/requested_link_permission.rb lib/moneykit/models/response401_disconnect_links_id_delete.rb lib/moneykit/models/response401_exchange_token_link_session_exchange_token_post.rb lib/moneykit/models/response401_get_account_links_id_accounts_account_id_get.rb -lib/moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get.rb +lib/moneykit/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get.rb lib/moneykit/models/response401_get_accounts_links_id_accounts_get.rb lib/moneykit/models/response401_get_holdings_links_id_investments_holdings_get.rb lib/moneykit/models/response401_get_identities_links_id_identity_get.rb @@ -266,8 +266,8 @@ lib/moneykit/version.rb moneykit.gemspec spec/api_client_spec.rb spec/configuration_spec.rb -spec/models/app_client_response_spec.rb -spec/models/app_response_spec.rb -spec/models/link_product_spec.rb -spec/models/product_settings_spec.rb +spec/models/account_numbers_legacy20230218_spec.rb +spec/models/account_with_account_numbers_legacy20230218_spec.rb +spec/models/get_account_numbers_response_legacy20230218_spec.rb +spec/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get_spec.rb spec/spec_helper.rb diff --git a/docs/AccountNumbersApi.md b/docs/AccountNumbersApi.md index 3c6a59e..1faf1e4 100644 --- a/docs/AccountNumbersApi.md +++ b/docs/AccountNumbersApi.md @@ -4,12 +4,12 @@ All URIs are relative to *https://api.moneykit.com* | Method | HTTP request | Description | | ------ | ------------ | ----------- | -| [**get_account_numbers**](AccountNumbersApi.md#get_account_numbers) | **GET** /links/{id}/accounts/numbers | /links/{id}/accounts/numbers | +| [**get_account_numbers_legacy20230218**](AccountNumbersApi.md#get_account_numbers_legacy20230218) | **GET** /links/{id}/accounts/numbers | /links/{id}/accounts/numbers | -## get_account_numbers +## get_account_numbers_legacy20230218 -> get_account_numbers(id) +> get_account_numbers_legacy20230218(id) /links/{id}/accounts/numbers @@ -27,32 +27,32 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::AccountNumbersApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. begin # /links/{id}/accounts/numbers - result = api_instance.get_account_numbers(id) + result = api_instance.get_account_numbers_legacy20230218(id) p result rescue MoneyKit::ApiError => e - puts "Error when calling AccountNumbersApi->get_account_numbers: #{e}" + puts "Error when calling AccountNumbersApi->get_account_numbers_legacy20230218: #{e}" end ``` -#### Using the get_account_numbers_with_http_info variant +#### Using the get_account_numbers_legacy20230218_with_http_info variant This returns an Array which contains the response data, status code and headers. -> , Integer, Hash)> get_account_numbers_with_http_info(id) +> , Integer, Hash)> get_account_numbers_legacy20230218_with_http_info(id) ```ruby begin # /links/{id}/accounts/numbers - data, status_code, headers = api_instance.get_account_numbers_with_http_info(id) + data, status_code, headers = api_instance.get_account_numbers_legacy20230218_with_http_info(id) p status_code # => 2xx p headers # => { ... } - p data # => + p data # => rescue MoneyKit::ApiError => e - puts "Error when calling AccountNumbersApi->get_account_numbers_with_http_info: #{e}" + puts "Error when calling AccountNumbersApi->get_account_numbers_legacy20230218_with_http_info: #{e}" end ``` @@ -64,7 +64,7 @@ end ### Return type -[**GetAccountNumbersResponse**](GetAccountNumbersResponse.md) +[**GetAccountNumbersResponseLegacy20230218**](GetAccountNumbersResponseLegacy20230218.md) ### Authorization diff --git a/docs/AccountNumbersLegacy20230218.md b/docs/AccountNumbersLegacy20230218.md new file mode 100644 index 0000000..ae3129a --- /dev/null +++ b/docs/AccountNumbersLegacy20230218.md @@ -0,0 +1,24 @@ +# MoneyKit::AccountNumbersLegacy20230218 + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| **ach** | [**Array<AchNumber>**](AchNumber.md) | | | +| **bacs** | [**Array<BacsNumber>**](BacsNumber.md) | | | +| **eft** | [**Array<EftNumber>**](EftNumber.md) | | | +| **international** | [**Array<InternationalNumber>**](InternationalNumber.md) | | | + +## Example + +```ruby +require 'moneykit' + +instance = MoneyKit::AccountNumbersLegacy20230218.new( + ach: null, + bacs: null, + eft: null, + international: null +) +``` + diff --git a/docs/AccountWithAccountNumbersLegacy20230218.md b/docs/AccountWithAccountNumbersLegacy20230218.md new file mode 100644 index 0000000..ab5c7c9 --- /dev/null +++ b/docs/AccountWithAccountNumbersLegacy20230218.md @@ -0,0 +1,28 @@ +# MoneyKit::AccountWithAccountNumbersLegacy20230218 + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| **account_id** | **String** | MoneyKit's unique ID for the account. <p>The `account_id` is distinct from the institution's account number. For accounts that may change account numbers from time to time, such as credit cards, MoneyKit attempts to keep the `account_id` constant. However, if MoneyKit can't reconcile the new account data with the old data, the `account_id` may change. | | +| **account_type** | **String** | See <a href=/pages/account_types>Account Types</a> for an explanation of account types. Account types are dot-prefixed with one of `depository`, `investment`, `liability`, or `other`; or the value is `unknown`. <p>**Balances for `liability` accounts are reversed:** negative balances (the amount owed) are reported as positive values. For all other types of accounts, a negative balance indicates the amount owed. | | +| **name** | **String** | The account name, according to the institution. Note that some institutions allow the end user to nickname the account; in such cases this field may be the name assigned by the user. | | +| **account_mask** | **String** | The last four characters (usually digits) of the account number. Note that this mask may be non-unique between accounts. | [optional] | +| **balances** | [**AccountBalances**](AccountBalances.md) | | | +| **numbers** | [**AccountNumbersLegacy20230218**](AccountNumbersLegacy20230218.md) | | | + +## Example + +```ruby +require 'moneykit' + +instance = MoneyKit::AccountWithAccountNumbersLegacy20230218.new( + account_id: acc_6Tef269B6ZArSVpYrxtjBV, + account_type: depository.checking, + name: Premier Checking, + account_mask: 3748, + balances: null, + numbers: null +) +``` + diff --git a/docs/AccountsApi.md b/docs/AccountsApi.md index f309901..5b73087 100644 --- a/docs/AccountsApi.md +++ b/docs/AccountsApi.md @@ -5,7 +5,7 @@ All URIs are relative to *https://api.moneykit.com* | Method | HTTP request | Description | | ------ | ------------ | ----------- | | [**get_account**](AccountsApi.md#get_account) | **GET** /links/{id}/accounts/{account_id} | /links/{id}/accounts/{account_id} | -| [**get_account_numbers**](AccountsApi.md#get_account_numbers) | **GET** /links/{id}/accounts/numbers | /links/{id}/accounts/numbers | +| [**get_account_numbers_legacy20230218**](AccountsApi.md#get_account_numbers_legacy20230218) | **GET** /links/{id}/accounts/numbers | /links/{id}/accounts/numbers | | [**get_accounts**](AccountsApi.md#get_accounts) | **GET** /links/{id}/accounts | /links/{id}/accounts | | [**get_user_accounts**](AccountsApi.md#get_user_accounts) | **GET** /users/{id}/accounts | /users/{id}/accounts | @@ -30,8 +30,8 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::AccountsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. -account_id = 'acc_6Tef269B6ZArSVpYrxtjBV' # String | The account ID to fetch. +id = 'id_example' # String | The unique ID for this link. +account_id = 'account_id_example' # String | The account ID to fetch. begin # /links/{id}/accounts/{account_id} @@ -81,9 +81,9 @@ end - **Accept**: application/json -## get_account_numbers +## get_account_numbers_legacy20230218 -> get_account_numbers(id) +> get_account_numbers_legacy20230218(id) /links/{id}/accounts/numbers @@ -101,32 +101,32 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::AccountsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. begin # /links/{id}/accounts/numbers - result = api_instance.get_account_numbers(id) + result = api_instance.get_account_numbers_legacy20230218(id) p result rescue MoneyKit::ApiError => e - puts "Error when calling AccountsApi->get_account_numbers: #{e}" + puts "Error when calling AccountsApi->get_account_numbers_legacy20230218: #{e}" end ``` -#### Using the get_account_numbers_with_http_info variant +#### Using the get_account_numbers_legacy20230218_with_http_info variant This returns an Array which contains the response data, status code and headers. -> , Integer, Hash)> get_account_numbers_with_http_info(id) +> , Integer, Hash)> get_account_numbers_legacy20230218_with_http_info(id) ```ruby begin # /links/{id}/accounts/numbers - data, status_code, headers = api_instance.get_account_numbers_with_http_info(id) + data, status_code, headers = api_instance.get_account_numbers_legacy20230218_with_http_info(id) p status_code # => 2xx p headers # => { ... } - p data # => + p data # => rescue MoneyKit::ApiError => e - puts "Error when calling AccountsApi->get_account_numbers_with_http_info: #{e}" + puts "Error when calling AccountsApi->get_account_numbers_legacy20230218_with_http_info: #{e}" end ``` @@ -138,7 +138,7 @@ end ### Return type -[**GetAccountNumbersResponse**](GetAccountNumbersResponse.md) +[**GetAccountNumbersResponseLegacy20230218**](GetAccountNumbersResponseLegacy20230218.md) ### Authorization @@ -170,7 +170,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::AccountsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { account_ids: ['inner_example'] # Array | An optional list of account IDs to filter the results. } @@ -243,7 +243,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::AccountsApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. opts = { account_ids: ['inner_example'], # Array | If present, filters results to accounts matching the given IDs. institution_ids: ['inner_example'] # Array | If present, filters results to accounts at institutions matching the given IDs. diff --git a/docs/GetAccountNumbersResponseLegacy20230218.md b/docs/GetAccountNumbersResponseLegacy20230218.md new file mode 100644 index 0000000..819aca4 --- /dev/null +++ b/docs/GetAccountNumbersResponseLegacy20230218.md @@ -0,0 +1,20 @@ +# MoneyKit::GetAccountNumbersResponseLegacy20230218 + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| **accounts** | [**Array<AccountWithAccountNumbersLegacy20230218>**](AccountWithAccountNumbersLegacy20230218.md) | | | +| **link** | [**LinkCommon**](LinkCommon.md) | | | + +## Example + +```ruby +require 'moneykit' + +instance = MoneyKit::GetAccountNumbersResponseLegacy20230218.new( + accounts: null, + link: null +) +``` + diff --git a/docs/IdentityApi.md b/docs/IdentityApi.md index 662907b..301d8cb 100644 --- a/docs/IdentityApi.md +++ b/docs/IdentityApi.md @@ -27,7 +27,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::IdentityApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { account_ids: ['inner_example'] # Array | An optional list of account IDs to filter the results. } diff --git a/docs/InstitutionsApi.md b/docs/InstitutionsApi.md index 0a2e64e..12b9ec9 100644 --- a/docs/InstitutionsApi.md +++ b/docs/InstitutionsApi.md @@ -28,7 +28,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::InstitutionsApi.new -institution_id = 'chase' # String | The institution ID to fetch. +institution_id = 'institution_id_example' # String | The institution ID to fetch. begin # /institutions/{institution_id} @@ -98,7 +98,7 @@ end api_instance = MoneyKit::InstitutionsApi.new opts = { - name: 'Chase', # String | If provided, returns only institutions containing this name (wholly or as a prefix). + name: 'name_example', # String | If provided, returns only institutions containing this name (wholly or as a prefix). featured: true, # Boolean | If true, returns only featured institutions. cursor: 'cursor_example', # String | Cursor to fetch the next set of institutions. (You get this value from the previous call to `/institutions`.) limit: 56 # Integer | A limit on the number of institutions to be returned. diff --git a/docs/InvestmentsApi.md b/docs/InvestmentsApi.md index c152dec..6399a5c 100644 --- a/docs/InvestmentsApi.md +++ b/docs/InvestmentsApi.md @@ -28,7 +28,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::InvestmentsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { account_ids: ['inner_example'] # Array | An optional list of account IDs to filter the results. } @@ -101,7 +101,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::InvestmentsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { account_ids: ['inner_example'], # Array | An optional list of account IDs to filter the results. page: 56, # Integer | The page number to return. diff --git a/docs/LinksApi.md b/docs/LinksApi.md index 976a8f6..f58926f 100644 --- a/docs/LinksApi.md +++ b/docs/LinksApi.md @@ -31,7 +31,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::LinksApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. begin # /links/{id} @@ -99,7 +99,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::LinksApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. begin # /links/{id} @@ -168,7 +168,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::LinksApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. begin # /users/{id}/links @@ -235,7 +235,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::LinksApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. begin # Force a \"relink required\" state on a link (Test only). @@ -304,7 +304,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::LinksApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. update_link_request = MoneyKit::UpdateLinkRequest.new # UpdateLinkRequest | begin diff --git a/docs/ProductsApi.md b/docs/ProductsApi.md index 6855afb..191ced4 100644 --- a/docs/ProductsApi.md +++ b/docs/ProductsApi.md @@ -27,7 +27,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::ProductsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. refresh_products_request = MoneyKit::RefreshProductsRequest.new({products: [MoneyKit::Product::ACCOUNTS]}) # RefreshProductsRequest | begin diff --git a/docs/Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet.md b/docs/Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet.md new file mode 100644 index 0000000..5b7d1a5 --- /dev/null +++ b/docs/Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet.md @@ -0,0 +1,22 @@ +# MoneyKit::Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| **error_code** | **Object** | | [optional] | +| **error_message** | **Object** | | | +| **documentation_url** | **Object** | | [optional] | + +## Example + +```ruby +require 'moneykit' + +instance = MoneyKit::Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet.new( + error_code: null, + error_message: null, + documentation_url: null +) +``` + diff --git a/docs/TransactionsApi.md b/docs/TransactionsApi.md index a3acdd9..891a80c 100644 --- a/docs/TransactionsApi.md +++ b/docs/TransactionsApi.md @@ -29,7 +29,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::TransactionsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { account_ids: ['inner_example'], # Array | An optional list of account IDs to filter the results. page: 56, # Integer | The page number to return. @@ -110,7 +110,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::TransactionsApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. opts = { cursor: 'cursor_example', # String | A cursor value representing the last update requested. If included, the response will only return changes after this update. If omitted, a complete history of updates will be returned. This value must be stored by the client as we do not keep track of app cursors. size: 56 # Integer | The number of items to return. @@ -185,7 +185,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::TransactionsApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. opts = { transaction_type: [MoneyKit::TransactionTypeFilter::CREDIT], # Array | category: ['inner_example'], # Array | diff --git a/docs/TransactionsLinkProduct.md b/docs/TransactionsLinkProduct.md index daf4987..70b88a3 100644 --- a/docs/TransactionsLinkProduct.md +++ b/docs/TransactionsLinkProduct.md @@ -10,7 +10,7 @@ | **error_message** | **String** | The error message, if the last attempt to refresh the product failed. | [optional] | | **unavailable** | **String** | If this product can't currently be updated, the reason why it is unavailable. <p>Unavailable products can't be refreshed, but past data, if any, is still accessible. | [optional] | | **settings** | [**TransactionsProductSettings**](TransactionsProductSettings.md) | | [optional] | -| **has_history** | **Boolean** | | | +| **has_history** | **Boolean** | DEPRECATED: No longer used as we fetch as much history as possible. | | ## Example diff --git a/docs/TransactionsProductSettings.md b/docs/TransactionsProductSettings.md index 521e94b..4f31f5f 100644 --- a/docs/TransactionsProductSettings.md +++ b/docs/TransactionsProductSettings.md @@ -8,7 +8,6 @@ | **require_permission** | **Boolean** | This flag matters only if `required` is false. For non-required products, the product permission is normally presented to the user as optional (granted by default, but the user may opt out). If this flag is true, however, the product permission will be presented in the UI as non-optional: the user's only choice is to grant the permission or to cancel the link. <p> Note that this field is ignored if `required` is true. Permission is always mandatory for required products. | [optional][default to false] | | **prefetch** | **Boolean** | If true, the data will be available as soon as possible after linking, even if `required` is false. If false, the data will be available after the first manual data refresh. | [optional][default to false] | | **reason** | **String** | A **brief** description of the reason your app wants this data. This description will follow the words \"...data is used to\", and will be displayed to the user when permission is requested. You should provide this field if your app does not request this product by default, or if you want to show a particular reason for requesting the product during this link session. | [optional] | -| **extend_history** | **Boolean** | If true, MoneyKit will attempt to fetch as much transaction history as possible. Not all institutions supply the same extent of transaction history. Generally, however, at least the past 30 days of transactions are available. | [optional][default to false] | ## Example @@ -19,8 +18,7 @@ instance = MoneyKit::TransactionsProductSettings.new( required: null, require_permission: null, prefetch: null, - reason: display your account balances, - extend_history: null + reason: display your account balances ) ``` diff --git a/docs/UsersApi.md b/docs/UsersApi.md index f0e9085..7c191a5 100644 --- a/docs/UsersApi.md +++ b/docs/UsersApi.md @@ -29,7 +29,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::UsersApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. opts = { account_ids: ['inner_example'], # Array | If present, filters results to accounts matching the given IDs. institution_ids: ['inner_example'] # Array | If present, filters results to accounts at institutions matching the given IDs. @@ -104,7 +104,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::UsersApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. begin # /users/{id}/links @@ -173,7 +173,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::UsersApi.new -id = 'MyUser1234' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. +id = 'id_example' # String | The unique ID for this user. This is the same ID provided in the call to /link-session to create any link for this user. opts = { transaction_type: [MoneyKit::TransactionTypeFilter::CREDIT], # Array | category: ['inner_example'], # Array | diff --git a/docs/WebhooksApi.md b/docs/WebhooksApi.md index aa8a62d..89341d6 100644 --- a/docs/WebhooksApi.md +++ b/docs/WebhooksApi.md @@ -25,7 +25,7 @@ MoneyKit.configure do |config| end api_instance = MoneyKit::WebhooksApi.new -id = 'mk_eqkWN34UEoa2NxyALG8pcV' # String | The unique ID for this link. +id = 'id_example' # String | The unique ID for this link. webhook_test_link_request = MoneyKit::WebhookTestLinkRequest.new({webhook_event: MoneyKit::WebhookLinkTestEvent::LINK_STATE_CHANGED, webhook_idempotency_key: 'webhook_idempotency_key_example'}) # WebhookTestLinkRequest | begin diff --git a/lib/moneykit.rb b/lib/moneykit.rb index 214b87f..e7e3684 100644 --- a/lib/moneykit.rb +++ b/lib/moneykit.rb @@ -24,8 +24,8 @@ require 'moneykit/models/account_balances' require 'moneykit/models/account_group' require 'moneykit/models/account_identity' -require 'moneykit/models/account_numbers' -require 'moneykit/models/account_with_account_numbers' +require 'moneykit/models/account_numbers_legacy20230218' +require 'moneykit/models/account_with_account_numbers_legacy20230218' require 'moneykit/models/ach_number' require 'moneykit/models/address' require 'moneykit/models/app_client_response' @@ -43,7 +43,7 @@ require 'moneykit/models/exchange_token_request' require 'moneykit/models/exchange_token_response' require 'moneykit/models/generate_access_token_response' -require 'moneykit/models/get_account_numbers_response' +require 'moneykit/models/get_account_numbers_response_legacy20230218' require 'moneykit/models/get_account_response' require 'moneykit/models/get_accounts_response' require 'moneykit/models/get_holdings_response' @@ -97,7 +97,7 @@ require 'moneykit/models/response401_disconnect_links_id_delete' require 'moneykit/models/response401_exchange_token_link_session_exchange_token_post' require 'moneykit/models/response401_get_account_links_id_accounts_account_id_get' -require 'moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get' +require 'moneykit/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get' require 'moneykit/models/response401_get_accounts_links_id_accounts_get' require 'moneykit/models/response401_get_holdings_links_id_investments_holdings_get' require 'moneykit/models/response401_get_identities_links_id_identity_get' diff --git a/lib/moneykit/api/account_numbers_api.rb b/lib/moneykit/api/account_numbers_api.rb index a897d3e..62902c2 100644 --- a/lib/moneykit/api/account_numbers_api.rb +++ b/lib/moneykit/api/account_numbers_api.rb @@ -23,9 +23,9 @@ def initialize(api_client = ApiClient.default) # Returns a list of open, permissioned accounts associated with a link, including full account and routing numbers for appropriate accounts (such as checking and savings accounts).

**Note** that this endpoint does **not** trigger a fetch of account numbers from the institution; it merely returns account numbers that have already been fetched, either because `prefetch` was requested when the link was created, or because of an on-demand update. **To force a check for new/updated account numbers, you must use the /products endpoint.**

If you have requested prefetch or an on-demand update, you should check the `refreshed_at` date for this product in the returned response, and compare that against the previous `refreshed_at` date, which you can get from any previous response for this or any other account or link request. If the refreshed_at date has not increased, then updated data is not yet available. # @param id [String] The unique ID for this link. # @param [Hash] opts the optional parameters - # @return [GetAccountNumbersResponse] - def get_account_numbers(id, opts = {}) - data, _status_code, _headers = get_account_numbers_with_http_info(id, opts) + # @return [GetAccountNumbersResponseLegacy20230218] + def get_account_numbers_legacy20230218(id, opts = {}) + data, _status_code, _headers = get_account_numbers_legacy20230218_with_http_info(id, opts) data end @@ -33,14 +33,14 @@ def get_account_numbers(id, opts = {}) # Returns a list of open, permissioned accounts associated with a <a href=#tag/Links>link</a>, including full account and routing numbers for appropriate accounts (such as checking and savings accounts). <p>**Note** that this endpoint does **not** trigger a fetch of account numbers from the institution; it merely returns account numbers that have already been fetched, either because `prefetch` was requested when the link was created, or because of an on-demand update. **To force a check for new/updated account numbers, you must use the <a href=#operation/refresh_products>/products</a> endpoint.** <p>If you have requested prefetch or an on-demand update, you should check the `refreshed_at` date for this product in the returned response, and compare that against the previous `refreshed_at` date, which you can get from any previous response for this or any other account or link request. If the refreshed_at date has not increased, then updated data is not yet available. # @param id [String] The unique ID for this link. # @param [Hash] opts the optional parameters - # @return [Array<(GetAccountNumbersResponse, Integer, Hash)>] GetAccountNumbersResponse data, response status code and response headers - def get_account_numbers_with_http_info(id, opts = {}) + # @return [Array<(GetAccountNumbersResponseLegacy20230218, Integer, Hash)>] GetAccountNumbersResponseLegacy20230218 data, response status code and response headers + def get_account_numbers_legacy20230218_with_http_info(id, opts = {}) if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountNumbersApi.get_account_numbers ...' + @api_client.config.logger.debug 'Calling API: AccountNumbersApi.get_account_numbers_legacy20230218 ...' end # verify the required parameter 'id' is set if @api_client.config.client_side_validation && id.nil? - fail ArgumentError, "Missing the required parameter 'id' when calling AccountNumbersApi.get_account_numbers" + fail ArgumentError, "Missing the required parameter 'id' when calling AccountNumbersApi.get_account_numbers_legacy20230218" end # resource path local_var_path = '/links/{id}/accounts/numbers'.sub('{' + 'id' + '}', CGI.escape(id.to_s)) @@ -60,13 +60,13 @@ def get_account_numbers_with_http_info(id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'GetAccountNumbersResponse' + return_type = opts[:debug_return_type] || 'GetAccountNumbersResponseLegacy20230218' # auth_names auth_names = opts[:debug_auth_names] || ['OAuth2ClientCredentials'] new_options = opts.merge( - :operation => :"AccountNumbersApi.get_account_numbers", + :operation => :"AccountNumbersApi.get_account_numbers_legacy20230218", :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -77,7 +77,7 @@ def get_account_numbers_with_http_info(id, opts = {}) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountNumbersApi#get_account_numbers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AccountNumbersApi#get_account_numbers_legacy20230218\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end diff --git a/lib/moneykit/api/accounts_api.rb b/lib/moneykit/api/accounts_api.rb index 7867e28..989051d 100644 --- a/lib/moneykit/api/accounts_api.rb +++ b/lib/moneykit/api/accounts_api.rb @@ -92,9 +92,9 @@ def get_account_with_http_info(id, account_id, opts = {}) # Returns a list of open, permissioned accounts associated with a link, including full account and routing numbers for appropriate accounts (such as checking and savings accounts).

**Note** that this endpoint does **not** trigger a fetch of account numbers from the institution; it merely returns account numbers that have already been fetched, either because `prefetch` was requested when the link was created, or because of an on-demand update. **To force a check for new/updated account numbers, you must use the /products endpoint.**

If you have requested prefetch or an on-demand update, you should check the `refreshed_at` date for this product in the returned response, and compare that against the previous `refreshed_at` date, which you can get from any previous response for this or any other account or link request. If the refreshed_at date has not increased, then updated data is not yet available. # @param id [String] The unique ID for this link. # @param [Hash] opts the optional parameters - # @return [GetAccountNumbersResponse] - def get_account_numbers(id, opts = {}) - data, _status_code, _headers = get_account_numbers_with_http_info(id, opts) + # @return [GetAccountNumbersResponseLegacy20230218] + def get_account_numbers_legacy20230218(id, opts = {}) + data, _status_code, _headers = get_account_numbers_legacy20230218_with_http_info(id, opts) data end @@ -102,14 +102,14 @@ def get_account_numbers(id, opts = {}) # Returns a list of open, permissioned accounts associated with a <a href=#tag/Links>link</a>, including full account and routing numbers for appropriate accounts (such as checking and savings accounts). <p>**Note** that this endpoint does **not** trigger a fetch of account numbers from the institution; it merely returns account numbers that have already been fetched, either because `prefetch` was requested when the link was created, or because of an on-demand update. **To force a check for new/updated account numbers, you must use the <a href=#operation/refresh_products>/products</a> endpoint.** <p>If you have requested prefetch or an on-demand update, you should check the `refreshed_at` date for this product in the returned response, and compare that against the previous `refreshed_at` date, which you can get from any previous response for this or any other account or link request. If the refreshed_at date has not increased, then updated data is not yet available. # @param id [String] The unique ID for this link. # @param [Hash] opts the optional parameters - # @return [Array<(GetAccountNumbersResponse, Integer, Hash)>] GetAccountNumbersResponse data, response status code and response headers - def get_account_numbers_with_http_info(id, opts = {}) + # @return [Array<(GetAccountNumbersResponseLegacy20230218, Integer, Hash)>] GetAccountNumbersResponseLegacy20230218 data, response status code and response headers + def get_account_numbers_legacy20230218_with_http_info(id, opts = {}) if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountsApi.get_account_numbers ...' + @api_client.config.logger.debug 'Calling API: AccountsApi.get_account_numbers_legacy20230218 ...' end # verify the required parameter 'id' is set if @api_client.config.client_side_validation && id.nil? - fail ArgumentError, "Missing the required parameter 'id' when calling AccountsApi.get_account_numbers" + fail ArgumentError, "Missing the required parameter 'id' when calling AccountsApi.get_account_numbers_legacy20230218" end # resource path local_var_path = '/links/{id}/accounts/numbers'.sub('{' + 'id' + '}', CGI.escape(id.to_s)) @@ -129,13 +129,13 @@ def get_account_numbers_with_http_info(id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'GetAccountNumbersResponse' + return_type = opts[:debug_return_type] || 'GetAccountNumbersResponseLegacy20230218' # auth_names auth_names = opts[:debug_auth_names] || ['OAuth2ClientCredentials'] new_options = opts.merge( - :operation => :"AccountsApi.get_account_numbers", + :operation => :"AccountsApi.get_account_numbers_legacy20230218", :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -146,7 +146,7 @@ def get_account_numbers_with_http_info(id, opts = {}) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountsApi#get_account_numbers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AccountsApi#get_account_numbers_legacy20230218\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end diff --git a/lib/moneykit/models/account_numbers_legacy20230218.rb b/lib/moneykit/models/account_numbers_legacy20230218.rb new file mode 100644 index 0000000..566177e --- /dev/null +++ b/lib/moneykit/models/account_numbers_legacy20230218.rb @@ -0,0 +1,275 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'date' +require 'time' + +module MoneyKit + class AccountNumbersLegacy20230218 + attr_accessor :ach + + attr_accessor :bacs + + attr_accessor :eft + + attr_accessor :international + + # Attribute mapping from ruby-style variable name to JSON key. + def self.attribute_map + { + :'ach' => :'ach', + :'bacs' => :'bacs', + :'eft' => :'eft', + :'international' => :'international' + } + end + + # Returns all the JSON keys this model knows about + def self.acceptable_attributes + attribute_map.values + end + + # Attribute type mapping. + def self.openapi_types + { + :'ach' => :'Array', + :'bacs' => :'Array', + :'eft' => :'Array', + :'international' => :'Array' + } + end + + # List of attributes with nullable: true + def self.openapi_nullable + Set.new([ + ]) + end + + # Initializes the object + # @param [Hash] attributes Model attributes in the form of hash + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::AccountNumbersLegacy20230218` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::AccountNumbersLegacy20230218`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'ach') + if (value = attributes[:'ach']).is_a?(Array) + self.ach = value + end + else + self.ach = nil + end + + if attributes.key?(:'bacs') + if (value = attributes[:'bacs']).is_a?(Array) + self.bacs = value + end + else + self.bacs = nil + end + + if attributes.key?(:'eft') + if (value = attributes[:'eft']).is_a?(Array) + self.eft = value + end + else + self.eft = nil + end + + if attributes.key?(:'international') + if (value = attributes[:'international']).is_a?(Array) + self.international = value + end + else + self.international = nil + end + end + + # Show invalid properties with the reasons. Usually used together with valid? + # @return Array for valid properties with the reasons + def list_invalid_properties + warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' + invalid_properties = Array.new + if @ach.nil? + invalid_properties.push('invalid value for "ach", ach cannot be nil.') + end + + if @bacs.nil? + invalid_properties.push('invalid value for "bacs", bacs cannot be nil.') + end + + if @eft.nil? + invalid_properties.push('invalid value for "eft", eft cannot be nil.') + end + + if @international.nil? + invalid_properties.push('invalid value for "international", international cannot be nil.') + end + + invalid_properties + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + def valid? + warn '[DEPRECATED] the `valid?` method is obsolete' + return false if @ach.nil? + return false if @bacs.nil? + return false if @eft.nil? + return false if @international.nil? + true + end + + # Checks equality by comparing each attribute. + # @param [Object] Object to be compared + def ==(o) + return true if self.equal?(o) + self.class == o.class && + ach == o.ach && + bacs == o.bacs && + eft == o.eft && + international == o.international + end + + # @see the `==` method + # @param [Object] Object to be compared + def eql?(o) + self == o + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + def hash + [ach, bacs, eft, international].hash + end + + # Builds the object from hash + # @param [Hash] attributes Model attributes in the form of hash + # @return [Object] Returns the model itself + def self.build_from_hash(attributes) + return nil unless attributes.is_a?(Hash) + attributes = attributes.transform_keys(&:to_sym) + transformed_hash = {} + openapi_types.each_pair do |key, type| + if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = nil + elsif type =~ /\AArray<(.*)>/i + # check to ensure the input is an array given that the attribute + # is documented as an array but the input is not + if attributes[attribute_map[key]].is_a?(Array) + transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } + end + elsif !attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) + end + end + new(transformed_hash) + end + + # Deserializes the data based on type + # @param string type Data type + # @param string value Value to be deserialized + # @return [Object] Deserialized data + def self._deserialize(type, value) + case type.to_sym + when :Time + Time.parse(value) + when :Date + Date.parse(value) + when :String + value.to_s + when :Integer + value.to_i + when :Float + value.to_f + when :Boolean + if value.to_s =~ /\A(true|t|yes|y|1)\z/i + true + else + false + end + when :Object + # generic object (usually a Hash), return directly + value + when /\AArray<(?.+)>\z/ + inner_type = Regexp.last_match[:inner_type] + value.map { |v| _deserialize(inner_type, v) } + when /\AHash<(?.+?), (?.+)>\z/ + k_type = Regexp.last_match[:k_type] + v_type = Regexp.last_match[:v_type] + {}.tap do |hash| + value.each do |k, v| + hash[_deserialize(k_type, k)] = _deserialize(v_type, v) + end + end + else # model + # models (e.g. Pet) or oneOf + klass = MoneyKit.const_get(type) + klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) + end + end + + # Returns the string representation of the object + # @return [String] String presentation of the object + def to_s + to_hash.to_s + end + + # to_body is an alias to to_hash (backward compatibility) + # @return [Hash] Returns the object in the form of hash + def to_body + to_hash + end + + # Returns the object in the form of hash + # @return [Hash] Returns the object in the form of hash + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + hash + end + + # Outputs non-array value in the form of hash + # For object, use to_hash. Otherwise, just return the value + # @param [Object] value Any valid value + # @return [Hash] Returns the value in the form of hash + def _to_hash(value) + if value.is_a?(Array) + value.compact.map { |v| _to_hash(v) } + elsif value.is_a?(Hash) + {}.tap do |hash| + value.each { |k, v| hash[k] = _to_hash(v) } + end + elsif value.respond_to? :to_hash + value.to_hash + else + value + end + end + end +end diff --git a/lib/moneykit/models/account_with_account_numbers_legacy20230218.rb b/lib/moneykit/models/account_with_account_numbers_legacy20230218.rb new file mode 100644 index 0000000..26ec1bb --- /dev/null +++ b/lib/moneykit/models/account_with_account_numbers_legacy20230218.rb @@ -0,0 +1,296 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'date' +require 'time' + +module MoneyKit + class AccountWithAccountNumbersLegacy20230218 + # MoneyKit's unique ID for the account.

The `account_id` is distinct from the institution's account number. For accounts that may change account numbers from time to time, such as credit cards, MoneyKit attempts to keep the `account_id` constant. However, if MoneyKit can't reconcile the new account data with the old data, the `account_id` may change. + attr_accessor :account_id + + # See Account Types for an explanation of account types. Account types are dot-prefixed with one of `depository`, `investment`, `liability`, or `other`; or the value is `unknown`.

**Balances for `liability` accounts are reversed:** negative balances (the amount owed) are reported as positive values. For all other types of accounts, a negative balance indicates the amount owed. + attr_accessor :account_type + + # The account name, according to the institution. Note that some institutions allow the end user to nickname the account; in such cases this field may be the name assigned by the user. + attr_accessor :name + + # The last four characters (usually digits) of the account number. Note that this mask may be non-unique between accounts. + attr_accessor :account_mask + + attr_accessor :balances + + attr_accessor :numbers + + # Attribute mapping from ruby-style variable name to JSON key. + def self.attribute_map + { + :'account_id' => :'account_id', + :'account_type' => :'account_type', + :'name' => :'name', + :'account_mask' => :'account_mask', + :'balances' => :'balances', + :'numbers' => :'numbers' + } + end + + # Returns all the JSON keys this model knows about + def self.acceptable_attributes + attribute_map.values + end + + # Attribute type mapping. + def self.openapi_types + { + :'account_id' => :'String', + :'account_type' => :'String', + :'name' => :'String', + :'account_mask' => :'String', + :'balances' => :'AccountBalances', + :'numbers' => :'AccountNumbersLegacy20230218' + } + end + + # List of attributes with nullable: true + def self.openapi_nullable + Set.new([ + ]) + end + + # Initializes the object + # @param [Hash] attributes Model attributes in the form of hash + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::AccountWithAccountNumbersLegacy20230218` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::AccountWithAccountNumbersLegacy20230218`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'account_id') + self.account_id = attributes[:'account_id'] + else + self.account_id = nil + end + + if attributes.key?(:'account_type') + self.account_type = attributes[:'account_type'] + else + self.account_type = nil + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + else + self.name = nil + end + + if attributes.key?(:'account_mask') + self.account_mask = attributes[:'account_mask'] + end + + if attributes.key?(:'balances') + self.balances = attributes[:'balances'] + else + self.balances = nil + end + + if attributes.key?(:'numbers') + self.numbers = attributes[:'numbers'] + else + self.numbers = nil + end + end + + # Show invalid properties with the reasons. Usually used together with valid? + # @return Array for valid properties with the reasons + def list_invalid_properties + warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' + invalid_properties = Array.new + if @account_id.nil? + invalid_properties.push('invalid value for "account_id", account_id cannot be nil.') + end + + if @account_type.nil? + invalid_properties.push('invalid value for "account_type", account_type cannot be nil.') + end + + if @name.nil? + invalid_properties.push('invalid value for "name", name cannot be nil.') + end + + if @balances.nil? + invalid_properties.push('invalid value for "balances", balances cannot be nil.') + end + + if @numbers.nil? + invalid_properties.push('invalid value for "numbers", numbers cannot be nil.') + end + + invalid_properties + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + def valid? + warn '[DEPRECATED] the `valid?` method is obsolete' + return false if @account_id.nil? + return false if @account_type.nil? + return false if @name.nil? + return false if @balances.nil? + return false if @numbers.nil? + true + end + + # Checks equality by comparing each attribute. + # @param [Object] Object to be compared + def ==(o) + return true if self.equal?(o) + self.class == o.class && + account_id == o.account_id && + account_type == o.account_type && + name == o.name && + account_mask == o.account_mask && + balances == o.balances && + numbers == o.numbers + end + + # @see the `==` method + # @param [Object] Object to be compared + def eql?(o) + self == o + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + def hash + [account_id, account_type, name, account_mask, balances, numbers].hash + end + + # Builds the object from hash + # @param [Hash] attributes Model attributes in the form of hash + # @return [Object] Returns the model itself + def self.build_from_hash(attributes) + return nil unless attributes.is_a?(Hash) + attributes = attributes.transform_keys(&:to_sym) + transformed_hash = {} + openapi_types.each_pair do |key, type| + if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = nil + elsif type =~ /\AArray<(.*)>/i + # check to ensure the input is an array given that the attribute + # is documented as an array but the input is not + if attributes[attribute_map[key]].is_a?(Array) + transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } + end + elsif !attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) + end + end + new(transformed_hash) + end + + # Deserializes the data based on type + # @param string type Data type + # @param string value Value to be deserialized + # @return [Object] Deserialized data + def self._deserialize(type, value) + case type.to_sym + when :Time + Time.parse(value) + when :Date + Date.parse(value) + when :String + value.to_s + when :Integer + value.to_i + when :Float + value.to_f + when :Boolean + if value.to_s =~ /\A(true|t|yes|y|1)\z/i + true + else + false + end + when :Object + # generic object (usually a Hash), return directly + value + when /\AArray<(?.+)>\z/ + inner_type = Regexp.last_match[:inner_type] + value.map { |v| _deserialize(inner_type, v) } + when /\AHash<(?.+?), (?.+)>\z/ + k_type = Regexp.last_match[:k_type] + v_type = Regexp.last_match[:v_type] + {}.tap do |hash| + value.each do |k, v| + hash[_deserialize(k_type, k)] = _deserialize(v_type, v) + end + end + else # model + # models (e.g. Pet) or oneOf + klass = MoneyKit.const_get(type) + klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) + end + end + + # Returns the string representation of the object + # @return [String] String presentation of the object + def to_s + to_hash.to_s + end + + # to_body is an alias to to_hash (backward compatibility) + # @return [Hash] Returns the object in the form of hash + def to_body + to_hash + end + + # Returns the object in the form of hash + # @return [Hash] Returns the object in the form of hash + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + hash + end + + # Outputs non-array value in the form of hash + # For object, use to_hash. Otherwise, just return the value + # @param [Object] value Any valid value + # @return [Hash] Returns the value in the form of hash + def _to_hash(value) + if value.is_a?(Array) + value.compact.map { |v| _to_hash(v) } + elsif value.is_a?(Hash) + {}.tap do |hash| + value.each { |k, v| hash[k] = _to_hash(v) } + end + elsif value.respond_to? :to_hash + value.to_hash + else + value + end + end + end +end diff --git a/lib/moneykit/models/get_account_numbers_response_legacy20230218.rb b/lib/moneykit/models/get_account_numbers_response_legacy20230218.rb new file mode 100644 index 0000000..2e4846e --- /dev/null +++ b/lib/moneykit/models/get_account_numbers_response_legacy20230218.rb @@ -0,0 +1,237 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'date' +require 'time' + +module MoneyKit + class GetAccountNumbersResponseLegacy20230218 + attr_accessor :accounts + + attr_accessor :link + + # Attribute mapping from ruby-style variable name to JSON key. + def self.attribute_map + { + :'accounts' => :'accounts', + :'link' => :'link' + } + end + + # Returns all the JSON keys this model knows about + def self.acceptable_attributes + attribute_map.values + end + + # Attribute type mapping. + def self.openapi_types + { + :'accounts' => :'Array', + :'link' => :'LinkCommon' + } + end + + # List of attributes with nullable: true + def self.openapi_nullable + Set.new([ + ]) + end + + # Initializes the object + # @param [Hash] attributes Model attributes in the form of hash + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::GetAccountNumbersResponseLegacy20230218` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::GetAccountNumbersResponseLegacy20230218`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'accounts') + if (value = attributes[:'accounts']).is_a?(Array) + self.accounts = value + end + else + self.accounts = nil + end + + if attributes.key?(:'link') + self.link = attributes[:'link'] + else + self.link = nil + end + end + + # Show invalid properties with the reasons. Usually used together with valid? + # @return Array for valid properties with the reasons + def list_invalid_properties + warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' + invalid_properties = Array.new + if @accounts.nil? + invalid_properties.push('invalid value for "accounts", accounts cannot be nil.') + end + + if @link.nil? + invalid_properties.push('invalid value for "link", link cannot be nil.') + end + + invalid_properties + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + def valid? + warn '[DEPRECATED] the `valid?` method is obsolete' + return false if @accounts.nil? + return false if @link.nil? + true + end + + # Checks equality by comparing each attribute. + # @param [Object] Object to be compared + def ==(o) + return true if self.equal?(o) + self.class == o.class && + accounts == o.accounts && + link == o.link + end + + # @see the `==` method + # @param [Object] Object to be compared + def eql?(o) + self == o + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + def hash + [accounts, link].hash + end + + # Builds the object from hash + # @param [Hash] attributes Model attributes in the form of hash + # @return [Object] Returns the model itself + def self.build_from_hash(attributes) + return nil unless attributes.is_a?(Hash) + attributes = attributes.transform_keys(&:to_sym) + transformed_hash = {} + openapi_types.each_pair do |key, type| + if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = nil + elsif type =~ /\AArray<(.*)>/i + # check to ensure the input is an array given that the attribute + # is documented as an array but the input is not + if attributes[attribute_map[key]].is_a?(Array) + transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } + end + elsif !attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) + end + end + new(transformed_hash) + end + + # Deserializes the data based on type + # @param string type Data type + # @param string value Value to be deserialized + # @return [Object] Deserialized data + def self._deserialize(type, value) + case type.to_sym + when :Time + Time.parse(value) + when :Date + Date.parse(value) + when :String + value.to_s + when :Integer + value.to_i + when :Float + value.to_f + when :Boolean + if value.to_s =~ /\A(true|t|yes|y|1)\z/i + true + else + false + end + when :Object + # generic object (usually a Hash), return directly + value + when /\AArray<(?.+)>\z/ + inner_type = Regexp.last_match[:inner_type] + value.map { |v| _deserialize(inner_type, v) } + when /\AHash<(?.+?), (?.+)>\z/ + k_type = Regexp.last_match[:k_type] + v_type = Regexp.last_match[:v_type] + {}.tap do |hash| + value.each do |k, v| + hash[_deserialize(k_type, k)] = _deserialize(v_type, v) + end + end + else # model + # models (e.g. Pet) or oneOf + klass = MoneyKit.const_get(type) + klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) + end + end + + # Returns the string representation of the object + # @return [String] String presentation of the object + def to_s + to_hash.to_s + end + + # to_body is an alias to to_hash (backward compatibility) + # @return [Hash] Returns the object in the form of hash + def to_body + to_hash + end + + # Returns the object in the form of hash + # @return [Hash] Returns the object in the form of hash + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + hash + end + + # Outputs non-array value in the form of hash + # For object, use to_hash. Otherwise, just return the value + # @param [Object] value Any valid value + # @return [Hash] Returns the value in the form of hash + def _to_hash(value) + if value.is_a?(Array) + value.compact.map { |v| _to_hash(v) } + elsif value.is_a?(Hash) + {}.tap do |hash| + value.each { |k, v| hash[k] = _to_hash(v) } + end + elsif value.respond_to? :to_hash + value.to_hash + else + value + end + end + end +end diff --git a/lib/moneykit/models/link_product_failure_reasons.rb b/lib/moneykit/models/link_product_failure_reasons.rb index 0bb26c1..ffa0745 100644 --- a/lib/moneykit/models/link_product_failure_reasons.rb +++ b/lib/moneykit/models/link_product_failure_reasons.rb @@ -22,9 +22,10 @@ class LinkProductFailureReasons TIMEOUT = "timeout".freeze UNKNOWN = "unknown".freeze NO_ACCOUNTS = "no_accounts".freeze + INSTITUTION_ERROR = "institution_error".freeze def self.all_vars - @all_vars ||= [RATE_LIMIT, AUTH_EXPIRED, INVALID_CREDENTIALS, NOT_SUPPORTED, TIMEOUT, UNKNOWN, NO_ACCOUNTS].freeze + @all_vars ||= [RATE_LIMIT, AUTH_EXPIRED, INVALID_CREDENTIALS, NOT_SUPPORTED, TIMEOUT, UNKNOWN, NO_ACCOUNTS, INSTITUTION_ERROR].freeze end # Builds the enum from string diff --git a/lib/moneykit/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get.rb b/lib/moneykit/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get.rb new file mode 100644 index 0000000..c07bdcc --- /dev/null +++ b/lib/moneykit/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get.rb @@ -0,0 +1,104 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'date' +require 'time' + +module MoneyKit + module Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet + class << self + # List of class defined in anyOf (OpenAPI v3) + def openapi_any_of + [ + :'APIErrorAuthExpiredAccessTokenResponse', + :'APIErrorAuthUnauthorizedResponse', + :'LinkErrorUnauthorizedAccessResponse' + ] + end + + # Builds the object + # @param [Mixed] Data to be matched against the list of anyOf items + # @return [Object] Returns the model or the data itself + def build(data) + # Go through the list of anyOf items and attempt to identify the appropriate one. + # Note: + # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) + # due to the way the deserialization is made in the base_object template (it just casts without verifying). + # - TODO: scalar values are de facto behaving as if they were nullable. + # - TODO: logging when debugging is set. + openapi_any_of.each do |klass| + begin + next if klass == :AnyType # "nullable: true" + typed_data = find_and_cast_into_type(klass, data) + return typed_data if typed_data + rescue # rescue all errors so we keep iterating even if the current item lookup raises + end + end + + openapi_any_of.include?(:AnyType) ? data : nil + end + + private + + SchemaMismatchError = Class.new(StandardError) + + # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse. + def find_and_cast_into_type(klass, data) + return if data.nil? + + case klass.to_s + when 'Boolean' + return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass) + when 'Float' + return data if data.instance_of?(Float) + when 'Integer' + return data if data.instance_of?(Integer) + when 'Time' + return Time.parse(data) + when 'Date' + return Date.parse(data) + when 'String' + return data if data.instance_of?(String) + when 'Object' # "type: object" + return data if data.instance_of?(Hash) + when /\AArray<(?.+)>\z/ # "type: array" + if data.instance_of?(Array) + sub_type = Regexp.last_match[:sub_type] + return data.map { |item| find_and_cast_into_type(sub_type, item) } + end + when /\AHash.+)>\z/ # "type: object" with "additionalProperties: { ... }" + if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) } + sub_type = Regexp.last_match[:sub_type] + return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) } + end + else # model + const = MoneyKit.const_get(klass) + if const + if const.respond_to?(:openapi_any_of) # nested anyOf model + model = const.build(data) + return model if model + else + # raise if data contains keys that are not known to the model + raise unless (data.keys - const.acceptable_attributes).empty? + model = const.build_from_hash(data) + return model if model + end + end + end + + raise # if no match by now, raise + rescue + raise SchemaMismatchError, "#{data} doesn't match the #{klass} type" + end + end + end +end diff --git a/lib/moneykit/models/transactions_link_product.rb b/lib/moneykit/models/transactions_link_product.rb index a0e989c..32587bd 100644 --- a/lib/moneykit/models/transactions_link_product.rb +++ b/lib/moneykit/models/transactions_link_product.rb @@ -31,6 +31,7 @@ class TransactionsLinkProduct attr_accessor :settings + # DEPRECATED: No longer used as we fetch as much history as possible. attr_accessor :has_history class EnumAttributeValidator diff --git a/lib/moneykit/models/transactions_product_settings.rb b/lib/moneykit/models/transactions_product_settings.rb index dc40655..66a7d9f 100644 --- a/lib/moneykit/models/transactions_product_settings.rb +++ b/lib/moneykit/models/transactions_product_settings.rb @@ -27,17 +27,13 @@ class TransactionsProductSettings # A **brief** description of the reason your app wants this data. This description will follow the words \"...data is used to\", and will be displayed to the user when permission is requested. You should provide this field if your app does not request this product by default, or if you want to show a particular reason for requesting the product during this link session. attr_accessor :reason - # If true, MoneyKit will attempt to fetch as much transaction history as possible. Not all institutions supply the same extent of transaction history. Generally, however, at least the past 30 days of transactions are available. - attr_accessor :extend_history - # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'required' => :'required', :'require_permission' => :'require_permission', :'prefetch' => :'prefetch', - :'reason' => :'reason', - :'extend_history' => :'extend_history' + :'reason' => :'reason' } end @@ -52,8 +48,7 @@ def self.openapi_types :'required' => :'Boolean', :'require_permission' => :'Boolean', :'prefetch' => :'Boolean', - :'reason' => :'String', - :'extend_history' => :'Boolean' + :'reason' => :'String' } end @@ -99,12 +94,6 @@ def initialize(attributes = {}) if attributes.key?(:'reason') self.reason = attributes[:'reason'] end - - if attributes.key?(:'extend_history') - self.extend_history = attributes[:'extend_history'] - else - self.extend_history = false - end end # Show invalid properties with the reasons. Usually used together with valid? @@ -130,8 +119,7 @@ def ==(o) required == o.required && require_permission == o.require_permission && prefetch == o.prefetch && - reason == o.reason && - extend_history == o.extend_history + reason == o.reason end # @see the `==` method @@ -143,7 +131,7 @@ def eql?(o) # Calculates hash code according to all attributes. # @return [Integer] Hash code def hash - [required, require_permission, prefetch, reason, extend_history].hash + [required, require_permission, prefetch, reason].hash end # Builds the object from hash diff --git a/spec/models/account_numbers_legacy20230218_spec.rb b/spec/models/account_numbers_legacy20230218_spec.rb new file mode 100644 index 0000000..d95b498 --- /dev/null +++ b/spec/models/account_numbers_legacy20230218_spec.rb @@ -0,0 +1,54 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'spec_helper' +require 'json' +require 'date' + +# Unit tests for MoneyKit::AccountNumbersLegacy20230218 +# Automatically generated by openapi-generator (https://openapi-generator.tech) +# Please update as you see appropriate +describe MoneyKit::AccountNumbersLegacy20230218 do + let(:instance) { MoneyKit::AccountNumbersLegacy20230218.new } + + describe 'test an instance of AccountNumbersLegacy20230218' do + it 'should create an instance of AccountNumbersLegacy20230218' do + # uncomment below to test the instance creation + # expect(instance).to be_instance_of(MoneyKit::AccountNumbersLegacy20230218) + end + end + + describe 'test attribute "ach"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "bacs"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "eft"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "international"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + +end diff --git a/spec/models/account_with_account_numbers_legacy20230218_spec.rb b/spec/models/account_with_account_numbers_legacy20230218_spec.rb new file mode 100644 index 0000000..08402ce --- /dev/null +++ b/spec/models/account_with_account_numbers_legacy20230218_spec.rb @@ -0,0 +1,66 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'spec_helper' +require 'json' +require 'date' + +# Unit tests for MoneyKit::AccountWithAccountNumbersLegacy20230218 +# Automatically generated by openapi-generator (https://openapi-generator.tech) +# Please update as you see appropriate +describe MoneyKit::AccountWithAccountNumbersLegacy20230218 do + let(:instance) { MoneyKit::AccountWithAccountNumbersLegacy20230218.new } + + describe 'test an instance of AccountWithAccountNumbersLegacy20230218' do + it 'should create an instance of AccountWithAccountNumbersLegacy20230218' do + # uncomment below to test the instance creation + # expect(instance).to be_instance_of(MoneyKit::AccountWithAccountNumbersLegacy20230218) + end + end + + describe 'test attribute "account_id"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "account_type"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "name"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "account_mask"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "balances"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "numbers"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + +end diff --git a/spec/models/get_account_numbers_response_legacy20230218_spec.rb b/spec/models/get_account_numbers_response_legacy20230218_spec.rb new file mode 100644 index 0000000..3d4e167 --- /dev/null +++ b/spec/models/get_account_numbers_response_legacy20230218_spec.rb @@ -0,0 +1,42 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'spec_helper' +require 'json' +require 'date' + +# Unit tests for MoneyKit::GetAccountNumbersResponseLegacy20230218 +# Automatically generated by openapi-generator (https://openapi-generator.tech) +# Please update as you see appropriate +describe MoneyKit::GetAccountNumbersResponseLegacy20230218 do + let(:instance) { MoneyKit::GetAccountNumbersResponseLegacy20230218.new } + + describe 'test an instance of GetAccountNumbersResponseLegacy20230218' do + it 'should create an instance of GetAccountNumbersResponseLegacy20230218' do + # uncomment below to test the instance creation + # expect(instance).to be_instance_of(MoneyKit::GetAccountNumbersResponseLegacy20230218) + end + end + + describe 'test attribute "accounts"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + + describe 'test attribute "link"' do + it 'should work' do + # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/ + end + end + +end diff --git a/spec/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get_spec.rb b/spec/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get_spec.rb new file mode 100644 index 0000000..b67207f --- /dev/null +++ b/spec/models/response401_get_account_numbers_legacy20230218_links_id_accounts_numbers_get_spec.rb @@ -0,0 +1,21 @@ +=begin +#MoneyKit API + +#No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + +The version of the OpenAPI document: 2023-02-18 + +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 7.1.0 + +=end + +require 'spec_helper' +require 'json' +require 'date' + +# Unit tests for MoneyKit::Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet +# Automatically generated by openapi-generator (https://openapi-generator.tech) +# Please update as you see appropriate +describe MoneyKit::Response401GetAccountNumbersLegacy20230218LinksIdAccountsNumbersGet do +end