ynab 2.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/DEVELOPMENT.md +6 -2
  3. data/Gemfile.lock +1 -1
  4. data/README.md +3 -1
  5. data/Rakefile +3 -1
  6. data/docs/BulkTransactions.md +1 -1
  7. data/docs/CategoriesApi.md +22 -0
  8. data/docs/Category.md +1 -0
  9. data/docs/ExistingTransaction.md +18 -0
  10. data/docs/HybridTransaction.md +3 -2
  11. data/docs/NewTransaction.md +19 -0
  12. data/docs/PatchCategoryWrapper.md +8 -0
  13. data/docs/PatchPayeeWrapper.md +8 -0
  14. data/docs/PatchTransactionsWrapper.md +1 -1
  15. data/docs/PayeesApi.md +22 -0
  16. data/docs/PostTransactionsWrapper.md +2 -2
  17. data/docs/PutTransactionWrapper.md +1 -1
  18. data/docs/SaveCategory.md +10 -0
  19. data/docs/SavePayee.md +8 -0
  20. data/docs/SavePayeeResponse.md +8 -0
  21. data/docs/SavePayeeResponseData.md +9 -0
  22. data/docs/SaveTransactionWithIdOrImportId.md +20 -0
  23. data/docs/SaveTransactionWithOptionalFields.md +2 -3
  24. data/docs/ScheduledTransactionDetail.md +2 -1
  25. data/docs/ScheduledTransactionSummary.md +2 -1
  26. data/docs/TransactionClearedStatus.md +7 -0
  27. data/docs/TransactionDetail.md +3 -2
  28. data/docs/TransactionFlagColor.md +7 -0
  29. data/docs/TransactionSummary.md +3 -2
  30. data/docs/TransactionsApi.md +7 -7
  31. data/lib/ynab/api/accounts_api.rb +2 -2
  32. data/lib/ynab/api/budgets_api.rb +2 -2
  33. data/lib/ynab/api/categories_api.rb +82 -2
  34. data/lib/ynab/api/months_api.rb +2 -2
  35. data/lib/ynab/api/payee_locations_api.rb +2 -2
  36. data/lib/ynab/api/payees_api.rb +82 -2
  37. data/lib/ynab/api/scheduled_transactions_api.rb +2 -2
  38. data/lib/ynab/api/transactions_api.rb +12 -12
  39. data/lib/ynab/api/user_api.rb +2 -2
  40. data/lib/ynab/api_client.rb +2 -2
  41. data/lib/ynab/configuration.rb +14 -11
  42. data/lib/ynab/models/account.rb +13 -20
  43. data/lib/ynab/models/account_response.rb +13 -20
  44. data/lib/ynab/models/account_response_data.rb +13 -20
  45. data/lib/ynab/models/account_type.rb +2 -2
  46. data/lib/ynab/models/accounts_response.rb +13 -20
  47. data/lib/ynab/models/accounts_response_data.rb +13 -20
  48. data/lib/ynab/models/budget_detail.rb +13 -21
  49. data/lib/ynab/models/budget_detail_response.rb +13 -20
  50. data/lib/ynab/models/budget_detail_response_data.rb +13 -20
  51. data/lib/ynab/models/budget_settings.rb +13 -20
  52. data/lib/ynab/models/budget_settings_response.rb +13 -20
  53. data/lib/ynab/models/budget_settings_response_data.rb +13 -20
  54. data/lib/ynab/models/budget_summary.rb +13 -20
  55. data/lib/ynab/models/budget_summary_response.rb +13 -20
  56. data/lib/ynab/models/budget_summary_response_data.rb +13 -20
  57. data/lib/ynab/models/bulk_response.rb +13 -20
  58. data/lib/ynab/models/bulk_response_data.rb +13 -20
  59. data/lib/ynab/models/bulk_response_data_bulk.rb +13 -20
  60. data/lib/ynab/models/bulk_transactions.rb +14 -21
  61. data/lib/ynab/models/categories_response.rb +13 -20
  62. data/lib/ynab/models/categories_response_data.rb +13 -20
  63. data/lib/ynab/models/category.rb +25 -21
  64. data/lib/ynab/models/category_group.rb +13 -20
  65. data/lib/ynab/models/category_group_with_categories.rb +14 -22
  66. data/lib/ynab/models/category_response.rb +13 -20
  67. data/lib/ynab/models/category_response_data.rb +13 -20
  68. data/lib/ynab/models/currency_format.rb +13 -20
  69. data/lib/ynab/models/date_format.rb +13 -20
  70. data/lib/ynab/models/error_detail.rb +13 -20
  71. data/lib/ynab/models/error_response.rb +13 -20
  72. data/lib/ynab/models/existing_transaction.rb +359 -0
  73. data/lib/ynab/models/hybrid_transaction.rb +28 -43
  74. data/lib/ynab/models/hybrid_transactions_response.rb +13 -20
  75. data/lib/ynab/models/hybrid_transactions_response_data.rb +13 -20
  76. data/lib/ynab/models/month_detail.rb +13 -21
  77. data/lib/ynab/models/month_detail_response.rb +13 -20
  78. data/lib/ynab/models/month_detail_response_data.rb +13 -20
  79. data/lib/ynab/models/month_summaries_response.rb +13 -20
  80. data/lib/ynab/models/month_summaries_response_data.rb +13 -20
  81. data/lib/ynab/models/month_summary.rb +13 -20
  82. data/lib/ynab/models/new_transaction.rb +377 -0
  83. data/lib/ynab/models/patch_category_wrapper.rb +213 -0
  84. data/lib/ynab/models/patch_month_category_wrapper.rb +13 -20
  85. data/lib/ynab/models/patch_payee_wrapper.rb +213 -0
  86. data/lib/ynab/models/patch_transactions_wrapper.rb +14 -21
  87. data/lib/ynab/models/payee.rb +13 -20
  88. data/lib/ynab/models/payee_location.rb +13 -20
  89. data/lib/ynab/models/payee_location_response.rb +13 -20
  90. data/lib/ynab/models/payee_location_response_data.rb +13 -20
  91. data/lib/ynab/models/payee_locations_response.rb +13 -20
  92. data/lib/ynab/models/payee_locations_response_data.rb +13 -20
  93. data/lib/ynab/models/payee_response.rb +13 -20
  94. data/lib/ynab/models/payee_response_data.rb +13 -20
  95. data/lib/ynab/models/payees_response.rb +13 -20
  96. data/lib/ynab/models/payees_response_data.rb +13 -20
  97. data/lib/ynab/models/post_account_wrapper.rb +13 -20
  98. data/lib/ynab/models/post_transactions_wrapper.rb +15 -22
  99. data/lib/ynab/models/put_transaction_wrapper.rb +14 -21
  100. data/lib/ynab/models/save_account.rb +13 -20
  101. data/lib/ynab/models/save_category.rb +232 -0
  102. data/lib/ynab/models/save_category_response.rb +13 -20
  103. data/lib/ynab/models/save_category_response_data.rb +13 -20
  104. data/lib/ynab/models/save_month_category.rb +13 -20
  105. data/lib/ynab/models/save_payee.rb +220 -0
  106. data/lib/ynab/models/save_payee_response.rb +213 -0
  107. data/lib/ynab/models/save_payee_response_data.rb +224 -0
  108. data/lib/ynab/models/save_sub_transaction.rb +13 -20
  109. data/lib/ynab/models/save_transaction_with_id_or_import_id.rb +388 -0
  110. data/lib/ynab/models/save_transaction_with_optional_fields.rb +17 -59
  111. data/lib/ynab/models/save_transactions_response.rb +13 -20
  112. data/lib/ynab/models/save_transactions_response_data.rb +13 -20
  113. data/lib/ynab/models/scheduled_sub_transaction.rb +13 -20
  114. data/lib/ynab/models/scheduled_transaction_detail.rb +26 -32
  115. data/lib/ynab/models/scheduled_transaction_response.rb +13 -20
  116. data/lib/ynab/models/scheduled_transaction_response_data.rb +13 -20
  117. data/lib/ynab/models/scheduled_transaction_summary.rb +26 -31
  118. data/lib/ynab/models/scheduled_transactions_response.rb +13 -20
  119. data/lib/ynab/models/scheduled_transactions_response_data.rb +13 -20
  120. data/lib/ynab/models/sub_transaction.rb +13 -20
  121. data/lib/ynab/models/transaction_cleared_status.rb +41 -0
  122. data/lib/ynab/models/transaction_detail.rb +28 -43
  123. data/lib/ynab/models/transaction_flag_color.rb +45 -0
  124. data/lib/ynab/models/transaction_response.rb +13 -20
  125. data/lib/ynab/models/transaction_response_data.rb +13 -20
  126. data/lib/ynab/models/transaction_summary.rb +28 -42
  127. data/lib/ynab/models/transactions_import_response.rb +13 -20
  128. data/lib/ynab/models/transactions_import_response_data.rb +13 -20
  129. data/lib/ynab/models/transactions_response.rb +13 -20
  130. data/lib/ynab/models/transactions_response_data.rb +13 -20
  131. data/lib/ynab/models/user.rb +13 -20
  132. data/lib/ynab/models/user_response.rb +13 -20
  133. data/lib/ynab/models/user_response_data.rb +13 -20
  134. data/lib/ynab/version.rb +1 -1
  135. data/lib/ynab.rb +13 -12
  136. data/open_api_spec.yaml +464 -343
  137. data/ynab.gemspec +4 -3
  138. metadata +53 -31
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -86,7 +86,6 @@ module YNAB
86
86
  # List of class defined in allOf (OpenAPI v3)
