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.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/DEVELOPMENT.md +6 -3
  3. data/Gemfile.lock +21 -19
  4. data/Rakefile +9 -8
  5. data/docs/ExistingCategory.md +4 -3
  6. data/docs/ExistingTransaction.md +1 -1
  7. data/docs/NewCategory.md +4 -3
  8. data/docs/NewTransaction.md +1 -1
  9. data/docs/SaveCategory.md +4 -3
  10. data/docs/SaveTransactionWithIdOrImportId.md +1 -1
  11. data/docs/SaveTransactionWithOptionalFields.md +1 -1
  12. data/docs/TransactionsApi.md +1 -1
  13. data/lib/ynab/api/accounts_api.rb +1 -1
  14. data/lib/ynab/api/categories_api.rb +1 -1
  15. data/lib/ynab/api/money_movements_api.rb +1 -1
  16. data/lib/ynab/api/months_api.rb +1 -1
  17. data/lib/ynab/api/payee_locations_api.rb +1 -1
  18. data/lib/ynab/api/payees_api.rb +1 -1
  19. data/lib/ynab/api/plans_api.rb +1 -1
  20. data/lib/ynab/api/scheduled_transactions_api.rb +1 -1
  21. data/lib/ynab/api/transactions_api.rb +3 -3
  22. data/lib/ynab/api/user_api.rb +1 -1
  23. data/lib/ynab/api_client.rb +1 -1
  24. data/lib/ynab/api_model_base.rb +1 -1
  25. data/lib/ynab/configuration.rb +1 -1
  26. data/lib/ynab/models/account.rb +38 -13
  27. data/lib/ynab/models/account_base.rb +34 -12
  28. data/lib/ynab/models/account_response.rb +31 -12
  29. data/lib/ynab/models/account_response_data.rb +31 -12
  30. data/lib/ynab/models/account_type.rb +1 -1
  31. data/lib/ynab/models/accounts_response.rb +31 -12
  32. data/lib/ynab/models/accounts_response_data.rb +31 -12
  33. data/lib/ynab/models/bulk_response.rb +31 -12
  34. data/lib/ynab/models/bulk_response_data.rb +31 -12
  35. data/lib/ynab/models/bulk_response_data_bulk.rb +31 -12
  36. data/lib/ynab/models/bulk_transactions.rb +31 -12
  37. data/lib/ynab/models/categories_response.rb +31 -12
  38. data/lib/ynab/models/categories_response_data.rb +31 -12
  39. data/lib/ynab/models/category.rb +47 -12
  40. data/lib/ynab/models/category_base.rb +31 -12
  41. data/lib/ynab/models/category_group.rb +31 -12
  42. data/lib/ynab/models/category_group_with_categories.rb +31 -12
  43. data/lib/ynab/models/category_response.rb +31 -12
  44. data/lib/ynab/models/category_response_data.rb +31 -12
  45. data/lib/ynab/models/currency_format.rb +31 -12
  46. data/lib/ynab/models/date_format.rb +31 -12
  47. data/lib/ynab/models/error_detail.rb +31 -12
  48. data/lib/ynab/models/error_response.rb +31 -12
  49. data/lib/ynab/models/existing_category.rb +83 -19
  50. data/lib/ynab/models/existing_transaction.rb +36 -13
  51. data/lib/ynab/models/hybrid_transaction.rb +41 -12
  52. data/lib/ynab/models/hybrid_transactions_response.rb +31 -12
  53. data/lib/ynab/models/hybrid_transactions_response_data.rb +31 -12
  54. data/lib/ynab/models/money_movement.rb +38 -12
  55. data/lib/ynab/models/money_movement_base.rb +31 -12
  56. data/lib/ynab/models/money_movement_group.rb +31 -12
  57. data/lib/ynab/models/money_movement_groups_response.rb +31 -12
  58. data/lib/ynab/models/money_movement_groups_response_data.rb +31 -12
  59. data/lib/ynab/models/money_movements_response.rb +31 -12
  60. data/lib/ynab/models/money_movements_response_data.rb +31 -12
  61. data/lib/ynab/models/month_detail.rb +33 -12
  62. data/lib/ynab/models/month_detail_base.rb +33 -12
  63. data/lib/ynab/models/month_detail_response.rb +31 -12
  64. data/lib/ynab/models/month_detail_response_data.rb +31 -12
  65. data/lib/ynab/models/month_summaries_response.rb +31 -12
  66. data/lib/ynab/models/month_summaries_response_data.rb +31 -12
  67. data/lib/ynab/models/month_summary.rb +33 -12
  68. data/lib/ynab/models/month_summary_base.rb +31 -12
  69. data/lib/ynab/models/new_category.rb +83 -19
  70. data/lib/ynab/models/new_transaction.rb +36 -13
  71. data/lib/ynab/models/patch_category_group_wrapper.rb +31 -12
  72. data/lib/ynab/models/patch_category_wrapper.rb +31 -12
  73. data/lib/ynab/models/patch_month_category_wrapper.rb +31 -12
  74. data/lib/ynab/models/patch_payee_wrapper.rb +31 -12
  75. data/lib/ynab/models/patch_transactions_wrapper.rb +31 -12
  76. data/lib/ynab/models/payee.rb +31 -12
  77. data/lib/ynab/models/payee_location.rb +31 -12
  78. data/lib/ynab/models/payee_location_response.rb +31 -12
  79. data/lib/ynab/models/payee_location_response_data.rb +31 -12
  80. data/lib/ynab/models/payee_locations_response.rb +31 -12
  81. data/lib/ynab/models/payee_locations_response_data.rb +31 -12
  82. data/lib/ynab/models/payee_response.rb +31 -12
  83. data/lib/ynab/models/payee_response_data.rb +31 -12
  84. data/lib/ynab/models/payees_response.rb +31 -12
  85. data/lib/ynab/models/payees_response_data.rb +31 -12
  86. data/lib/ynab/models/plan_detail.rb +33 -12
  87. data/lib/ynab/models/plan_detail_response.rb +31 -12
  88. data/lib/ynab/models/plan_detail_response_data.rb +31 -12
  89. data/lib/ynab/models/plan_settings.rb +33 -14
  90. data/lib/ynab/models/plan_settings_response.rb +31 -12
  91. data/lib/ynab/models/plan_settings_response_data.rb +31 -12
  92. data/lib/ynab/models/plan_summary.rb +33 -12
  93. data/lib/ynab/models/plan_summary_response.rb +31 -12
  94. data/lib/ynab/models/plan_summary_response_data.rb +31 -12
  95. data/lib/ynab/models/post_account_wrapper.rb +31 -12
  96. data/lib/ynab/models/post_category_group_wrapper.rb +31 -12
  97. data/lib/ynab/models/post_category_wrapper.rb +31 -12
  98. data/lib/ynab/models/post_payee.rb +31 -12
  99. data/lib/ynab/models/post_payee_wrapper.rb +31 -12
  100. data/lib/ynab/models/post_scheduled_transaction_wrapper.rb +31 -12
  101. data/lib/ynab/models/post_transactions_wrapper.rb +31 -12
  102. data/lib/ynab/models/put_scheduled_transaction_wrapper.rb +31 -12
  103. data/lib/ynab/models/put_transaction_wrapper.rb +31 -12
  104. data/lib/ynab/models/save_account.rb +31 -12
  105. data/lib/ynab/models/save_account_type.rb +1 -1
  106. data/lib/ynab/models/save_category.rb +79 -20
  107. data/lib/ynab/models/save_category_group.rb +31 -12
  108. data/lib/ynab/models/save_category_group_response.rb +31 -12
  109. data/lib/ynab/models/save_category_group_response_data.rb +31 -12
  110. data/lib/ynab/models/save_category_response.rb +31 -12
  111. data/lib/ynab/models/save_category_response_data.rb +31 -12
  112. data/lib/ynab/models/save_month_category.rb +31 -12
  113. data/lib/ynab/models/save_payee.rb +31 -12
  114. data/lib/ynab/models/save_payee_response.rb +31 -12
  115. data/lib/ynab/models/save_payee_response_data.rb +31 -12
  116. data/lib/ynab/models/save_scheduled_transaction.rb +31 -12
  117. data/lib/ynab/models/save_sub_transaction.rb +31 -12
  118. data/lib/ynab/models/save_transaction_with_id_or_import_id.rb +36 -13
  119. data/lib/ynab/models/save_transaction_with_optional_fields.rb +32 -13
  120. data/lib/ynab/models/save_transactions_response.rb +31 -12
  121. data/lib/ynab/models/save_transactions_response_data.rb +31 -12
  122. data/lib/ynab/models/scheduled_sub_transaction.rb +37 -12
  123. data/lib/ynab/models/scheduled_sub_transaction_base.rb +31 -12
  124. data/lib/ynab/models/scheduled_transaction_detail.rb +36 -12
  125. data/lib/ynab/models/scheduled_transaction_frequency.rb +1 -1
  126. data/lib/ynab/models/scheduled_transaction_response.rb +31 -12
  127. data/lib/ynab/models/scheduled_transaction_response_data.rb +31 -12
  128. data/lib/ynab/models/scheduled_transaction_summary.rb +36 -12
  129. data/lib/ynab/models/scheduled_transaction_summary_base.rb +31 -12
  130. data/lib/ynab/models/scheduled_transactions_response.rb +31 -12
  131. data/lib/ynab/models/scheduled_transactions_response_data.rb +31 -12
  132. data/lib/ynab/models/sub_transaction.rb +38 -12
  133. data/lib/ynab/models/sub_transaction_base.rb +31 -12
  134. data/lib/ynab/models/transaction_cleared_status.rb +1 -1
  135. data/lib/ynab/models/transaction_detail.rb +41 -12
  136. data/lib/ynab/models/transaction_flag_color.rb +1 -1
  137. data/lib/ynab/models/transaction_response.rb +31 -12
  138. data/lib/ynab/models/transaction_response_data.rb +31 -12
  139. data/lib/ynab/models/transaction_summary.rb +41 -12
  140. data/lib/ynab/models/transaction_summary_base.rb +31 -12
  141. data/lib/ynab/models/transactions_import_response.rb +31 -12
  142. data/lib/ynab/models/transactions_import_response_data.rb +31 -12
  143. data/lib/ynab/models/transactions_response.rb +31 -12
  144. data/lib/ynab/models/transactions_response_data.rb +31 -12
  145. data/lib/ynab/models/user.rb +31 -12
  146. data/lib/ynab/models/user_response.rb +31 -12
  147. data/lib/ynab/models/user_response_data.rb +31 -12
  148. data/lib/ynab/version.rb +1 -1
  149. data/lib/ynab.rb +1 -1
  150. data/open_api_spec.yaml +61 -30
  151. data/templates/partial_model_generic.mustache +37 -11
  152. data/ynab.gemspec +2 -2
  153. 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 is at https://api.ynab.com
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
- attribute_map.values
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 (!self.class.attribute_map.key?(k.to_sym))
57
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::HybridTransactionsResponseData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
72
+ if (!acceptable_attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::HybridTransactionsResponseData`. 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
  }
@@ -111,18 +127,20 @@ module YNAB
111
127
  def self.build_from_hash(attributes)
112
128
  return nil unless attributes.is_a?(Hash)
113
129
  attributes = attributes.transform_keys(&:to_sym)
130
+ # include attributes inherited from allOf parents (the nearest declaration wins)
131
+ map = acceptable_attribute_map
114
132
  transformed_hash = {}
115
- openapi_types.each_pair do |key, type|
116
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
133
+ acceptable_openapi_types.each_pair do |key, type|
134
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
117
135
  transformed_hash["#{key}"] = nil
118
136
  elsif type =~ /\AArray<(.*)>/i
119
137
  # check to ensure the input is an array given that the attribute
120
138
  # is documented as an array but the input is not
121
- if attributes[attribute_map[key]].is_a?(Array)
122
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
139
+ if attributes[map[key]].is_a?(Array)
140
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
123
141
  end
124
- elsif !attributes[attribute_map[key]].nil?
125
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
142
+ elsif !attributes[map[key]].nil?
143
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
126
144
  end
127
145
  end
128
146
  new(transformed_hash)
@@ -132,10 +150,11 @@ module YNAB
132
150
  # @return [Hash] Returns the object in the form of hash
133
151
  def to_hash
134
152
  hash = {}
135
- self.class.attribute_map.each_pair do |attr, param|
153
+ # include attributes inherited from allOf parents (the nearest declaration wins)
154
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
136
155
  value = self.send(attr)
137
156
  if value.nil?
138
- is_nullable = self.class.openapi_nullable.include?(attr)
157
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
139
158
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
140
159
  end
141
160
 
@@ -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 is at https://api.ynab.com
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
 
@@ -60,9 +60,14 @@ module YNAB
60
60
  }
61
61
  end
62
62
 
63
+ # Returns attribute mapping this model knows about
64
+ def self.acceptable_attribute_map
65
+ attribute_map
66
+ end
67
+
63
68
  # Returns all the JSON keys this model knows about
64
69
  def self.acceptable_attributes
65
- attribute_map.values
70
+ acceptable_attribute_map.values
66
71
  end
67
72
 
68
73
  # Attribute type mapping.
@@ -85,9 +90,26 @@ module YNAB
85
90
  # List of attributes with nullable: true
86
91
  def self.openapi_nullable
87
92
  Set.new([
93
+ :'month',
94
+ :'moved_at',
95
+ :'note',
96
+ :'money_movement_group_id',
97
+ :'performed_by_user_id',
98
+ :'from_category_id',
99
+ :'to_category_id',
88
100
  ])
89
101
  end
90
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
+
91
113
  # List of class defined in allOf (OpenAPI v3)
92
114
  def self.openapi_all_of
93
115
  [
@@ -103,9 +125,10 @@ module YNAB
103
125
  end
104
126
 
105
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
106
129
  attributes = attributes.each_with_object({}) { |(k, v), h|
107
- if (!self.class.attribute_map.key?(k.to_sym))
108
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovement`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
130
+ if (!acceptable_attribute_map.key?(k.to_sym))
131
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovement`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
109
132
  end
110
133
  h[k.to_sym] = v
111
134
  }
@@ -206,18 +229,20 @@ module YNAB
206
229
  def self.build_from_hash(attributes)
207
230
  return nil unless attributes.is_a?(Hash)
208
231
  attributes = attributes.transform_keys(&:to_sym)
232
+ # include attributes inherited from allOf parents (the nearest declaration wins)
233
+ map = acceptable_attribute_map
209
234
  transformed_hash = {}
210
- openapi_types.each_pair do |key, type|
211
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
235
+ acceptable_openapi_types.each_pair do |key, type|
236
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
212
237
  transformed_hash["#{key}"] = nil
213
238
  elsif type =~ /\AArray<(.*)>/i
214
239
  # check to ensure the input is an array given that the attribute
215
240
  # is documented as an array but the input is not
216
- if attributes[attribute_map[key]].is_a?(Array)
217
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
241
+ if attributes[map[key]].is_a?(Array)
242
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
218
243
  end
219
- elsif !attributes[attribute_map[key]].nil?
220
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
244
+ elsif !attributes[map[key]].nil?
245
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
221
246
  end
222
247
  end
223
248
  new(transformed_hash)
@@ -227,10 +252,11 @@ module YNAB
227
252
  # @return [Hash] Returns the object in the form of hash
228
253
  def to_hash
229
254
  hash = {}
230
- self.class.attribute_map.each_pair do |attr, param|
255
+ # include attributes inherited from allOf parents (the nearest declaration wins)
256
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
231
257
  value = self.send(attr)
232
258
  if value.nil?
233
- is_nullable = self.class.openapi_nullable.include?(attr)
259
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
234
260
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
235
261
  end
236
262
 
@@ -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 is at https://api.ynab.com
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
 
@@ -52,9 +52,14 @@ module YNAB
52
52
  }
53
53
  end
54
54
 
55
+ # Returns attribute mapping this model knows about
56
+ def self.acceptable_attribute_map
57
+ attribute_map
58
+ end
59
+
55
60
  # Returns all the JSON keys this model knows about
56
61
  def self.acceptable_attributes
57
- attribute_map.values
62
+ acceptable_attribute_map.values
58
63
  end
59
64
 
60
65
  # Attribute type mapping.
@@ -85,6 +90,16 @@ module YNAB
85
90
  ])
86
91
  end
87
92
 
93
+ # Returns attribute type mapping
94
+ def self.acceptable_openapi_types
95
+ openapi_types
96
+ end
97
+
98
+ # Returns the nullable attributes
99
+ def self.acceptable_openapi_nullable
100
+ openapi_nullable
101
+ end
102
+
88
103
  # Initializes the object
89
104
  # @param [Hash] attributes Model attributes in the form of hash
90
105
  def initialize(attributes = {})
@@ -93,9 +108,10 @@ module YNAB
93
108
  end
94
109
 
95
110
  # check to see if the attribute exists and convert string to symbol for hash key
111
+ acceptable_attribute_map = self.class.acceptable_attribute_map
96
112
  attributes = attributes.each_with_object({}) { |(k, v), h|
97
- if (!self.class.attribute_map.key?(k.to_sym))
98
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementBase`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
113
+ if (!acceptable_attribute_map.key?(k.to_sym))
114
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementBase`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
99
115
  end
100
116
  h[k.to_sym] = v
101
117
  }
@@ -186,18 +202,20 @@ module YNAB
186
202
  def self.build_from_hash(attributes)
187
203
  return nil unless attributes.is_a?(Hash)
188
204
  attributes = attributes.transform_keys(&:to_sym)
205
+ # include attributes inherited from allOf parents (the nearest declaration wins)
206
+ map = acceptable_attribute_map
189
207
  transformed_hash = {}
190
- openapi_types.each_pair do |key, type|
191
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
208
+ acceptable_openapi_types.each_pair do |key, type|
209
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
192
210
  transformed_hash["#{key}"] = nil
193
211
  elsif type =~ /\AArray<(.*)>/i
194
212
  # check to ensure the input is an array given that the attribute
195
213
  # is documented as an array but the input is not
196
- if attributes[attribute_map[key]].is_a?(Array)
197
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
214
+ if attributes[map[key]].is_a?(Array)
215
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
198
216
  end
199
- elsif !attributes[attribute_map[key]].nil?
200
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
217
+ elsif !attributes[map[key]].nil?
218
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
201
219
  end
202
220
  end
203
221
  new(transformed_hash)
@@ -207,10 +225,11 @@ module YNAB
207
225
  # @return [Hash] Returns the object in the form of hash
208
226
  def to_hash
209
227
  hash = {}
210
- self.class.attribute_map.each_pair do |attr, param|
228
+ # include attributes inherited from allOf parents (the nearest declaration wins)
229
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
211
230
  value = self.send(attr)
212
231
  if value.nil?
213
- is_nullable = self.class.openapi_nullable.include?(attr)
232
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
214
233
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
215
234
  end
216
235
 
@@ -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 is at https://api.ynab.com
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
 
@@ -36,9 +36,14 @@ module YNAB
36
36
  }
37
37
  end
38
38
 
39
+ # Returns attribute mapping this model knows about
40
+ def self.acceptable_attribute_map
41
+ attribute_map
42
+ end
43
+
39
44
  # Returns all the JSON keys this model knows about
40
45
  def self.acceptable_attributes
41
- attribute_map.values
46
+ acceptable_attribute_map.values
42
47
  end
43
48
 
44
49
  # Attribute type mapping.
@@ -60,6 +65,16 @@ module YNAB
60
65
  ])
61
66
  end
62
67
 
68
+ # Returns attribute type mapping
69
+ def self.acceptable_openapi_types
70
+ openapi_types
71
+ end
72
+
73
+ # Returns the nullable attributes
74
+ def self.acceptable_openapi_nullable
75
+ openapi_nullable
76
+ end
77
+
63
78
  # Initializes the object
64
79
  # @param [Hash] attributes Model attributes in the form of hash
65
80
  def initialize(attributes = {})
@@ -68,9 +83,10 @@ module YNAB
68
83
  end
69
84
 
70
85
  # check to see if the attribute exists and convert string to symbol for hash key
86
+ acceptable_attribute_map = self.class.acceptable_attribute_map
71
87
  attributes = attributes.each_with_object({}) { |(k, v), h|
72
- if (!self.class.attribute_map.key?(k.to_sym))
73
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroup`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
88
+ if (!acceptable_attribute_map.key?(k.to_sym))
89
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroup`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
74
90
  end
75
91
  h[k.to_sym] = v
76
92
  }
@@ -142,18 +158,20 @@ module YNAB
142
158
  def self.build_from_hash(attributes)
143
159
  return nil unless attributes.is_a?(Hash)
144
160
  attributes = attributes.transform_keys(&:to_sym)
161
+ # include attributes inherited from allOf parents (the nearest declaration wins)
162
+ map = acceptable_attribute_map
145
163
  transformed_hash = {}
146
- openapi_types.each_pair do |key, type|
147
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
164
+ acceptable_openapi_types.each_pair do |key, type|
165
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
148
166
  transformed_hash["#{key}"] = nil
149
167
  elsif type =~ /\AArray<(.*)>/i
150
168
  # check to ensure the input is an array given that the attribute
151
169
  # is documented as an array but the input is not
152
- if attributes[attribute_map[key]].is_a?(Array)
153
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
170
+ if attributes[map[key]].is_a?(Array)
171
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
154
172
  end
155
- elsif !attributes[attribute_map[key]].nil?
156
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
173
+ elsif !attributes[map[key]].nil?
174
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
157
175
  end
158
176
  end
159
177
  new(transformed_hash)
@@ -163,10 +181,11 @@ module YNAB
163
181
  # @return [Hash] Returns the object in the form of hash
164
182
  def to_hash
165
183
  hash = {}
166
- self.class.attribute_map.each_pair do |attr, param|
184
+ # include attributes inherited from allOf parents (the nearest declaration wins)
185
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
167
186
  value = self.send(attr)
168
187
  if value.nil?
169
- is_nullable = self.class.openapi_nullable.include?(attr)
188
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
170
189
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
171
190
  end
172
191
 
@@ -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 is at https://api.ynab.com
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
- attribute_map.values
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 (!self.class.attribute_map.key?(k.to_sym))
52
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroupsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroupsResponse`. 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
- openapi_types.each_pair do |key, type|
104
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
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[attribute_map[key]].is_a?(Array)
110
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
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[attribute_map[key]].nil?
113
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
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
- self.class.attribute_map.each_pair do |attr, param|
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.openapi_nullable.include?(attr)
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 is at https://api.ynab.com
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
- attribute_map.values
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 (!self.class.attribute_map.key?(k.to_sym))
57
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroupsResponseData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
72
+ if (!acceptable_attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MoneyMovementGroupsResponseData`. 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
- openapi_types.each_pair do |key, type|
117
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
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[attribute_map[key]].is_a?(Array)
123
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
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[attribute_map[key]].nil?
126
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
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
- self.class.attribute_map.each_pair do |attr, param|
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.openapi_nullable.include?(attr)
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