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
 
@@ -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::MoneyMovementsResponse`. 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::MoneyMovementsResponse`. 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::MoneyMovementsResponseData`. 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::MoneyMovementsResponseData`. 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
 
@@ -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
 
@@ -84,9 +84,14 @@ module YNAB
84
84
  }
85
85
  end
86
86
 
87
+ # Returns attribute mapping this model knows about
88
+ def self.acceptable_attribute_map
89
+ attribute_map
90
+ end
91
+
87
92
  # Returns all the JSON keys this model knows about
88
93
  def self.acceptable_attributes
89
- attribute_map.values
94
+ acceptable_attribute_map.values
90
95
  end
91
96
 
92
97
  # Attribute type mapping.
@@ -115,9 +120,21 @@ module YNAB
115
120
  # List of attributes with nullable: true
116
121
  def self.openapi_nullable
117
122
  Set.new([
123
+ :'note',
124
+ :'age_of_money',
118
125
  ])
119
126
  end
120
127
 
128
+ # Returns attribute type mapping
129
+ def self.acceptable_openapi_types
130
+ openapi_types
131
+ end
132
+
133
+ # Returns the nullable attributes
134
+ def self.acceptable_openapi_nullable
135
+ openapi_nullable
136
+ end
137
+
121
138
  # List of class defined in allOf (OpenAPI v3)
122
139
  def self.openapi_all_of
123
140
  [
@@ -133,9 +150,10 @@ module YNAB
133
150
  end
134
151
 
135
152
  # check to see if the attribute exists and convert string to symbol for hash key
153
+ acceptable_attribute_map = self.class.acceptable_attribute_map
136
154
  attributes = attributes.each_with_object({}) { |(k, v), h|
137
- if (!self.class.attribute_map.key?(k.to_sym))
138
- fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthDetail`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
155
+ if (!acceptable_attribute_map.key?(k.to_sym))
156
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthDetail`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
139
157
  end
140
158
  h[k.to_sym] = v
141
159
  }
@@ -273,18 +291,20 @@ module YNAB
273
291
  def self.build_from_hash(attributes)
274
292
  return nil unless attributes.is_a?(Hash)
275
293
  attributes = attributes.transform_keys(&:to_sym)
294
+ # include attributes inherited from allOf parents (the nearest declaration wins)
295
+ map = acceptable_attribute_map
276
296
  transformed_hash = {}
277
- openapi_types.each_pair do |key, type|
278
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
297
+ acceptable_openapi_types.each_pair do |key, type|
298
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
279
299
  transformed_hash["#{key}"] = nil
280
300
  elsif type =~ /\AArray<(.*)>/i
281
301
  # check to ensure the input is an array given that the attribute
282
302
  # is documented as an array but the input is not
283
- if attributes[attribute_map[key]].is_a?(Array)
284
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
303
+ if attributes[map[key]].is_a?(Array)
304
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
285
305
  end
286
- elsif !attributes[attribute_map[key]].nil?
287
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
306
+ elsif !attributes[map[key]].nil?
307
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
288
308
  end
289
309
  end
290
310
  new(transformed_hash)
@@ -294,10 +314,11 @@ module YNAB
294
314
  # @return [Hash] Returns the object in the form of hash
295
315
  def to_hash
296
316
  hash = {}
297
- self.class.attribute_map.each_pair do |attr, param|
317
+ # include attributes inherited from allOf parents (the nearest declaration wins)
318
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
298
319
  value = self.send(attr)
299
320
  if value.nil?
300
- is_nullable = self.class.openapi_nullable.include?(attr)
321
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
301
322
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
302
323
  end
303
324
 
@@ -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.
@@ -75,9 +80,21 @@ module YNAB
75
80
  # List of attributes with nullable: true
76
81
  def self.openapi_nullable
77
82
  Set.new([
83
+ :'note',
84
+ :'age_of_money',
78
85
  ])
79
86
  end
80
87
 
88
+ # Returns attribute type mapping
89
+ def self.acceptable_openapi_types
90
+ openapi_types
91
+ end
92
+
93
+ # Returns the nullable attributes
94
+ def self.acceptable_openapi_nullable
95
+ openapi_nullable
96
+ end
97
+
81
98
  # List of class defined in allOf (OpenAPI v3)
82
99
  def self.openapi_all_of
83
100
  [
@@ -93,9 +110,10 @@ module YNAB
93
110
  end
94
111
 
95
112
  # check to see if the attribute exists and convert string to symbol for hash key
113
+ acceptable_attribute_map = self.class.acceptable_attribute_map
96
114
  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::MonthDetailBase`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
115
+ if (!acceptable_attribute_map.key?(k.to_sym))
116
+ fail ArgumentError, "`#{k}` is not a valid attribute in `YNAB::MonthDetailBase`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
99
117
  end
100
118
  h[k.to_sym] = v
101
119
  }
@@ -193,18 +211,20 @@ module YNAB
193
211
  def self.build_from_hash(attributes)
194
212
  return nil unless attributes.is_a?(Hash)
195
213
  attributes = attributes.transform_keys(&:to_sym)
214
+ # include attributes inherited from allOf parents (the nearest declaration wins)
215
+ map = acceptable_attribute_map
196
216
  transformed_hash = {}
197
- openapi_types.each_pair do |key, type|
198
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
217
+ acceptable_openapi_types.each_pair do |key, type|
218
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
199
219
  transformed_hash["#{key}"] = nil
200
220
  elsif type =~ /\AArray<(.*)>/i
201
221
  # check to ensure the input is an array given that the attribute
202
222
  # is documented as an array but the input is not
203
- if attributes[attribute_map[key]].is_a?(Array)
204
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
223
+ if attributes[map[key]].is_a?(Array)
224
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
205
225
  end
206
- elsif !attributes[attribute_map[key]].nil?
207
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
226
+ elsif !attributes[map[key]].nil?
227
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
208
228
  end
209
229
  end
210
230
  new(transformed_hash)
@@ -214,10 +234,11 @@ module YNAB
214
234
  # @return [Hash] Returns the object in the form of hash
215
235
  def to_hash
216
236
  hash = {}
217
- self.class.attribute_map.each_pair do |attr, param|
237
+ # include attributes inherited from allOf parents (the nearest declaration wins)
238
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
218
239
  value = self.send(attr)
219
240
  if value.nil?
220
- is_nullable = self.class.openapi_nullable.include?(attr)
241
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
221
242
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
222
243
  end
223
244
 
@@ -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::MonthDetailResponse`. 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::MonthDetailResponse`. 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
 
@@ -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::MonthDetailResponseData`. 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::MonthDetailResponseData`. 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