87
87
  def self.openapi_all_of
88
88
  [
89
- :'MonthDetailAllOf',
90
89
  :'MonthSummary'
91
90
  ]
92
91
  end
@@ -197,37 +196,30 @@ module YNAB
197
196
  # @param [Hash] attributes Model attributes in the form of hash
198
197
  # @return [Object] Returns the model itself
199
198
  def self.build_from_hash(attributes)
200
- new.build_from_hash(attributes)
201
- end
202
-
203
- # Builds the object from hash
204
- # @param [Hash] attributes Model attributes in the form of hash
205
- # @return [Object] Returns the model itself
206
- def build_from_hash(attributes)
207
199
  return nil unless attributes.is_a?(Hash)
208
200
  attributes = attributes.transform_keys(&:to_sym)
209
- self.class.openapi_types.each_pair do |key, type|
210
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
211
- self.send("#{key}=", nil)
201
+ transformed_hash = {}
202
+ openapi_types.each_pair do |key, type|
203
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
204
+ transformed_hash["#{key}"] = nil
212
205
  elsif type =~ /\AArray<(.*)>/i
213
206
  # check to ensure the input is an array given that the attribute
214
207
  # is documented as an array but the input is not
215
- if attributes[self.class.attribute_map[key]].is_a?(Array)
216
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
208
+ if attributes[attribute_map[key]].is_a?(Array)
209
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
217
210
  end
