ynab 5.2.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/DEVELOPMENT.md +6 -3
- data/Gemfile.lock +21 -19
- data/Rakefile +9 -8
- data/docs/ExistingCategory.md +4 -3
- data/docs/ExistingTransaction.md +1 -1
- data/docs/NewCategory.md +4 -3
- data/docs/NewTransaction.md +1 -1
- data/docs/SaveCategory.md +4 -3
- data/docs/SaveTransactionWithIdOrImportId.md +1 -1
- data/docs/SaveTransactionWithOptionalFields.md +1 -1
- data/docs/TransactionsApi.md +1 -1
- data/lib/ynab/api/accounts_api.rb +1 -1
- data/lib/ynab/api/categories_api.rb +1 -1
- data/lib/ynab/api/money_movements_api.rb +1 -1
- data/lib/ynab/api/months_api.rb +1 -1
- data/lib/ynab/api/payee_locations_api.rb +1 -1
- data/lib/ynab/api/payees_api.rb +1 -1
- data/lib/ynab/api/plans_api.rb +1 -1
- data/lib/ynab/api/scheduled_transactions_api.rb +1 -1
- data/lib/ynab/api/transactions_api.rb +3 -3
- data/lib/ynab/api/user_api.rb +1 -1
- data/lib/ynab/api_client.rb +1 -1
- data/lib/ynab/api_model_base.rb +1 -1
- data/lib/ynab/configuration.rb +1 -1
- data/lib/ynab/models/account.rb +38 -13
- data/lib/ynab/models/account_base.rb +34 -12
- data/lib/ynab/models/account_response.rb +31 -12
- data/lib/ynab/models/account_response_data.rb +31 -12
- data/lib/ynab/models/account_type.rb +1 -1
- data/lib/ynab/models/accounts_response.rb +31 -12
- data/lib/ynab/models/accounts_response_data.rb +31 -12
- data/lib/ynab/models/bulk_response.rb +31 -12
- data/lib/ynab/models/bulk_response_data.rb +31 -12
- data/lib/ynab/models/bulk_response_data_bulk.rb +31 -12
- data/lib/ynab/models/bulk_transactions.rb +31 -12
- data/lib/ynab/models/categories_response.rb +31 -12
- data/lib/ynab/models/categories_response_data.rb +31 -12
- data/lib/ynab/models/category.rb +47 -12
- data/lib/ynab/models/category_base.rb +31 -12
- data/lib/ynab/models/category_group.rb +31 -12
- data/lib/ynab/models/category_group_with_categories.rb +31 -12
- data/lib/ynab/models/category_response.rb +31 -12
- data/lib/ynab/models/category_response_data.rb +31 -12
- data/lib/ynab/models/currency_format.rb +31 -12
- data/lib/ynab/models/date_format.rb +31 -12
- data/lib/ynab/models/error_detail.rb +31 -12
- data/lib/ynab/models/error_response.rb +31 -12
- data/lib/ynab/models/existing_category.rb +83 -19
- data/lib/ynab/models/existing_transaction.rb +36 -13
- data/lib/ynab/models/hybrid_transaction.rb +41 -12
- data/lib/ynab/models/hybrid_transactions_response.rb +31 -12
- data/lib/ynab/models/hybrid_transactions_response_data.rb +31 -12
- data/lib/ynab/models/money_movement.rb +38 -12
- data/lib/ynab/models/money_movement_base.rb +31 -12
- data/lib/ynab/models/money_movement_group.rb +31 -12
- data/lib/ynab/models/money_movement_groups_response.rb +31 -12
- data/lib/ynab/models/money_movement_groups_response_data.rb +31 -12
- data/lib/ynab/models/money_movements_response.rb +31 -12
- data/lib/ynab/models/money_movements_response_data.rb +31 -12
- data/lib/ynab/models/month_detail.rb +33 -12
- data/lib/ynab/models/month_detail_base.rb +33 -12
- data/lib/ynab/models/month_detail_response.rb +31 -12
- data/lib/ynab/models/month_detail_response_data.rb +31 -12
- data/lib/ynab/models/month_summaries_response.rb +31 -12
- data/lib/ynab/models/month_summaries_response_data.rb +31 -12
- data/lib/ynab/models/month_summary.rb +33 -12
- data/lib/ynab/models/month_summary_base.rb +31 -12
- data/lib/ynab/models/new_category.rb +83 -19
- data/lib/ynab/models/new_transaction.rb +36 -13
- data/lib/ynab/models/patch_category_group_wrapper.rb +31 -12
- data/lib/ynab/models/patch_category_wrapper.rb +31 -12
- data/lib/ynab/models/patch_month_category_wrapper.rb +31 -12
- data/lib/ynab/models/patch_payee_wrapper.rb +31 -12
- data/lib/ynab/models/patch_transactions_wrapper.rb +31 -12
- data/lib/ynab/models/payee.rb +31 -12
- data/lib/ynab/models/payee_location.rb +31 -12
- data/lib/ynab/models/payee_location_response.rb +31 -12
- data/lib/ynab/models/payee_location_response_data.rb +31 -12
- data/lib/ynab/models/payee_locations_response.rb +31 -12
- data/lib/ynab/models/payee_locations_response_data.rb +31 -12
- data/lib/ynab/models/payee_response.rb +31 -12
- data/lib/ynab/models/payee_response_data.rb +31 -12
- data/lib/ynab/models/payees_response.rb +31 -12
- data/lib/ynab/models/payees_response_data.rb +31 -12
- data/lib/ynab/models/plan_detail.rb +33 -12
- data/lib/ynab/models/plan_detail_response.rb +31 -12
- data/lib/ynab/models/plan_detail_response_data.rb +31 -12
- data/lib/ynab/models/plan_settings.rb +33 -14
- data/lib/ynab/models/plan_settings_response.rb +31 -12
- data/lib/ynab/models/plan_settings_response_data.rb +31 -12
- data/lib/ynab/models/plan_summary.rb +33 -12
- data/lib/ynab/models/plan_summary_response.rb +31 -12
- data/lib/ynab/models/plan_summary_response_data.rb +31 -12
- data/lib/ynab/models/post_account_wrapper.rb +31 -12
- data/lib/ynab/models/post_category_group_wrapper.rb +31 -12
- data/lib/ynab/models/post_category_wrapper.rb +31 -12
- data/lib/ynab/models/post_payee.rb +31 -12
- data/lib/ynab/models/post_payee_wrapper.rb +31 -12
- data/lib/ynab/models/post_scheduled_transaction_wrapper.rb +31 -12
- data/lib/ynab/models/post_transactions_wrapper.rb +31 -12
- data/lib/ynab/models/put_scheduled_transaction_wrapper.rb +31 -12
- data/lib/ynab/models/put_transaction_wrapper.rb +31 -12
- data/lib/ynab/models/save_account.rb +31 -12
- data/lib/ynab/models/save_account_type.rb +1 -1
- data/lib/ynab/models/save_category.rb +79 -20
- data/lib/ynab/models/save_category_group.rb +31 -12
- data/lib/ynab/models/save_category_group_response.rb +31 -12
- data/lib/ynab/models/save_category_group_response_data.rb +31 -12
- data/lib/ynab/models/save_category_response.rb +31 -12
- data/lib/ynab/models/save_category_response_data.rb +31 -12
- data/lib/ynab/models/save_month_category.rb +31 -12
- data/lib/ynab/models/save_payee.rb +31 -12
- data/lib/ynab/models/save_payee_response.rb +31 -12
- data/lib/ynab/models/save_payee_response_data.rb +31 -12
- data/lib/ynab/models/save_scheduled_transaction.rb +31 -12
- data/lib/ynab/models/save_sub_transaction.rb +31 -12
- data/lib/ynab/models/save_transaction_with_id_or_import_id.rb +36 -13
- data/lib/ynab/models/save_transaction_with_optional_fields.rb +32 -13
- data/lib/ynab/models/save_transactions_response.rb +31 -12
- data/lib/ynab/models/save_transactions_response_data.rb +31 -12
- data/lib/ynab/models/scheduled_sub_transaction.rb +37 -12
- data/lib/ynab/models/scheduled_sub_transaction_base.rb +31 -12
- data/lib/ynab/models/scheduled_transaction_detail.rb +36 -12
- data/lib/ynab/models/scheduled_transaction_frequency.rb +1 -1
- data/lib/ynab/models/scheduled_transaction_response.rb +31 -12
- data/lib/ynab/models/scheduled_transaction_response_data.rb +31 -12
- data/lib/ynab/models/scheduled_transaction_summary.rb +36 -12
- data/lib/ynab/models/scheduled_transaction_summary_base.rb +31 -12
- data/lib/ynab/models/scheduled_transactions_response.rb +31 -12
- data/lib/ynab/models/scheduled_transactions_response_data.rb +31 -12
- data/lib/ynab/models/sub_transaction.rb +38 -12
- data/lib/ynab/models/sub_transaction_base.rb +31 -12
- data/lib/ynab/models/transaction_cleared_status.rb +1 -1
- data/lib/ynab/models/transaction_detail.rb +41 -12
- data/lib/ynab/models/transaction_flag_color.rb +1 -1
- data/lib/ynab/models/transaction_response.rb +31 -12
- data/lib/ynab/models/transaction_response_data.rb +31 -12
- data/lib/ynab/models/transaction_summary.rb +41 -12
- data/lib/ynab/models/transaction_summary_base.rb +31 -12
- data/lib/ynab/models/transactions_import_response.rb +31 -12
- data/lib/ynab/models/transactions_import_response_data.rb +31 -12
- data/lib/ynab/models/transactions_response.rb +31 -12
- data/lib/ynab/models/transactions_response_data.rb +31 -12
- data/lib/ynab/models/user.rb +31 -12
- data/lib/ynab/models/user_response.rb +31 -12
- data/lib/ynab/models/user_response_data.rb +31 -12
- data/lib/ynab/version.rb +1 -1
- data/lib/ynab.rb +1 -1
- data/open_api_spec.yaml +61 -30
- data/templates/partial_model_generic.mustache +37 -11
- data/ynab.gemspec +2 -2
- metadata +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
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
|
|
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. Read the [API Documentation](https://api.ynab.com) for more information about the API, including how to obtain an access token and how to use it to make requests.
|
|
5
5
|
|
|
6
6
|
Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
7
7
|
|
|
@@ -21,9 +21,14 @@ module YNAB
|
|
|
21
21
|
}
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
+
# Returns attribute mapping this model knows about
|
|
25
|
+
def self.acceptable_attribute_map
|
|
26
|
+
attribute_map
|
|
27
|
+
end
|
|
28
|
+
|
|
24
29
|
# Returns all the JSON keys this model knows about
|
|
25
30
|
def self.acceptable_attributes
|
|
26
|
-
|
|
31
|
+
acceptable_attribute_map.values
|
|
27
32
|
end
|
|
28
33
|
|
|
29
34
|
# Attribute type mapping.
|
|
@@ -39,6 +44,16 @@ module YNAB
|
|
|
39
44
|
])
|
|
40
45
|
end
|
|
41
46
|
|
|
47
|
+
# Returns attribute type mapping
|
|
48
|
+
def self.acceptable_openapi_types
|
|
49
|
+
openapi_types
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Returns the nullable attributes
|
|
53
|
+
def self.acceptable_openapi_nullable
|
|
54
|
+
openapi_nullable
|
|
55
|
+
end
|
|
56
|
+
|
|
42
57
|
# Initializes the object
|
|
43
58
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
44
59
|
def initialize(attributes = {})
|
|
@@ -47,9 +62,10 @@ module YNAB
|
|
|
47
62
|
end
|
|
48
63
|
|
|
49
64
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
65
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
50
66
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
51
|
-
if (!
|
|
52
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummariesResponse`. Please check the name to make sure it's valid. List of attributes: " +
|
|
67
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
68
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummariesResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
53
69
|
end
|
|
54
70
|
h[k.to_sym] = v
|
|
55
71
|
}
|
|
@@ -99,18 +115,20 @@ module YNAB
|
|
|
99
115
|
def self.build_from_hash(attributes)
|
|
100
116
|
return nil unless attributes.is_a?(Hash)
|
|
101
117
|
attributes = attributes.transform_keys(&:to_sym)
|
|
118
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
119
|
+
map = acceptable_attribute_map
|
|
102
120
|
transformed_hash = {}
|
|
103
|
-
|
|
104
|
-
if attributes.key?(
|
|
121
|
+
acceptable_openapi_types.each_pair do |key, type|
|
|
122
|
+
if attributes.key?(map[key]) && attributes[map[key]].nil?
|
|
105
123
|
transformed_hash["#{key}"] = nil
|
|
106
124
|
elsif type =~ /\AArray<(.*)>/i
|
|
107
125
|
# check to ensure the input is an array given that the attribute
|
|
108
126
|
# is documented as an array but the input is not
|
|
109
|
-
if attributes[
|
|
110
|
-
transformed_hash["#{key}"] = attributes[
|
|
127
|
+
if attributes[map[key]].is_a?(Array)
|
|
128
|
+
transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
|
|
111
129
|
end
|
|
112
|
-
elsif !attributes[
|
|
113
|
-
transformed_hash["#{key}"] = _deserialize(type, attributes[
|
|
130
|
+
elsif !attributes[map[key]].nil?
|
|
131
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
|
|
114
132
|
end
|
|
115
133
|
end
|
|
116
134
|
new(transformed_hash)
|
|
@@ -120,10 +138,11 @@ module YNAB
|
|
|
120
138
|
# @return [Hash] Returns the object in the form of hash
|
|
121
139
|
def to_hash
|
|
122
140
|
hash = {}
|
|
123
|
-
|
|
141
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
142
|
+
self.class.acceptable_attribute_map.each_pair do |attr, param|
|
|
124
143
|
value = self.send(attr)
|
|
125
144
|
if value.nil?
|
|
126
|
-
is_nullable = self.class.
|
|
145
|
+
is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
|
|
127
146
|
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
128
147
|
end
|
|
129
148
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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
|
|
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. Read the [API Documentation](https://api.ynab.com) for more information about the API, including how to obtain an access token and how to use it to make requests.
|
|
5
5
|
|
|
6
6
|
Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
7
7
|
|
|
@@ -25,9 +25,14 @@ module YNAB
|
|
|
25
25
|
}
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
# Returns attribute mapping this model knows about
|
|
29
|
+
def self.acceptable_attribute_map
|
|
30
|
+
attribute_map
|
|
31
|
+
end
|
|
32
|
+
|
|
28
33
|
# Returns all the JSON keys this model knows about
|
|
29
34
|
def self.acceptable_attributes
|
|
30
|
-
|
|
35
|
+
acceptable_attribute_map.values
|
|
31
36
|
end
|
|
32
37
|
|
|
33
38
|
# Attribute type mapping.
|
|
@@ -44,6 +49,16 @@ module YNAB
|
|
|
44
49
|
])
|
|
45
50
|
end
|
|
46
51
|
|
|
52
|
+
# Returns attribute type mapping
|
|
53
|
+
def self.acceptable_openapi_types
|
|
54
|
+
openapi_types
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Returns the nullable attributes
|
|
58
|
+
def self.acceptable_openapi_nullable
|
|
59
|
+
openapi_nullable
|
|
60
|
+
end
|
|
61
|
+
|
|
47
62
|
# Initializes the object
|
|
48
63
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
49
64
|
def initialize(attributes = {})
|
|
@@ -52,9 +67,10 @@ module YNAB
|
|
|
52
67
|
end
|
|
53
68
|
|
|
54
69
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
70
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
55
71
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
56
|
-
if (!
|
|
57
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummariesResponseData`. Please check the name to make sure it's valid. List of attributes: " +
|
|
72
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
73
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummariesResponseData`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
58
74
|
end
|
|
59
75
|
h[k.to_sym] = v
|
|
60
76
|
}
|
|
@@ -112,18 +128,20 @@ module YNAB
|
|
|
112
128
|
def self.build_from_hash(attributes)
|
|
113
129
|
return nil unless attributes.is_a?(Hash)
|
|
114
130
|
attributes = attributes.transform_keys(&:to_sym)
|
|
131
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
132
|
+
map = acceptable_attribute_map
|
|
115
133
|
transformed_hash = {}
|
|
116
|
-
|
|
117
|
-
if attributes.key?(
|
|
134
|
+
acceptable_openapi_types.each_pair do |key, type|
|
|
135
|
+
if attributes.key?(map[key]) && attributes[map[key]].nil?
|
|
118
136
|
transformed_hash["#{key}"] = nil
|
|
119
137
|
elsif type =~ /\AArray<(.*)>/i
|
|
120
138
|
# check to ensure the input is an array given that the attribute
|
|
121
139
|
# is documented as an array but the input is not
|
|
122
|
-
if attributes[
|
|
123
|
-
transformed_hash["#{key}"] = attributes[
|
|
140
|
+
if attributes[map[key]].is_a?(Array)
|
|
141
|
+
transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
|
|
124
142
|
end
|
|
125
|
-
elsif !attributes[
|
|
126
|
-
transformed_hash["#{key}"] = _deserialize(type, attributes[
|
|
143
|
+
elsif !attributes[map[key]].nil?
|
|
144
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
|
|
127
145
|
end
|
|
128
146
|
end
|
|
129
147
|
new(transformed_hash)
|
|
@@ -133,10 +151,11 @@ module YNAB
|
|
|
133
151
|
# @return [Hash] Returns the object in the form of hash
|
|
134
152
|
def to_hash
|
|
135
153
|
hash = {}
|
|
136
|
-
|
|
154
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
155
|
+
self.class.acceptable_attribute_map.each_pair do |attr, param|
|
|
137
156
|
value = self.send(attr)
|
|
138
157
|
if value.nil?
|
|
139
|
-
is_nullable = self.class.
|
|
158
|
+
is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
|
|
140
159
|
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
141
160
|
end
|
|
142
161
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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
|
|
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. Read the [API Documentation](https://api.ynab.com) for more information about the API, including how to obtain an access token and how to use it to make requests.
|
|
5
5
|
|
|
6
6
|
Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
7
7
|
|
|
@@ -80,9 +80,14 @@ module YNAB
|
|
|
80
80
|
}
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
+
# Returns attribute mapping this model knows about
|
|
84
|
+
def self.acceptable_attribute_map
|
|
85
|
+
attribute_map
|
|
86
|
+
end
|
|
87
|
+
|
|
83
88
|
# Returns all the JSON keys this model knows about
|
|
84
89
|
def self.acceptable_attributes
|
|
85
|
-
|
|
90
|
+
acceptable_attribute_map.values
|
|
86
91
|
end
|
|
87
92
|
|
|
88
93
|
# Attribute type mapping.
|
|
@@ -110,9 +115,21 @@ module YNAB
|
|
|
110
115
|
# List of attributes with nullable: true
|
|
111
116
|
def self.openapi_nullable
|
|
112
117
|
Set.new([
|
|
118
|
+
:'note',
|
|
119
|
+
:'age_of_money',
|
|
113
120
|
])
|
|
114
121
|
end
|
|
115
122
|
|
|
123
|
+
# Returns attribute type mapping
|
|
124
|
+
def self.acceptable_openapi_types
|
|
125
|
+
openapi_types
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Returns the nullable attributes
|
|
129
|
+
def self.acceptable_openapi_nullable
|
|
130
|
+
openapi_nullable
|
|
131
|
+
end
|
|
132
|
+
|
|
116
133
|
# List of class defined in allOf (OpenAPI v3)
|
|
117
134
|
def self.openapi_all_of
|
|
118
135
|
[
|
|
@@ -128,9 +145,10 @@ module YNAB
|
|
|
128
145
|
end
|
|
129
146
|
|
|
130
147
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
148
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
131
149
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
132
|
-
if (!
|
|
133
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummary`. Please check the name to make sure it's valid. List of attributes: " +
|
|
150
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
151
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummary`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
134
152
|
end
|
|
135
153
|
h[k.to_sym] = v
|
|
136
154
|
}
|
|
@@ -260,18 +278,20 @@ module YNAB
|
|
|
260
278
|
def self.build_from_hash(attributes)
|
|
261
279
|
return nil unless attributes.is_a?(Hash)
|
|
262
280
|
attributes = attributes.transform_keys(&:to_sym)
|
|
281
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
282
|
+
map = acceptable_attribute_map
|
|
263
283
|
transformed_hash = {}
|
|
264
|
-
|
|
265
|
-
if attributes.key?(
|
|
284
|
+
acceptable_openapi_types.each_pair do |key, type|
|
|
285
|
+
if attributes.key?(map[key]) && attributes[map[key]].nil?
|
|
266
286
|
transformed_hash["#{key}"] = nil
|
|
267
287
|
elsif type =~ /\AArray<(.*)>/i
|
|
268
288
|
# check to ensure the input is an array given that the attribute
|
|
269
289
|
# is documented as an array but the input is not
|
|
270
|
-
if attributes[
|
|
271
|
-
transformed_hash["#{key}"] = attributes[
|
|
290
|
+
if attributes[map[key]].is_a?(Array)
|
|
291
|
+
transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
|
|
272
292
|
end
|
|
273
|
-
elsif !attributes[
|
|
274
|
-
transformed_hash["#{key}"] = _deserialize(type, attributes[
|
|
293
|
+
elsif !attributes[map[key]].nil?
|
|
294
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
|
|
275
295
|
end
|
|
276
296
|
end
|
|
277
297
|
new(transformed_hash)
|
|
@@ -281,10 +301,11 @@ module YNAB
|
|
|
281
301
|
# @return [Hash] Returns the object in the form of hash
|
|
282
302
|
def to_hash
|
|
283
303
|
hash = {}
|
|
284
|
-
|
|
304
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
305
|
+
self.class.acceptable_attribute_map.each_pair do |attr, param|
|
|
285
306
|
value = self.send(attr)
|
|
286
307
|
if value.nil?
|
|
287
|
-
is_nullable = self.class.
|
|
308
|
+
is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
|
|
288
309
|
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
289
310
|
end
|
|
290
311
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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
|
|
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. Read the [API Documentation](https://api.ynab.com) for more information about the API, including how to obtain an access token and how to use it to make requests.
|
|
5
5
|
|
|
6
6
|
Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
7
7
|
|
|
@@ -48,9 +48,14 @@ module YNAB
|
|
|
48
48
|
}
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
# Returns attribute mapping this model knows about
|
|
52
|
+
def self.acceptable_attribute_map
|
|
53
|
+
attribute_map
|
|
54
|
+
end
|
|
55
|
+
|
|
51
56
|
# Returns all the JSON keys this model knows about
|
|
52
57
|
def self.acceptable_attributes
|
|
53
|
-
|
|
58
|
+
acceptable_attribute_map.values
|
|
54
59
|
end
|
|
55
60
|
|
|
56
61
|
# Attribute type mapping.
|
|
@@ -75,6 +80,16 @@ module YNAB
|
|
|
75
80
|
])
|
|
76
81
|
end
|
|
77
82
|
|
|
83
|
+
# Returns attribute type mapping
|
|
84
|
+
def self.acceptable_openapi_types
|
|
85
|
+
openapi_types
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Returns the nullable attributes
|
|
89
|
+
def self.acceptable_openapi_nullable
|
|
90
|
+
openapi_nullable
|
|
91
|
+
end
|
|
92
|
+
|
|
78
93
|
# Initializes the object
|
|
79
94
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
80
95
|
def initialize(attributes = {})
|
|
@@ -83,9 +98,10 @@ module YNAB
|
|
|
83
98
|
end
|
|
84
99
|
|
|
85
100
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
101
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
86
102
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
87
|
-
if (!
|
|
88
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummaryBase`. Please check the name to make sure it's valid. List of attributes: " +
|
|
103
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
104
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthSummaryBase`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
89
105
|
end
|
|
90
106
|
h[k.to_sym] = v
|
|
91
107
|
}
|
|
@@ -175,18 +191,20 @@ module YNAB
|
|
|
175
191
|
def self.build_from_hash(attributes)
|
|
176
192
|
return nil unless attributes.is_a?(Hash)
|
|
177
193
|
attributes = attributes.transform_keys(&:to_sym)
|
|
194
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
195
|
+
map = acceptable_attribute_map
|
|
178
196
|
transformed_hash = {}
|
|
179
|
-
|
|
180
|
-
if attributes.key?(
|
|
197
|
+
acceptable_openapi_types.each_pair do |key, type|
|
|
198
|
+
if attributes.key?(map[key]) && attributes[map[key]].nil?
|
|
181
199
|
transformed_hash["#{key}"] = nil
|
|
182
200
|
elsif type =~ /\AArray<(.*)>/i
|
|
183
201
|
# check to ensure the input is an array given that the attribute
|
|
184
202
|
# is documented as an array but the input is not
|
|
185
|
-
if attributes[
|
|
186
|
-
transformed_hash["#{key}"] = attributes[
|
|
203
|
+
if attributes[map[key]].is_a?(Array)
|
|
204
|
+
transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
|
|
187
205
|
end
|
|
188
|
-
elsif !attributes[
|
|
189
|
-
transformed_hash["#{key}"] = _deserialize(type, attributes[
|
|
206
|
+
elsif !attributes[map[key]].nil?
|
|
207
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
|
|
190
208
|
end
|
|
191
209
|
end
|
|
192
210
|
new(transformed_hash)
|
|
@@ -196,10 +214,11 @@ module YNAB
|
|
|
196
214
|
# @return [Hash] Returns the object in the form of hash
|
|
197
215
|
def to_hash
|
|
198
216
|
hash = {}
|
|
199
|
-
|
|
217
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
218
|
+
self.class.acceptable_attribute_map.each_pair do |attr, param|
|
|
200
219
|
value = self.send(attr)
|
|
201
220
|
if value.nil?
|
|
202
|
-
is_nullable = self.class.
|
|
221
|
+
is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
|
|
203
222
|
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
204
223
|
end
|
|
205
224
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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
|
|
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. Read the [API Documentation](https://api.ynab.com) for more information about the API, including how to obtain an access token and how to use it to make requests.
|
|
5
5
|
|
|
6
6
|
Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
7
7
|
|
|
@@ -19,15 +19,40 @@ module YNAB
|
|
|
19
19
|
# The id of the category group to which this category belongs. An internal category group may not be specified.
|
|
20
20
|
attr_accessor :category_group_id
|
|
21
21
|
|
|
22
|
-
# The goal target amount in milliunits format. If value is specified and goal has not already been configured for category, a monthly goal will be created for the category with this target amount. If goal_type is not specified, it will default to 'NEED' or 'MF' for Credit Card Payment categories.
|
|
22
|
+
# The goal target amount in milliunits format. If value is specified and goal has not already been configured for category, a monthly goal will be created for the category with this target amount. If goal_type is not specified, it will default to 'NEED', or to 'MF' for Credit Card Payment categories and 'DEBT' for categories paired to a loan account. When updating a category, passing null removes any existing target.
|
|
23
23
|
attr_accessor :goal_target
|
|
24
24
|
|
|
25
|
-
# The goal target date in ISO format (e.g. 2016-12-01).
|
|
25
|
+
# The goal target date in ISO format (e.g. 2016-12-01). Not supported for categories paired to a loan account.
|
|
26
26
|
attr_accessor :goal_target_date
|
|
27
27
|
|
|
28
|
-
# Whether the goal requires the full target amount each period. Only supported for 'NEED' goals. When true, the goal is configured as 'Set aside another...'. When false, the goal is configured as 'Refill up to...'.
|
|
28
|
+
# Whether the goal requires the full target amount each period. Only supported for 'NEED' goals, and not supported for Credit Card Payment categories or categories paired to a loan account. When true, the goal is configured as 'Set aside another...'. When false, the goal is configured as 'Refill up to...'.
|
|
29
29
|
attr_accessor :goal_needs_whole_amount
|
|
30
30
|
|
|
31
|
+
# When specified, configures a recurring 'NEED' target of goal_target that repeats at this frequency, replacing any existing target. Requires goal_target. Cannot be combined with goal_target_date and is not supported for Credit Card Payment categories or categories paired to a loan account. Omit to leave an existing target's cadence unchanged.
|
|
32
|
+
attr_accessor :goal_frequency
|
|
33
|
+
|
|
34
|
+
class EnumAttributeValidator
|
|
35
|
+
attr_reader :datatype
|
|
36
|
+
attr_reader :allowable_values
|
|
37
|
+
|
|
38
|
+
def initialize(datatype, allowable_values)
|
|
39
|
+
@allowable_values = allowable_values.map do |value|
|
|
40
|
+
case datatype.to_s
|
|
41
|
+
when /Integer/i
|
|
42
|
+
value.to_i
|
|
43
|
+
when /Float/i
|
|
44
|
+
value.to_f
|
|
45
|
+
else
|
|
46
|
+
value
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def valid?(value)
|
|
52
|
+
!value || allowable_values.include?(value)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
31
56
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
32
57
|
def self.attribute_map
|
|
33
58
|
{
|
|
@@ -36,13 +61,19 @@ module YNAB
|
|
|
36
61
|
:'category_group_id' => :'category_group_id',
|
|
37
62
|
:'goal_target' => :'goal_target',
|
|
38
63
|
:'goal_target_date' => :'goal_target_date',
|
|
39
|
-
:'goal_needs_whole_amount' => :'goal_needs_whole_amount'
|
|
64
|
+
:'goal_needs_whole_amount' => :'goal_needs_whole_amount',
|
|
65
|
+
:'goal_frequency' => :'goal_frequency'
|
|
40
66
|
}
|
|
41
67
|
end
|
|
42
68
|
|
|
69
|
+
# Returns attribute mapping this model knows about
|
|
70
|
+
def self.acceptable_attribute_map
|
|
71
|
+
attribute_map
|
|
72
|
+
end
|
|
73
|
+
|
|
43
74
|
# Returns all the JSON keys this model knows about
|
|
44
75
|
def self.acceptable_attributes
|
|
45
|
-
|
|
76
|
+
acceptable_attribute_map.values
|
|
46
77
|
end
|
|
47
78
|
|
|
48
79
|
# Attribute type mapping.
|
|
@@ -53,16 +84,32 @@ module YNAB
|
|
|
53
84
|
:'category_group_id' => :'String',
|
|
54
85
|
:'goal_target' => :'Integer',
|
|
55
86
|
:'goal_target_date' => :'Date',
|
|
56
|
-
:'goal_needs_whole_amount' => :'Boolean'
|
|
87
|
+
:'goal_needs_whole_amount' => :'Boolean',
|
|
88
|
+
:'goal_frequency' => :'String'
|
|
57
89
|
}
|
|
58
90
|
end
|
|
59
91
|
|
|
60
92
|
# List of attributes with nullable: true
|
|
61
93
|
def self.openapi_nullable
|
|
62
94
|
Set.new([
|
|
95
|
+
:'name',
|
|
96
|
+
:'note',
|
|
97
|
+
:'goal_target',
|
|
98
|
+
:'goal_target_date',
|
|
99
|
+
:'goal_needs_whole_amount',
|
|
63
100
|
])
|
|
64
101
|
end
|
|
65
102
|
|
|
103
|
+
# Returns attribute type mapping
|
|
104
|
+
def self.acceptable_openapi_types
|
|
105
|
+
openapi_types
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Returns the nullable attributes
|
|
109
|
+
def self.acceptable_openapi_nullable
|
|
110
|
+
openapi_nullable
|
|
111
|
+
end
|
|
112
|
+
|
|
66
113
|
# List of class defined in allOf (OpenAPI v3)
|
|
67
114
|
def self.openapi_all_of
|
|
68
115
|
[
|
|
@@ -78,9 +125,10 @@ module YNAB
|
|
|
78
125
|
end
|
|
79
126
|
|
|
80
127
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
128
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
81
129
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
82
|
-
if (!
|
|
83
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::NewCategory`. Please check the name to make sure it's valid. List of attributes: " +
|
|
130
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
131
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::NewCategory`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
84
132
|
end
|
|
85
133
|
h[k.to_sym] = v
|
|
86
134
|
}
|
|
@@ -108,6 +156,10 @@ module YNAB
|
|
|
108
156
|
if attributes.key?(:'goal_needs_whole_amount')
|
|
109
157
|
self.goal_needs_whole_amount = attributes[:'goal_needs_whole_amount']
|
|
110
158
|
end
|
|
159
|
+
|
|
160
|
+
if attributes.key?(:'goal_frequency')
|
|
161
|
+
self.goal_frequency = attributes[:'goal_frequency']
|
|
162
|
+
end
|
|
111
163
|
end
|
|
112
164
|
|
|
113
165
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -120,9 +172,17 @@ module YNAB
|
|
|
120
172
|
# Check to see if the all the properties in the model are valid
|
|
121
173
|
# @return true if the model is valid
|
|
122
174
|
def valid?
|
|
175
|
+
goal_frequency_validator = EnumAttributeValidator.new('String', ["monthly", "weekly", "yearly"])
|
|
176
|
+
return false unless goal_frequency_validator.valid?(@goal_frequency)
|
|
123
177
|
true
|
|
124
178
|
end
|
|
125
179
|
|
|
180
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
181
|
+
# @param [Object] goal_frequency Object to be assigned
|
|
182
|
+
def goal_frequency=(goal_frequency)
|
|
183
|
+
@goal_frequency = goal_frequency
|
|
184
|
+
end
|
|
185
|
+
|
|
126
186
|
# Checks equality by comparing each attribute.
|
|
127
187
|
# @param [Object] Object to be compared
|
|
128
188
|
def ==(o)
|
|
@@ -133,7 +193,8 @@ module YNAB
|
|
|
133
193
|
category_group_id == o.category_group_id &&
|
|
134
194
|
goal_target == o.goal_target &&
|
|
135
195
|
goal_target_date == o.goal_target_date &&
|
|
136
|
-
goal_needs_whole_amount == o.goal_needs_whole_amount
|
|
196
|
+
goal_needs_whole_amount == o.goal_needs_whole_amount &&
|
|
197
|
+
goal_frequency == o.goal_frequency
|
|
137
198
|
end
|
|
138
199
|
|
|
139
200
|
# @see the `==` method
|
|
@@ -145,7 +206,7 @@ module YNAB
|
|
|
145
206
|
# Calculates hash code according to all attributes.
|
|
146
207
|
# @return [Integer] Hash code
|
|
147
208
|
def hash
|
|
148
|
-
[name, note, category_group_id, goal_target, goal_target_date, goal_needs_whole_amount].hash
|
|
209
|
+
[name, note, category_group_id, goal_target, goal_target_date, goal_needs_whole_amount, goal_frequency].hash
|
|
149
210
|
end
|
|
150
211
|
|
|
151
212
|
# Builds the object from hash
|
|
@@ -154,18 +215,20 @@ module YNAB
|
|
|
154
215
|
def self.build_from_hash(attributes)
|
|
155
216
|
return nil unless attributes.is_a?(Hash)
|
|
156
217
|
attributes = attributes.transform_keys(&:to_sym)
|
|
218
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
219
|
+
map = acceptable_attribute_map
|
|
157
220
|
transformed_hash = {}
|
|
158
|
-
|
|
159
|
-
if attributes.key?(
|
|
221
|
+
acceptable_openapi_types.each_pair do |key, type|
|
|
222
|
+
if attributes.key?(map[key]) && attributes[map[key]].nil?
|
|
160
223
|
transformed_hash["#{key}"] = nil
|
|
161
224
|
elsif type =~ /\AArray<(.*)>/i
|
|
162
225
|
# check to ensure the input is an array given that the attribute
|
|
163
226
|
# is documented as an array but the input is not
|
|
164
|
-
if attributes[
|
|
165
|
-
transformed_hash["#{key}"] = attributes[
|
|
227
|
+
if attributes[map[key]].is_a?(Array)
|
|
228
|
+
transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
|
|
166
229
|
end
|
|
167
|
-
elsif !attributes[
|
|
168
|
-
transformed_hash["#{key}"] = _deserialize(type, attributes[
|
|
230
|
+
elsif !attributes[map[key]].nil?
|
|
231
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
|
|
169
232
|
end
|
|
170
233
|
end
|
|
171
234
|
new(transformed_hash)
|
|
@@ -175,10 +238,11 @@ module YNAB
|
|
|
175
238
|
# @return [Hash] Returns the object in the form of hash
|
|
176
239
|
def to_hash
|
|
177
240
|
hash = {}
|
|
178
|
-
|
|
241
|
+
# include attributes inherited from allOf parents (the nearest declaration wins)
|
|
242
|
+
self.class.acceptable_attribute_map.each_pair do |attr, param|
|
|
179
243
|
value = self.send(attr)
|
|
180
244
|
if value.nil?
|
|
181
|
-
is_nullable = self.class.
|
|
245
|
+
is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
|
|
182
246
|
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
183
247
|
end
|
|
184
248
|
|