ynab 1.29.0 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/DEVELOPMENT.md +11 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +42 -0
- data/README.md +6 -6
- data/Rakefile +58 -0
- data/config.json +9 -0
- data/docs/Account.md +25 -0
- data/docs/AccountResponse.md +8 -0
- data/docs/AccountResponseData.md +8 -0
- data/docs/AccountType.md +7 -0
- data/docs/AccountWrapper.md +8 -0
- data/docs/AccountsApi.md +70 -0
- data/docs/AccountsResponse.md +8 -0
- data/docs/AccountsResponseData.md +9 -0
- data/docs/AccountsWrapper.md +9 -0
- data/docs/BudgetDetail.md +24 -0
- data/docs/BudgetDetailAllOf.md +17 -0
- data/docs/BudgetDetailResponse.md +8 -0
- data/docs/BudgetDetailResponseData.md +9 -0
- data/docs/BudgetDetailWrapper.md +9 -0
- data/docs/BudgetSettings.md +9 -0
- data/docs/BudgetSettingsResponse.md +8 -0
- data/docs/BudgetSettingsResponseData.md +8 -0
- data/docs/BudgetSettingsWrapper.md +8 -0
- data/docs/BudgetSummary.md +15 -0
- data/docs/BudgetSummaryResponse.md +8 -0
- data/docs/BudgetSummaryResponseData.md +9 -0
- data/docs/BudgetSummaryWrapper.md +9 -0
- data/docs/BudgetsApi.md +68 -0
- data/docs/BulkIdWrapper.md +8 -0
- data/docs/BulkIds.md +9 -0
- data/docs/BulkResponse.md +8 -0
- data/docs/BulkResponseData.md +8 -0
- data/docs/BulkResponseDataBulk.md +9 -0
- data/docs/BulkTransactionCreateResponse.md +8 -0
- data/docs/BulkTransactionIds.md +8 -0
- data/docs/BulkTransactions.md +8 -0
- data/docs/CategoriesApi.md +94 -0
- data/docs/CategoriesResponse.md +8 -0
- data/docs/CategoriesResponseData.md +9 -0
- data/docs/Category.md +30 -0
- data/docs/CategoryGroup.md +11 -0
- data/docs/CategoryGroupWithCategories.md +12 -0
- data/docs/CategoryGroupWithCategoriesAllOf.md +8 -0
- data/docs/CategoryGroupsWrapper.md +9 -0
- data/docs/CategoryResponse.md +8 -0
- data/docs/CategoryResponseData.md +8 -0
- data/docs/CategoryWrapper.md +9 -0
- data/docs/CurrencyFormat.md +15 -0
- data/docs/DateFormat.md +8 -0
- data/docs/DeprecatedApi.md +28 -0
- data/docs/ErrorDetail.md +10 -0
- data/docs/ErrorResponse.md +8 -0
- data/docs/HybridTransaction.md +30 -0
- data/docs/HybridTransactionAllOf.md +12 -0
- data/docs/HybridTransactionsResponse.md +8 -0
- data/docs/HybridTransactionsResponseData.md +9 -0
- data/docs/HybridTransactionsWrapper.md +8 -0
- data/docs/LoanAccountPeriodicValue.md +7 -0
- data/docs/MonthDetail.md +16 -0
- data/docs/MonthDetailAllOf.md +8 -0
- data/docs/MonthDetailResponse.md +8 -0
- data/docs/MonthDetailResponseData.md +8 -0
- data/docs/MonthDetailWrapper.md +8 -0
- data/docs/MonthSummariesResponse.md +8 -0
- data/docs/MonthSummariesResponseData.md +9 -0
- data/docs/MonthSummariesWrapper.md +9 -0
- data/docs/MonthSummary.md +15 -0
- data/docs/MonthsApi.md +49 -0
- data/docs/PatchMonthCategoryWrapper.md +8 -0
- data/docs/PatchTransactionsWrapper.md +8 -0
- data/docs/Payee.md +11 -0
- data/docs/PayeeLocation.md +12 -0
- data/docs/PayeeLocationResponse.md +8 -0
- data/docs/PayeeLocationResponseData.md +8 -0
- data/docs/PayeeLocationWrapper.md +8 -0
- data/docs/PayeeLocationsApi.md +69 -0
- data/docs/PayeeLocationsResponse.md +8 -0
- data/docs/PayeeLocationsResponseData.md +8 -0
- data/docs/PayeeLocationsWrapper.md +8 -0
- data/docs/PayeeResponse.md +8 -0
- data/docs/PayeeResponseData.md +8 -0
- data/docs/PayeeWrapper.md +8 -0
- data/docs/PayeesApi.md +49 -0
- data/docs/PayeesResponse.md +8 -0
- data/docs/PayeesResponseData.md +9 -0
- data/docs/PayeesWrapper.md +9 -0
- data/docs/PostAccountWrapper.md +8 -0
- data/docs/PostTransactionsWrapper.md +9 -0
- data/docs/PutTransactionWrapper.md +8 -0
- data/docs/SaveAccount.md +10 -0
- data/docs/SaveAccountWrapper.md +8 -0
- data/docs/SaveCategoryResponse.md +8 -0
- data/docs/SaveCategoryResponseData.md +9 -0
- data/docs/SaveMonthCategory.md +8 -0
- data/docs/SaveMonthCategoryWrapper.md +8 -0
- data/docs/SaveSubTransaction.md +12 -0
- data/docs/SaveTransaction.md +19 -0
- data/docs/SaveTransactionWithId.md +20 -0
- data/docs/SaveTransactionWithIdAllOf.md +8 -0
- data/docs/SaveTransactionWithOptionalFields.md +19 -0
- data/docs/SaveTransactionWrapper.md +8 -0
- data/docs/SaveTransactionsResponse.md +8 -0
- data/docs/SaveTransactionsResponseData.md +12 -0
- data/docs/SaveTransactionsWrapper.md +9 -0
- data/docs/ScheduledSubTransaction.md +15 -0
- data/docs/ScheduledTransactionDetail.md +23 -0
- data/docs/ScheduledTransactionDetailAllOf.md +11 -0
- data/docs/ScheduledTransactionResponse.md +8 -0
- data/docs/ScheduledTransactionResponseData.md +8 -0
- data/docs/ScheduledTransactionSummary.md +19 -0
- data/docs/ScheduledTransactionWrapper.md +8 -0
- data/docs/ScheduledTransactionsApi.md +49 -0
- data/docs/ScheduledTransactionsResponse.md +8 -0
- data/docs/ScheduledTransactionsResponseData.md +9 -0
- data/docs/ScheduledTransactionsWrapper.md +8 -0
- data/docs/SubTransaction.md +18 -0
- data/docs/TransactionDetail.md +29 -0
- data/docs/TransactionDetailAllOf.md +11 -0
- data/docs/TransactionResponse.md +8 -0
- data/docs/TransactionResponseData.md +8 -0
- data/docs/TransactionSummary.md +25 -0
- data/docs/TransactionWrapper.md +8 -0
- data/docs/TransactionsApi.md +228 -0
- data/docs/TransactionsImportResponse.md +8 -0
- data/docs/TransactionsImportResponseData.md +8 -0
- data/docs/TransactionsResponse.md +8 -0
- data/docs/TransactionsResponseData.md +9 -0
- data/docs/TransactionsWrapper.md +9 -0
- data/docs/UpdateTransaction.md +20 -0
- data/docs/UpdateTransactionsWrapper.md +8 -0
- data/docs/User.md +8 -0
- data/docs/UserApi.md +25 -0
- data/docs/UserResponse.md +8 -0
- data/docs/UserResponseData.md +8 -0
- data/docs/UserWrapper.md +8 -0
- data/examples/budget-list.rb +21 -0
- data/examples/budget-month.rb +33 -0
- data/examples/category-balance.rb +23 -0
- data/examples/create-multiple-transactions.rb +42 -0
- data/examples/create-transaction.rb +30 -0
- data/examples/update-category-budgeted.rb +25 -0
- data/examples/update-multiple-transactions.rb +20 -0
- data/lib/ynab/api/accounts_api.rb +79 -42
- data/lib/ynab/api/budgets_api.rb +69 -37
- data/lib/ynab/api/categories_api.rb +109 -61
- data/lib/ynab/api/deprecated_api.rb +33 -18
- data/lib/ynab/api/months_api.rb +50 -29
- data/lib/ynab/api/payee_locations_api.rb +74 -42
- data/lib/ynab/api/payees_api.rb +50 -29
- data/lib/ynab/api/scheduled_transactions_api.rb +50 -29
- data/lib/ynab/api/transactions_api.rb +269 -141
- data/lib/ynab/api/user_api.rb +23 -13
- data/lib/ynab/api_client.rb +98 -96
- data/lib/ynab/configuration.rb +103 -16
- data/lib/ynab/models/account.rb +118 -56
- data/lib/ynab/models/account_response.rb +54 -19
- data/lib/ynab/models/account_response_data.rb +54 -19
- data/lib/ynab/models/account_type.rb +31 -21
- data/lib/ynab/models/accounts_response.rb +54 -19
- data/lib/ynab/models/accounts_response_data.rb +55 -20
- data/lib/ynab/models/budget_detail.rb +81 -36
- data/lib/ynab/models/budget_detail_all_of.rb +320 -0
- data/lib/ynab/models/budget_detail_response.rb +54 -19
- data/lib/ynab/models/budget_detail_response_data.rb +55 -20
- data/lib/ynab/models/budget_settings.rb +57 -30
- data/lib/ynab/models/budget_settings_response.rb +54 -19
- data/lib/ynab/models/budget_settings_response_data.rb +54 -19
- data/lib/ynab/models/budget_summary.rb +64 -27
- data/lib/ynab/models/budget_summary_response.rb +54 -19
- data/lib/ynab/models/budget_summary_response_data.rb +55 -21
- data/lib/ynab/models/bulk_response.rb +54 -19
- data/lib/ynab/models/bulk_response_data.rb +54 -19
- data/lib/ynab/models/bulk_response_data_bulk.rb +55 -20
- data/lib/ynab/models/bulk_transactions.rb +54 -19
- data/lib/ynab/models/categories_response.rb +54 -19
- data/lib/ynab/models/categories_response_data.rb +55 -20
- data/lib/ynab/models/category.rb +111 -49
- data/lib/ynab/models/category_group.rb +59 -24
- data/lib/ynab/models/category_group_with_categories.rb +68 -25
- data/lib/ynab/models/{save_month_category_wrapper.rb → category_group_with_categories_all_of.rb} +67 -29
- data/lib/ynab/models/category_response.rb +54 -19
- data/lib/ynab/models/category_response_data.rb +54 -19
- data/lib/ynab/models/currency_format.rb +63 -28
- data/lib/ynab/models/date_format.rb +54 -19
- data/lib/ynab/models/error_detail.rb +56 -21
- data/lib/ynab/models/error_response.rb +54 -19
- data/lib/ynab/models/hybrid_transaction.rb +120 -47
- data/lib/ynab/models/hybrid_transaction_all_of.rb +304 -0
- data/lib/ynab/models/hybrid_transactions_response.rb +54 -19
- data/lib/ynab/models/hybrid_transactions_response_data.rb +55 -20
- data/lib/ynab/models/month_detail.rb +73 -28
- data/lib/ynab/models/{update_transactions_wrapper.rb → month_detail_all_of.rb} +66 -30
- data/lib/ynab/models/month_detail_response.rb +54 -19
- data/lib/ynab/models/month_detail_response_data.rb +54 -19
- data/lib/ynab/models/month_summaries_response.rb +54 -19
- data/lib/ynab/models/month_summaries_response_data.rb +55 -20
- data/lib/ynab/models/month_summary.rb +64 -27
- data/lib/ynab/models/patch_month_category_wrapper.rb +54 -19
- data/lib/ynab/models/patch_transactions_wrapper.rb +54 -19
- data/lib/ynab/models/payee.rb +59 -23
- data/lib/ynab/models/payee_location.rb +59 -24
- data/lib/ynab/models/payee_location_response.rb +54 -19
- data/lib/ynab/models/payee_location_response_data.rb +54 -19
- data/lib/ynab/models/payee_locations_response.rb +54 -19
- data/lib/ynab/models/payee_locations_response_data.rb +54 -19
- data/lib/ynab/models/payee_response.rb +54 -19
- data/lib/ynab/models/payee_response_data.rb +54 -19
- data/lib/ynab/models/payees_response.rb +54 -19
- data/lib/ynab/models/payees_response_data.rb +55 -20
- data/lib/ynab/models/post_account_wrapper.rb +54 -19
- data/lib/ynab/models/post_transactions_wrapper.rb +55 -20
- data/lib/ynab/models/put_transaction_wrapper.rb +54 -19
- data/lib/ynab/models/save_account.rb +78 -21
- data/lib/ynab/models/save_category_response.rb +54 -19
- data/lib/ynab/models/save_category_response_data.rb +55 -20
- data/lib/ynab/models/save_month_category.rb +54 -19
- data/lib/ynab/models/save_sub_transaction.rb +62 -23
- data/lib/ynab/models/save_transaction.rb +89 -34
- data/lib/ynab/models/save_transaction_with_id.rb +103 -47
- data/lib/ynab/models/{save_transactions_wrapper.rb → save_transaction_with_id_all_of.rb} +60 -36
- data/lib/ynab/models/save_transaction_with_optional_fields.rb +82 -34
- data/lib/ynab/models/save_transactions_response.rb +54 -19
- data/lib/ynab/models/save_transactions_response_data.rb +58 -24
- data/lib/ynab/models/scheduled_sub_transaction.rb +67 -28
- data/lib/ynab/models/scheduled_transaction_detail.rb +96 -37
- data/lib/ynab/models/scheduled_transaction_detail_all_of.rb +262 -0
- data/lib/ynab/models/scheduled_transaction_response.rb +54 -19
- data/lib/ynab/models/scheduled_transaction_response_data.rb +54 -19
- data/lib/ynab/models/scheduled_transaction_summary.rb +81 -33
- data/lib/ynab/models/scheduled_transactions_response.rb +54 -19
- data/lib/ynab/models/scheduled_transactions_response_data.rb +55 -20
- data/lib/ynab/models/sub_transaction.rb +72 -30
- data/lib/ynab/models/transaction_detail.rb +114 -45
- data/lib/ynab/models/{save_transaction_wrapper.rb → transaction_detail_all_of.rb} +102 -29
- data/lib/ynab/models/transaction_response.rb +54 -19
- data/lib/ynab/models/transaction_response_data.rb +54 -19
- data/lib/ynab/models/transaction_summary.rb +99 -41
- data/lib/ynab/models/transactions_import_response.rb +54 -19
- data/lib/ynab/models/transactions_import_response_data.rb +54 -19
- data/lib/ynab/models/transactions_response.rb +54 -19
- data/lib/ynab/models/transactions_response_data.rb +55 -20
- data/lib/ynab/models/user.rb +54 -19
- data/lib/ynab/models/user_response.rb +54 -19
- data/lib/ynab/models/user_response_data.rb +54 -19
- data/lib/ynab/version.rb +1 -1
- data/lib/ynab.rb +21 -16
- data/open_api_spec.yaml +3012 -0
- data/templates/api_client.mustache +274 -0
- data/templates/api_client_typhoeus_partial.mustache +156 -0
- data/templates/api_doc.mustache +44 -0
- data/templates/gem.mustache +84 -0
- data/templates/partial_model_generic_doc.mustache +9 -0
- data/ynab.gemspec +38 -0
- metadata +197 -90
- data/lib/ynab/models/loan_account_periodic_value.rb +0 -175
- data/lib/ynab/models/save_account_wrapper.rb +0 -189
- data/lib/ynab/models/update_transaction.rb +0 -407
- data/spec/models/transaction_detail_spec.rb +0 -11
@@ -1,41 +1,51 @@
|
|
1
1
|
=begin
|
2
2
|
#YNAB API Endpoints
|
3
3
|
|
4
|
-
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.
|
4
|
+
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
7
|
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.6.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module YNAB
|
16
17
|
class AccountType
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
18
|
+
CHECKING = "checking".freeze
|
19
|
+
SAVINGS = "savings".freeze
|
20
|
+
CASH = "cash".freeze
|
21
|
+
CREDIT_CARD = "creditCard".freeze
|
22
|
+
LINE_OF_CREDIT = "lineOfCredit".freeze
|
23
|
+
OTHER_ASSET = "otherAsset".freeze
|
24
|
+
OTHER_LIABILITY = "otherLiability".freeze
|
25
|
+
MORTGAGE = "mortgage".freeze
|
26
|
+
AUTO_LOAN = "autoLoan".freeze
|
27
|
+
STUDENT_LOAN = "studentLoan".freeze
|
28
|
+
PERSONAL_LOAN = "personalLoan".freeze
|
29
|
+
MEDICAL_DEBT = "medicalDebt".freeze
|
30
|
+
OTHER_DEBT = "otherDebt".freeze
|
31
|
+
|
32
|
+
def self.all_vars
|
33
|
+
@all_vars ||= [CHECKING, SAVINGS, CASH, CREDIT_CARD, LINE_OF_CREDIT, OTHER_ASSET, OTHER_LIABILITY, MORTGAGE, AUTO_LOAN, STUDENT_LOAN, PERSONAL_LOAN, MEDICAL_DEBT, OTHER_DEBT].freeze
|
34
|
+
end
|
35
|
+
|
36
|
+
# Builds the enum from string
|
37
|
+
# @param [String] The enum value in the form of the string
|
38
|
+
# @return [String] The enum value
|
39
|
+
def self.build_from_hash(value)
|
40
|
+
new.build_from_hash(value)
|
41
|
+
end
|
31
42
|
|
32
43
|
# Builds the enum from string
|
33
44
|
# @param [String] The enum value in the form of the string
|
34
45
|
# @return [String] The enum value
|
35
46
|
def build_from_hash(value)
|
36
|
-
|
37
|
-
raise "Invalid ENUM value #{value} for class #AccountType"
|
38
|
-
value
|
47
|
+
return value if AccountType.all_vars.include?(value)
|
48
|
+
raise "Invalid ENUM value #{value} for class #AccountType"
|
39
49
|
end
|
40
50
|
end
|
41
51
|
end
|
@@ -1,16 +1,17 @@
|
|
1
1
|
=begin
|
2
2
|
#YNAB API Endpoints
|
3
3
|
|
4
|
-
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.
|
4
|
+
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
7
|
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.6.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module YNAB
|
16
17
|
class AccountsResponse
|
@@ -23,22 +24,40 @@ module YNAB
|
|
23
24
|
}
|
24
25
|
end
|
25
26
|
|
27
|
+
# Returns all the JSON keys this model knows about
|
28
|
+
def self.acceptable_attributes
|
29
|
+
attribute_map.values
|
30
|
+
end
|
31
|
+
|
26
32
|
# Attribute type mapping.
|
27
|
-
def self.
|
33
|
+
def self.openapi_types
|
28
34
|
{
|
29
35
|
:'data' => :'AccountsResponseData'
|
30
36
|
}
|
31
37
|
end
|
32
38
|
|
39
|
+
# List of attributes with nullable: true
|
40
|
+
def self.openapi_nullable
|
41
|
+
Set.new([
|
42
|
+
])
|
43
|
+
end
|
44
|
+
|
33
45
|
# Initializes the object
|
34
46
|
# @param [Hash] attributes Model attributes in the form of hash
|
35
47
|
def initialize(attributes = {})
|
36
|
-
|
48
|
+
if (!attributes.is_a?(Hash))
|
49
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `YNAB::AccountsResponse` initialize method"
|
50
|
+
end
|
37
51
|
|
38
|
-
# convert string to symbol for hash key
|
39
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
52
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
53
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
54
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
55
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::AccountsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
56
|
+
end
|
57
|
+
h[k.to_sym] = v
|
58
|
+
}
|
40
59
|
|
41
|
-
if attributes.
|
60
|
+
if attributes.key?(:'data')
|
42
61
|
self.data = attributes[:'data']
|
43
62
|
end
|
44
63
|
end
|
@@ -76,17 +95,28 @@ module YNAB
|
|
76
95
|
end
|
77
96
|
|
78
97
|
# Calculates hash code according to all attributes.
|
79
|
-
# @return [
|
98
|
+
# @return [Integer] Hash code
|
80
99
|
def hash
|
81
100
|
[data].hash
|
82
101
|
end
|
102
|
+
|
103
|
+
# Builds the object from hash
|
104
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
105
|
+
# @return [Object] Returns the model itself
|
106
|
+
def self.build_from_hash(attributes)
|
107
|
+
new.build_from_hash(attributes)
|
108
|
+
end
|
109
|
+
|
83
110
|
# Builds the object from hash
|
84
111
|
# @param [Hash] attributes Model attributes in the form of hash
|
85
112
|
# @return [Object] Returns the model itself
|
86
113
|
def build_from_hash(attributes)
|
87
114
|
return nil unless attributes.is_a?(Hash)
|
88
|
-
|
89
|
-
|
115
|
+
attributes = attributes.transform_keys(&:to_sym)
|
116
|
+
self.class.openapi_types.each_pair do |key, type|
|
117
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
118
|
+
self.send("#{key}=", nil)
|
119
|
+
elsif type =~ /\AArray<(.*)>/i
|
90
120
|
# check to ensure the input is an array given that the attribute
|
91
121
|
# is documented as an array but the input is not
|
92
122
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
@@ -94,7 +124,7 @@ module YNAB
|
|
94
124
|
end
|
95
125
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
96
126
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
97
|
-
end
|
127
|
+
end
|
98
128
|
end
|
99
129
|
|
100
130
|
self
|
@@ -106,8 +136,8 @@ module YNAB
|
|
106
136
|
# @return [Object] Deserialized data
|
107
137
|
def _deserialize(type, value)
|
108
138
|
case type.to_sym
|
109
|
-
when :
|
110
|
-
|
139
|
+
when :Time
|
140
|
+
Time.parse(value)
|
111
141
|
when :Date
|
112
142
|
Date.parse(value)
|
113
143
|
when :String
|
@@ -116,7 +146,7 @@ module YNAB
|
|
116
146
|
value.to_i
|
117
147
|
when :Float
|
118
148
|
value.to_f
|
119
|
-
when :
|
149
|
+
when :Boolean
|
120
150
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
121
151
|
true
|
122
152
|
else
|
@@ -137,8 +167,9 @@ module YNAB
|
|
137
167
|
end
|
138
168
|
end
|
139
169
|
else # model
|
140
|
-
|
141
|
-
|
170
|
+
# models (e.g. Pet) or oneOf
|
171
|
+
klass = YNAB.const_get(type)
|
172
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
142
173
|
end
|
143
174
|
end
|
144
175
|
|
@@ -160,7 +191,11 @@ module YNAB
|
|
160
191
|
hash = {}
|
161
192
|
self.class.attribute_map.each_pair do |attr, param|
|
162
193
|
value = self.send(attr)
|
163
|
-
|
194
|
+
if value.nil?
|
195
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
196
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
197
|
+
end
|
198
|
+
|
164
199
|
hash[param] = _to_hash(value)
|
165
200
|
end
|
166
201
|
hash
|
@@ -1,16 +1,17 @@
|
|
1
1
|
=begin
|
2
2
|
#YNAB API Endpoints
|
3
3
|
|
4
|
-
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.
|
4
|
+
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
7
|
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.6.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module YNAB
|
16
17
|
class AccountsResponseData
|
@@ -27,29 +28,47 @@ module YNAB
|
|
27
28
|
}
|
28
29
|
end
|
29
30
|
|
31
|
+
# Returns all the JSON keys this model knows about
|
32
|
+
def self.acceptable_attributes
|
33
|
+
attribute_map.values
|
34
|
+
end
|
35
|
+
|
30
36
|
# Attribute type mapping.
|
31
|
-
def self.
|
37
|
+
def self.openapi_types
|
32
38
|
{
|
33
39
|
:'accounts' => :'Array<Account>',
|
34
40
|
:'server_knowledge' => :'Integer'
|
35
41
|
}
|
36
42
|
end
|
37
43
|
|
44
|
+
# List of attributes with nullable: true
|
45
|
+
def self.openapi_nullable
|
46
|
+
Set.new([
|
47
|
+
])
|
48
|
+
end
|
49
|
+
|
38
50
|
# Initializes the object
|
39
51
|
# @param [Hash] attributes Model attributes in the form of hash
|
40
52
|
def initialize(attributes = {})
|
41
|
-
|
53
|
+
if (!attributes.is_a?(Hash))
|
54
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `YNAB::AccountsResponseData` initialize method"
|
55
|
+
end
|
42
56
|
|
43
|
-
# convert string to symbol for hash key
|
44
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
57
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
58
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
59
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
60
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::AccountsResponseData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
61
|
+
end
|
62
|
+
h[k.to_sym] = v
|
63
|
+
}
|
45
64
|
|
46
|
-
if attributes.
|
65
|
+
if attributes.key?(:'accounts')
|
47
66
|
if (value = attributes[:'accounts']).is_a?(Array)
|
48
67
|
self.accounts = value
|
49
68
|
end
|
50
69
|
end
|
51
70
|
|
52
|
-
if attributes.
|
71
|
+
if attributes.key?(:'server_knowledge')
|
53
72
|
self.server_knowledge = attributes[:'server_knowledge']
|
54
73
|
end
|
55
74
|
end
|
@@ -93,17 +112,28 @@ module YNAB
|
|
93
112
|
end
|
94
113
|
|
95
114
|
# Calculates hash code according to all attributes.
|
96
|
-
# @return [
|
115
|
+
# @return [Integer] Hash code
|
97
116
|
def hash
|
98
117
|
[accounts, server_knowledge].hash
|
99
118
|
end
|
119
|
+
|
120
|
+
# Builds the object from hash
|
121
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
122
|
+
# @return [Object] Returns the model itself
|
123
|
+
def self.build_from_hash(attributes)
|
124
|
+
new.build_from_hash(attributes)
|
125
|
+
end
|
126
|
+
|
100
127
|
# Builds the object from hash
|
101
128
|
# @param [Hash] attributes Model attributes in the form of hash
|
102
129
|
# @return [Object] Returns the model itself
|
103
130
|
def build_from_hash(attributes)
|
104
131
|
return nil unless attributes.is_a?(Hash)
|
105
|
-
|
106
|
-
|
132
|
+
attributes = attributes.transform_keys(&:to_sym)
|
133
|
+
self.class.openapi_types.each_pair do |key, type|
|
134
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
135
|
+
self.send("#{key}=", nil)
|
136
|
+
elsif type =~ /\AArray<(.*)>/i
|
107
137
|
# check to ensure the input is an array given that the attribute
|
108
138
|
# is documented as an array but the input is not
|
109
139
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
@@ -111,7 +141,7 @@ module YNAB
|
|
111
141
|
end
|
112
142
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
113
143
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
114
|
-
end
|
144
|
+
end
|
115
145
|
end
|
116
146
|
|
117
147
|
self
|
@@ -123,8 +153,8 @@ module YNAB
|
|
123
153
|
# @return [Object] Deserialized data
|
124
154
|
def _deserialize(type, value)
|
125
155
|
case type.to_sym
|
126
|
-
when :
|
127
|
-
|
156
|
+
when :Time
|
157
|
+
Time.parse(value)
|
128
158
|
when :Date
|
129
159
|
Date.parse(value)
|
130
160
|
when :String
|
@@ -133,7 +163,7 @@ module YNAB
|
|
133
163
|
value.to_i
|
134
164
|
when :Float
|
135
165
|
value.to_f
|
136
|
-
when :
|
166
|
+
when :Boolean
|
137
167
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
138
168
|
true
|
139
169
|
else
|
@@ -154,8 +184,9 @@ module YNAB
|
|
154
184
|
end
|
155
185
|
end
|
156
186
|
else # model
|
157
|
-
|
158
|
-
|
187
|
+
# models (e.g. Pet) or oneOf
|
188
|
+
klass = YNAB.const_get(type)
|
189
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
159
190
|
end
|
160
191
|
end
|
161
192
|
|
@@ -177,7 +208,11 @@ module YNAB
|
|
177
208
|
hash = {}
|
178
209
|
self.class.attribute_map.each_pair do |attr, param|
|
179
210
|
value = self.send(attr)
|
180
|
-
|
211
|
+
if value.nil?
|
212
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
213
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
214
|
+
end
|
215
|
+
|
181
216
|
hash[param] = _to_hash(value)
|
182
217
|
end
|
183
218
|
hash
|
@@ -1,16 +1,17 @@
|
|
1
1
|
=begin
|
2
2
|
#YNAB API Endpoints
|
3
3
|
|
4
|
-
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.
|
4
|
+
#Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
7
|
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.6.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
require 'date'
|
14
|
+
require 'time'
|
14
15
|
|
15
16
|
module YNAB
|
16
17
|
class BudgetDetail
|
@@ -74,12 +75,17 @@ module YNAB
|
|
74
75
|
}
|
75
76
|
end
|
76
77
|
|
78
|
+
# Returns all the JSON keys this model knows about
|
79
|
+
def self.acceptable_attributes
|
80
|
+
attribute_map.values
|
81
|
+
end
|
82
|
+
|
77
83
|
# Attribute type mapping.
|
78
|
-
def self.
|
84
|
+
def self.openapi_types
|
79
85
|
{
|
80
86
|
:'id' => :'String',
|
81
87
|
:'name' => :'String',
|
82
|
-
:'last_modified_on' => :'
|
88
|
+
:'last_modified_on' => :'Time',
|
83
89
|
:'first_month' => :'Date',
|
84
90
|
:'last_month' => :'Date',
|
85
91
|
:'date_format' => :'DateFormat',
|
@@ -97,97 +103,120 @@ module YNAB
|
|
97
103
|
}
|
98
104
|
end
|
99
105
|
|
106
|
+
# List of attributes with nullable: true
|
107
|
+
def self.openapi_nullable
|
108
|
+
Set.new([
|
109
|
+
:'date_format',
|
110
|
+
:'currency_format',
|
111
|
+
])
|
112
|
+
end
|
113
|
+
|
114
|
+
# List of class defined in allOf (OpenAPI v3)
|
115
|
+
def self.openapi_all_of
|
116
|
+
[
|
117
|
+
:'BudgetDetailAllOf',
|
118
|
+
:'BudgetSummary'
|
119
|
+
]
|
120
|
+
end
|
121
|
+
|
100
122
|
# Initializes the object
|
101
123
|
# @param [Hash] attributes Model attributes in the form of hash
|
102
124
|
def initialize(attributes = {})
|
103
|
-
|
125
|
+
if (!attributes.is_a?(Hash))
|
126
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `YNAB::BudgetDetail` initialize method"
|
127
|
+
end
|
104
128
|
|
105
|
-
# convert string to symbol for hash key
|
106
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
129
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
130
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
131
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
132
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::BudgetDetail`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
133
|
+
end
|
134
|
+
h[k.to_sym] = v
|
135
|
+
}
|
107
136
|
|
108
|
-
if attributes.
|
137
|
+
if attributes.key?(:'id')
|
109
138
|
self.id = attributes[:'id']
|
110
139
|
end
|
111
140
|
|
112
|
-
if attributes.
|
141
|
+
if attributes.key?(:'name')
|
113
142
|
self.name = attributes[:'name']
|
114
143
|
end
|
115
144
|
|
116
|
-
if attributes.
|
145
|
+
if attributes.key?(:'last_modified_on')
|
117
146
|
self.last_modified_on = attributes[:'last_modified_on']
|
118
147
|
end
|
119
148
|
|
120
|
-
if attributes.
|
149
|
+
if attributes.key?(:'first_month')
|
121
150
|
self.first_month = attributes[:'first_month']
|
122
151
|
end
|
123
152
|
|
124
|
-
if attributes.
|
153
|
+
if attributes.key?(:'last_month')
|
125
154
|
self.last_month = attributes[:'last_month']
|
126
155
|
end
|
127
156
|
|
128
|
-
if attributes.
|
157
|
+
if attributes.key?(:'date_format')
|
129
158
|
self.date_format = attributes[:'date_format']
|
130
159
|
end
|
131
160
|
|
132
|
-
if attributes.
|
161
|
+
if attributes.key?(:'currency_format')
|
133
162
|
self.currency_format = attributes[:'currency_format']
|
134
163
|
end
|
135
164
|
|
136
|
-
if attributes.
|
165
|
+
if attributes.key?(:'accounts')
|
137
166
|
if (value = attributes[:'accounts']).is_a?(Array)
|
138
167
|
self.accounts = value
|
139
168
|
end
|
140
169
|
end
|
141
170
|
|
142
|
-
if attributes.
|
171
|
+
if attributes.key?(:'payees')
|
143
172
|
if (value = attributes[:'payees']).is_a?(Array)
|
144
173
|
self.payees = value
|
145
174
|
end
|
146
175
|
end
|
147
176
|
|
148
|
-
if attributes.
|
177
|
+
if attributes.key?(:'payee_locations')
|
149
178
|
if (value = attributes[:'payee_locations']).is_a?(Array)
|
150
179
|
self.payee_locations = value
|
151
180
|
end
|
152
181
|
end
|
153
182
|
|
154
|
-
if attributes.
|
183
|
+
if attributes.key?(:'category_groups')
|
155
184
|
if (value = attributes[:'category_groups']).is_a?(Array)
|
156
185
|
self.category_groups = value
|
157
186
|
end
|
158
187
|
end
|
159
188
|
|
160
|
-
if attributes.
|
189
|
+
if attributes.key?(:'categories')
|
161
190
|
if (value = attributes[:'categories']).is_a?(Array)
|
162
191
|
self.categories = value
|
163
192
|
end
|
164
193
|
end
|
165
194
|
|
166
|
-
if attributes.
|
195
|
+
if attributes.key?(:'months')
|
167
196
|
if (value = attributes[:'months']).is_a?(Array)
|
168
197
|
self.months = value
|
169
198
|
end
|
170
199
|
end
|
171
200
|
|
172
|
-
if attributes.
|
201
|
+
if attributes.key?(:'transactions')
|
173
202
|
if (value = attributes[:'transactions']).is_a?(Array)
|
174
203
|
self.transactions = value
|
175
204
|
end
|
176
205
|
end
|
177
206
|
|
178
|
-
if attributes.
|
207
|
+
if attributes.key?(:'subtransactions')
|
179
208
|
if (value = attributes[:'subtransactions']).is_a?(Array)
|
180
209
|
self.subtransactions = value
|
181
210
|
end
|
182
211
|
end
|
183
212
|
|
184
|
-
if attributes.
|
213
|
+
if attributes.key?(:'scheduled_transactions')
|
185
214
|
if (value = attributes[:'scheduled_transactions']).is_a?(Array)
|
186
215
|
self.scheduled_transactions = value
|
187
216
|
end
|
188
217
|
end
|
189
218
|
|
190
|
-
if attributes.
|
219
|
+
if attributes.key?(:'scheduled_subtransactions')
|
191
220
|
if (value = attributes[:'scheduled_subtransactions']).is_a?(Array)
|
192
221
|
self.scheduled_subtransactions = value
|
193
222
|
end
|
@@ -248,17 +277,28 @@ module YNAB
|
|
248
277
|
end
|
249
278
|
|
250
279
|
# Calculates hash code according to all attributes.
|
251
|
-
# @return [
|
280
|
+
# @return [Integer] Hash code
|
252
281
|
def hash
|
253
282
|
[id, name, last_modified_on, first_month, last_month, date_format, currency_format, accounts, payees, payee_locations, category_groups, categories, months, transactions, subtransactions, scheduled_transactions, scheduled_subtransactions].hash
|
254
283
|
end
|
284
|
+
|
285
|
+
# Builds the object from hash
|
286
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
287
|
+
# @return [Object] Returns the model itself
|
288
|
+
def self.build_from_hash(attributes)
|
289
|
+
new.build_from_hash(attributes)
|
290
|
+
end
|
291
|
+
|
255
292
|
# Builds the object from hash
|
256
293
|
# @param [Hash] attributes Model attributes in the form of hash
|
257
294
|
# @return [Object] Returns the model itself
|
258
295
|
def build_from_hash(attributes)
|
259
296
|
return nil unless attributes.is_a?(Hash)
|
260
|
-
|
261
|
-
|
297
|
+
attributes = attributes.transform_keys(&:to_sym)
|
298
|
+
self.class.openapi_types.each_pair do |key, type|
|
299
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
300
|
+
self.send("#{key}=", nil)
|
301
|
+
elsif type =~ /\AArray<(.*)>/i
|
262
302
|
# check to ensure the input is an array given that the attribute
|
263
303
|
# is documented as an array but the input is not
|
264
304
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
@@ -266,7 +306,7 @@ module YNAB
|
|
266
306
|
end
|
267
307
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
268
308
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
269
|
-
end
|
309
|
+
end
|
270
310
|
end
|
271
311
|
|
272
312
|
self
|
@@ -278,8 +318,8 @@ module YNAB
|
|
278
318
|
# @return [Object] Deserialized data
|
279
319
|
def _deserialize(type, value)
|
280
320
|
case type.to_sym
|
281
|
-
when :
|
282
|
-
|
321
|
+
when :Time
|
322
|
+
Time.parse(value)
|
283
323
|
when :Date
|
284
324
|
Date.parse(value)
|
285
325
|
when :String
|
@@ -288,7 +328,7 @@ module YNAB
|
|
288
328
|
value.to_i
|
289
329
|
when :Float
|
290
330
|
value.to_f
|
291
|
-
when :
|
331
|
+
when :Boolean
|
292
332
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
293
333
|
true
|
294
334
|
else
|
@@ -309,8 +349,9 @@ module YNAB
|
|
309
349
|
end
|
310
350
|
end
|
311
351
|
else # model
|
312
|
-
|
313
|
-
|
352
|
+
# models (e.g. Pet) or oneOf
|
353
|
+
klass = YNAB.const_get(type)
|
354
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
314
355
|
end
|
315
356
|
end
|
316
357
|
|
@@ -332,7 +373,11 @@ module YNAB
|
|
332
373
|
hash = {}
|
333
374
|
self.class.attribute_map.each_pair do |attr, param|
|
334
375
|
value = self.send(attr)
|
335
|
-
|
376
|
+
if value.nil?
|
377
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
378
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
379
|
+
end
|
380
|
+
|
336
381
|
hash[param] = _to_hash(value)
|
337
382
|
end
|
338
383
|
hash
|