218
- elsif !attributes[self.class.attribute_map[key]].nil?
219
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
211
+ elsif !attributes[attribute_map[key]].nil?
212
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
220
213
  end
221
214
  end
222
-
223
- self
215
+ new(transformed_hash)
224
216
  end
225
217
 
226
218
  # Deserializes the data based on type
227
219
  # @param string type Data type
228
220
  # @param string value Value to be deserialized
229
221
  # @return [Object] Deserialized data
230
- def _deserialize(type, value)
222
+ def self._deserialize(type, value)
231
223
  case type.to_sym
232
224
  when :Time
233
225
  Time.parse(value)
@@ -262,7 +254,7 @@ module YNAB
262
254
  else # model
263
255
  # models (e.g. Pet) or oneOf
264
256
  klass = YNAB.const_get(type)
265
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
257
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
266
258
  end
267
259
  end
268
260
 
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -100,37 +100,30 @@ module YNAB
100
100
  # @param [Hash] attributes Model attributes in the form of hash
101
101
  # @return [Object] Returns the model itself
102
102
  def self.build_from_hash(attributes)
103
- new.build_from_hash(attributes)
104
- end
105
-
106
- # Builds the object from hash
107
- # @param [Hash] attributes Model attributes in the form of hash
108
- # @return [Object] Returns the model itself
109
- def build_from_hash(attributes)
110
103
  return nil unless attributes.is_a?(Hash)
111
104
  attributes = attributes.transform_keys(&:to_sym)
112
- self.class.openapi_types.each_pair do |key, type|
113
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
114
- self.send("#{key}=", nil)
105
+ transformed_hash = {}
106
+ openapi_types.each_pair do |key, type|
107
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
108
+ transformed_hash["#{key}"] = nil
115
109
  elsif type =~ /\AArray<(.*)>/i
116
110
  # check to ensure the input is an array given that the attribute
117
111
  # is documented as an array but the input is not
118
- if attributes[self.class.attribute_map[key]].is_a?(Array)
119
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
112
+ if attributes[attribute_map[key]].is_a?(Array)
113
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
120
114
  end
121
- elsif !attributes[self.class.attribute_map[key]].nil?
122
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
115
+ elsif !attributes[attribute_map[key]].nil?
116
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
123
117
  end
124
118
  end
125
-
126
- self
119
+ new(transformed_hash)
127
120
  end
128
121
 
129
122
  # Deserializes the data based on type
130
123
  # @param string type Data type
131
124
  # @param string value Value to be deserialized
132
125
  # @return [Object] Deserialized data
133
- def _deserialize(type, value)
126
+ def self._deserialize(type, value)
134
127
  case type.to_sym
135
128
  when :Time
136
129
  Time.parse(value)
@@ -165,7 +158,7 @@ module YNAB
165
158
  else # model
166
159
  # models (e.g. Pet) or oneOf
167
160
  klass = YNAB.const_get(type)
168
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
161
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
169
162
  end
170
163
  end
171
164
 
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -100,37 +100,30 @@ module YNAB
100
100
  # @param [Hash] attributes Model attributes in the form of hash
101
101
  # @return [Object] Returns the model itself
102
102
  def self.build_from_hash(attributes)
103
- new.build_from_hash(attributes)
104
- end
105
-
106
- # Builds the object from hash
107
- # @param [Hash] attributes Model attributes in the form of hash
108
- # @return [Object] Returns the model itself
109
- def build_from_hash(attributes)
110
103
  return nil unless attributes.is_a?(Hash)
111
104
  attributes = attributes.transform_keys(&:to_sym)
112
- self.class.openapi_types.each_pair do |key, type|
113
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
114
- self.send("#{key}=", nil)
105
+ transformed_hash = {}
106
+ openapi_types.each_pair do |key, type|
107
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
108
+ transformed_hash["#{key}"] = nil
115
109
  elsif type =~ /\AArray<(.*)>/i
116
110
  # check to ensure the input is an array given that the attribute
117
111
  # is documented as an array but the input is not
118
- if attributes[self.class.attribute_map[key]].is_a?(Array)
119
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
112
+ if attributes[attribute_map[key]].is_a?(Array)
113
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
120
114
  end
121
- elsif !attributes[self.class.attribute_map[key]].nil?
122
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
115
+ elsif !attributes[attribute_map[key]].nil?
116
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
123
117
  end
124
118
  end
125
-
126
- self
119
+ new(transformed_hash)
127
120
  end
128
121
 
129
122
  # Deserializes the data based on type
130
123
  # @param string type Data type
131
124
  # @param string value Value to be deserialized
132
125
  # @return [Object] Deserialized data
133
- def _deserialize(type, value)
126
+ def self._deserialize(type, value)
134
127
  case type.to_sym
135
128
  when :Time
136
129
  Time.parse(value)
@@ -165,7 +158,7 @@ module YNAB
165
158
  else # model
166
159
  # models (e.g. Pet) or oneOf
167
160
  klass = YNAB.const_get(type)
168
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
161
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
169
162
  end
170
163
  end
171
164
 
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -100,37 +100,30 @@ module YNAB
100
100
  # @param [Hash] attributes Model attributes in the form of hash
101
101
  # @return [Object] Returns the model itself
102
102
  def self.build_from_hash(attributes)
103
- new.build_from_hash(attributes)
104
- end
105
-
106
- # Builds the object from hash
107
- # @param [Hash] attributes Model attributes in the form of hash
108
- # @return [Object] Returns the model itself
109
- def build_from_hash(attributes)
110
103
  return nil unless attributes.is_a?(Hash)
111
104
  attributes = attributes.transform_keys(&:to_sym)
112
- self.class.openapi_types.each_pair do |key, type|
113
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
114
- self.send("#{key}=", nil)
105
+ transformed_hash = {}
106
+ openapi_types.each_pair do |key, type|
107
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
108
+ transformed_hash["#{key}"] = nil
115
109
  elsif type =~ /\AArray<(.*)>/i
116
110
  # check to ensure the input is an array given that the attribute
117
111
  # is documented as an array but the input is not
118
- if attributes[self.class.attribute_map[key]].is_a?(Array)
119
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
112
+ if attributes[attribute_map[key]].is_a?(Array)
113
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
120
114
  end
121
- elsif !attributes[self.class.attribute_map[key]].nil?
122
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
115
+ elsif !attributes[attribute_map[key]].nil?
116
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
123
117
  end
124
118
  end
125
-
126
- self
119
+ new(transformed_hash)
127
120
  end
128
121
 
129
122
  # Deserializes the data based on type
130
123
  # @param string type Data type
131
124
  # @param string value Value to be deserialized
132
125
  # @return [Object] Deserialized data
133
- def _deserialize(type, value)
126
+ def self._deserialize(type, value)
134
127
  case type.to_sym
135
128
  when :Time
136
129
  Time.parse(value)
@@ -165,7 +158,7 @@ module YNAB
165
158
  else # model
166
159
  # models (e.g. Pet) or oneOf
167
160
  klass = YNAB.const_get(type)
168
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
161
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
169
162
  end
170
163
  end
171
164
 
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -113,37 +113,30 @@ module YNAB
113
113
  # @param [Hash] attributes Model attributes in the form of hash
114
114
  # @return [Object] Returns the model itself
115
115
  def self.build_from_hash(attributes)
116
- new.build_from_hash(attributes)
117
- end
118
-
119
- # Builds the object from hash
120
- # @param [Hash] attributes Model attributes in the form of hash
121
- # @return [Object] Returns the model itself
122
- def build_from_hash(attributes)
123
116
  return nil unless attributes.is_a?(Hash)
124
117
  attributes = attributes.transform_keys(&:to_sym)
125
- self.class.openapi_types.each_pair do |key, type|
126
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
127
- self.send("#{key}=", nil)
118
+ transformed_hash = {}
119
+ openapi_types.each_pair do |key, type|
120
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
121
+ transformed_hash["#{key}"] = nil
128
122
  elsif type =~ /\AArray<(.*)>/i
129
123
  # check to ensure the input is an array given that the attribute
130
124
  # is documented as an array but the input is not
131
- if attributes[self.class.attribute_map[key]].is_a?(Array)
132
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
125
+ if attributes[attribute_map[key]].is_a?(Array)
126
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
133
127
  end
134
- elsif !attributes[self.class.attribute_map[key]].nil?
135
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
128
+ elsif !attributes[attribute_map[key]].nil?
129
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
136
130
  end
137
131
  end
138
-
139
- self
132
+ new(transformed_hash)
140
133
  end
141
134
 
142
135
  # Deserializes the data based on type
143
136
  # @param string type Data type
144
137
  # @param string value Value to be deserialized
145
138
  # @return [Object] Deserialized data
146
- def _deserialize(type, value)
139
+ def self._deserialize(type, value)
147
140
  case type.to_sym
148
141
  when :Time
149
142
  Time.parse(value)
@@ -178,7 +171,7 @@ module YNAB
178
171
  else # model
179
172
  # models (e.g. Pet) or oneOf
180
173
  klass = YNAB.const_get(type)
181
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
174
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
182
175
  end
183
176
  end
184
177
 
@@ -3,10 +3,10 @@
3
3
 
4
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
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.70.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 6.6.0
9
+ Generator version: 7.6.0
10
10
 
11
11
  =end
12
12
 
@@ -176,37 +176,30 @@ module YNAB
176
176
  # @param [Hash] attributes Model attributes in the form of hash
177
177
  # @return [Object] Returns the model itself
178
178
  def self.build_from_hash(attributes)
179
- new.build_from_hash(attributes)
180
- end
181
-
182
- # Builds the object from hash
183
- # @param [Hash] attributes Model attributes in the form of hash
184
- # @return [Object] Returns the model itself
185
- def build_from_hash(attributes)
186
179
  return nil unless attributes.is_a?(Hash)
187
180
  attributes = attributes.transform_keys(&:to_sym)
188
- self.class.openapi_types.each_pair do |key, type|
189
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
190
- self.send("#{key}=", nil)
181
+ transformed_hash = {}
182
+ openapi_types.each_pair do |key, type|
183
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
184
+ transformed_hash["#{key}"] = nil
191
185
  elsif type =~ /\AArray<(.*)>/i
192
186
  # check to ensure the input is an array given that the attribute
193
187
  # is documented as an array but the input is not
194
- if attributes[self.class.attribute_map[key]].is_a?(Array)
195
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
188
+ if attributes[attribute_map[key]].is_a?(Array)
189
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
196
190
  end
197
- elsif !attributes[self.class.attribute_map[key]].nil?
198
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
191
+ elsif !attributes[attribute_map[key]].nil?
192
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
199
193
  end
200
194
  end
201
-
202
- self
195
+ new(transformed_hash)
203
196
  end
204
197
 
205
198
  # Deserializes the data based on type
206
199
  # @param string type Data type
207
200
  # @param string value Value to be deserialized
208
201
  # @return [Object] Deserialized data
209
- def _deserialize(type, value)
202
+ def self._deserialize(type, value)
210
203
  case type.to_sym
211
204
  when :Time
212
205
  Time.parse(value)
@@ -241,7 +234,7 @@ module YNAB
241
234
  else # model
242
235
  # models (e.g. Pet) or oneOf
243
236
  klass = YNAB.const_get(type)
244
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
237
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
245
238
  end
246
239
  end
247
240