hydrogen-proton-api 1.9.1

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 (217) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +82 -0
  4. data/Rakefile +8 -0
  5. data/git_push.sh +55 -0
  6. data/lib/proton_api.rb +141 -0
  7. data/lib/proton_api/api/annuities_api.rb +347 -0
  8. data/lib/proton_api/api/business_financial_management_api.rb +293 -0
  9. data/lib/proton_api/api/cards_api.rb +185 -0
  10. data/lib/proton_api/api/financial_health_api.rb +239 -0
  11. data/lib/proton_api/api/financial_planning_api.rb +671 -0
  12. data/lib/proton_api/api/goals_api.rb +347 -0
  13. data/lib/proton_api/api/life_insurance_api.rb +77 -0
  14. data/lib/proton_api/api/personal_financial_management_api.rb +347 -0
  15. data/lib/proton_api/api/portfolio_construction_api.rb +77 -0
  16. data/lib/proton_api/api/portfolio_management_api.rb +77 -0
  17. data/lib/proton_api/api/risk_scoring_api.rb +185 -0
  18. data/lib/proton_api/api/simulations_api.rb +401 -0
  19. data/lib/proton_api/api/util_api.rb +185 -0
  20. data/lib/proton_api/api_client.rb +391 -0
  21. data/lib/proton_api/api_error.rb +38 -0
  22. data/lib/proton_api/auth_configuration.rb +181 -0
  23. data/lib/proton_api/configuration.rb +209 -0
  24. data/lib/proton_api/environment.rb +36 -0
  25. data/lib/proton_api/models/accumulation_goal_deposit_config.rb +338 -0
  26. data/lib/proton_api/models/annuity_calculator_accumulation_horizon_request.rb +459 -0
  27. data/lib/proton_api/models/annuity_calculator_annuity_amount_request.rb +461 -0
  28. data/lib/proton_api/models/annuity_calculator_decumulation_horizon_request.rb +459 -0
  29. data/lib/proton_api/models/annuity_calculator_deposit_amount_request.rb +468 -0
  30. data/lib/proton_api/models/annuity_calculator_initial_balance_request.rb +468 -0
  31. data/lib/proton_api/models/annuity_deposit_schedule.rb +254 -0
  32. data/lib/proton_api/models/answer.rb +186 -0
  33. data/lib/proton_api/models/backtest_request.rb +295 -0
  34. data/lib/proton_api/models/beneficiary_bequest_config.rb +257 -0
  35. data/lib/proton_api/models/budget_aggregation_account.rb +186 -0
  36. data/lib/proton_api/models/budget_calculator_request.rb +334 -0
  37. data/lib/proton_api/models/budget_component.rb +228 -0
  38. data/lib/proton_api/models/budget_details.rb +337 -0
  39. data/lib/proton_api/models/business_financial_health_check_request.rb +484 -0
  40. data/lib/proton_api/models/business_invoice_analysis_request.rb +361 -0
  41. data/lib/proton_api/models/calculator_deposit_schedule.rb +228 -0
  42. data/lib/proton_api/models/calculator_deposit_schedule1.rb +254 -0
  43. data/lib/proton_api/models/card_analysis_request.rb +372 -0
  44. data/lib/proton_api/models/card_limit_check_request.rb +231 -0
  45. data/lib/proton_api/models/card_transaction_authorization_request.rb +422 -0
  46. data/lib/proton_api/models/cash_analysis_request.rb +340 -0
  47. data/lib/proton_api/models/cash_flow_analysis_request.rb +366 -0
  48. data/lib/proton_api/models/children_education_config.rb +221 -0
  49. data/lib/proton_api/models/customer_analysis_request.rb +292 -0
  50. data/lib/proton_api/models/decision_tree_result_request.rb +236 -0
  51. data/lib/proton_api/models/decumulation_goal_deposit_config.rb +335 -0
  52. data/lib/proton_api/models/dimensional_risk_score_request.rb +282 -0
  53. data/lib/proton_api/models/diversification_score_request.rb +324 -0
  54. data/lib/proton_api/models/education_calculator_annual_cost_request.rb +450 -0
  55. data/lib/proton_api/models/education_calculator_deposit_amount_request.rb +483 -0
  56. data/lib/proton_api/models/education_calculator_percent_covered_request.rb +448 -0
  57. data/lib/proton_api/models/education_config.rb +271 -0
  58. data/lib/proton_api/models/emergency_fund_calculator_request.rb +561 -0
  59. data/lib/proton_api/models/event_study_request.rb +317 -0
  60. data/lib/proton_api/models/fee_analysis_request.rb +239 -0
  61. data/lib/proton_api/models/financial_health_check_request.rb +384 -0
  62. data/lib/proton_api/models/financial_picture_request.rb +270 -0
  63. data/lib/proton_api/models/financial_statement_analysis_request.rb +461 -0
  64. data/lib/proton_api/models/goal_accumulation_allocation_request.rb +729 -0
  65. data/lib/proton_api/models/goal_accumulation_recommendation_request.rb +622 -0
  66. data/lib/proton_api/models/goal_accumulation_status_request.rb +622 -0
  67. data/lib/proton_api/models/goal_config.rb +222 -0
  68. data/lib/proton_api/models/goal_decumulation_allocation_request.rb +764 -0
  69. data/lib/proton_api/models/goal_decumulation_recommendation_request.rb +657 -0
  70. data/lib/proton_api/models/goal_decumulation_status_request.rb +657 -0
  71. data/lib/proton_api/models/goal_withdrawal_config.rb +335 -0
  72. data/lib/proton_api/models/guaranteed_rate_benefit.rb +272 -0
  73. data/lib/proton_api/models/income_config.rb +266 -0
  74. data/lib/proton_api/models/life_insurance_needs_calculator_request.rb +515 -0
  75. data/lib/proton_api/models/location.rb +183 -0
  76. data/lib/proton_api/models/monte_carlo_request.rb +504 -0
  77. data/lib/proton_api/models/mortgage_calculator_down_payment_request.rb +299 -0
  78. data/lib/proton_api/models/mortgage_calculator_home_price_request.rb +299 -0
  79. data/lib/proton_api/models/mortgage_calculator_periodic_payment_request.rb +299 -0
  80. data/lib/proton_api/models/mvo_request.rb +366 -0
  81. data/lib/proton_api/models/opt_config.rb +300 -0
  82. data/lib/proton_api/models/opt_config1.rb +260 -0
  83. data/lib/proton_api/models/order_rebalance_request.rb +398 -0
  84. data/lib/proton_api/models/performance_calculator_request.rb +687 -0
  85. data/lib/proton_api/models/periods.rb +220 -0
  86. data/lib/proton_api/models/portfolio_optimization_score_request.rb +356 -0
  87. data/lib/proton_api/models/portfolio_what_if_request.rb +351 -0
  88. data/lib/proton_api/models/purchase_calculator_amount_request.rb +401 -0
  89. data/lib/proton_api/models/purchase_calculator_deposit_amount_request.rb +434 -0
  90. data/lib/proton_api/models/purchase_calculator_horizon_request.rb +356 -0
  91. data/lib/proton_api/models/ratio_targets.rb +328 -0
  92. data/lib/proton_api/models/ratio_targets1.rb +328 -0
  93. data/lib/proton_api/models/rebalancing_signal_request.rb +238 -0
  94. data/lib/proton_api/models/recommendation_config.rb +357 -0
  95. data/lib/proton_api/models/recommendation_config1.rb +346 -0
  96. data/lib/proton_api/models/recurring_transaction_analysis_request.rb +400 -0
  97. data/lib/proton_api/models/retirement_calculator_deposit_amount_request.rb +509 -0
  98. data/lib/proton_api/models/retirement_calculator_expenses_request.rb +476 -0
  99. data/lib/proton_api/models/retirement_calculator_percent_covered_request.rb +474 -0
  100. data/lib/proton_api/models/risk_allocation_request.rb +316 -0
  101. data/lib/proton_api/models/risk_score_request.rb +239 -0
  102. data/lib/proton_api/models/savings_calculator_request.rb +395 -0
  103. data/lib/proton_api/models/savings_deposit_schedule.rb +276 -0
  104. data/lib/proton_api/models/scenario_analysis_request.rb +401 -0
  105. data/lib/proton_api/models/sensitivity_analysis_request.rb +399 -0
  106. data/lib/proton_api/models/sensitivity_factor.rb +278 -0
  107. data/lib/proton_api/models/settings.rb +287 -0
  108. data/lib/proton_api/models/spending_analysis_request.rb +505 -0
  109. data/lib/proton_api/models/variable_annuity_request.rb +700 -0
  110. data/lib/proton_api/models/w_config.rb +382 -0
  111. data/lib/proton_api/models/w_config1.rb +347 -0
  112. data/lib/proton_api/version.rb +15 -0
  113. data/proton_api.gemspec +46 -0
  114. data/spec/api/annuities_api_spec.rb +107 -0
  115. data/spec/api/business_financial_management_api_spec.rb +95 -0
  116. data/spec/api/cards_api_spec.rb +71 -0
  117. data/spec/api/financial_health_api_spec.rb +83 -0
  118. data/spec/api/financial_planning_api_spec.rb +179 -0
  119. data/spec/api/goals_api_spec.rb +107 -0
  120. data/spec/api/life_insurance_api_spec.rb +47 -0
  121. data/spec/api/personal_financial_management_api_spec.rb +107 -0
  122. data/spec/api/portfolio_construction_api_spec.rb +47 -0
  123. data/spec/api/portfolio_management_api_spec.rb +47 -0
  124. data/spec/api/risk_scoring_api_spec.rb +71 -0
  125. data/spec/api/simulations_api_spec.rb +119 -0
  126. data/spec/api/util_api_spec.rb +71 -0
  127. data/spec/api_client_spec.rb +243 -0
  128. data/spec/configuration_spec.rb +42 -0
  129. data/spec/models/accumulation_goal_deposit_config_spec.rb +89 -0
  130. data/spec/models/annuity_calculator_accumulation_horizon_request_spec.rb +111 -0
  131. data/spec/models/annuity_calculator_annuity_amount_request_spec.rb +111 -0
  132. data/spec/models/annuity_calculator_decumulation_horizon_request_spec.rb +111 -0
  133. data/spec/models/annuity_calculator_deposit_amount_request_spec.rb +111 -0
  134. data/spec/models/annuity_calculator_initial_balance_request_spec.rb +111 -0
  135. data/spec/models/annuity_deposit_schedule_spec.rb +57 -0
  136. data/spec/models/answer_spec.rb +41 -0
  137. data/spec/models/backtest_request_spec.rb +95 -0
  138. data/spec/models/beneficiary_bequest_config_spec.rb +53 -0
  139. data/spec/models/budget_aggregation_account_spec.rb +41 -0
  140. data/spec/models/budget_calculator_request_spec.rb +105 -0
  141. data/spec/models/budget_component_spec.rb +53 -0
  142. data/spec/models/budget_details_spec.rb +99 -0
  143. data/spec/models/business_financial_health_check_request_spec.rb +143 -0
  144. data/spec/models/business_invoice_analysis_request_spec.rb +123 -0
  145. data/spec/models/calculator_deposit_schedule1_spec.rb +57 -0
  146. data/spec/models/calculator_deposit_schedule_spec.rb +51 -0
  147. data/spec/models/card_analysis_request_spec.rb +129 -0
  148. data/spec/models/card_limit_check_request_spec.rb +65 -0
  149. data/spec/models/card_transaction_authorization_request_spec.rb +157 -0
  150. data/spec/models/cash_analysis_request_spec.rb +115 -0
  151. data/spec/models/cash_flow_analysis_request_spec.rb +135 -0
  152. data/spec/models/children_education_config_spec.rb +47 -0
  153. data/spec/models/customer_analysis_request_spec.rb +101 -0
  154. data/spec/models/decision_tree_result_request_spec.rb +51 -0
  155. data/spec/models/decumulation_goal_deposit_config_spec.rb +89 -0
  156. data/spec/models/dimensional_risk_score_request_spec.rb +89 -0
  157. data/spec/models/diversification_score_request_spec.rb +111 -0
  158. data/spec/models/education_calculator_annual_cost_request_spec.rb +101 -0
  159. data/spec/models/education_calculator_deposit_amount_request_spec.rb +107 -0
  160. data/spec/models/education_calculator_percent_covered_request_spec.rb +101 -0
  161. data/spec/models/education_config_spec.rb +53 -0
  162. data/spec/models/emergency_fund_calculator_request_spec.rb +141 -0
  163. data/spec/models/event_study_request_spec.rb +109 -0
  164. data/spec/models/fee_analysis_request_spec.rb +77 -0
  165. data/spec/models/financial_health_check_request_spec.rb +95 -0
  166. data/spec/models/financial_picture_request_spec.rb +95 -0
  167. data/spec/models/financial_statement_analysis_request_spec.rb +155 -0
  168. data/spec/models/goal_accumulation_allocation_request_spec.rb +215 -0
  169. data/spec/models/goal_accumulation_recommendation_request_spec.rb +173 -0
  170. data/spec/models/goal_accumulation_status_request_spec.rb +173 -0
  171. data/spec/models/goal_config_spec.rb +47 -0
  172. data/spec/models/goal_decumulation_allocation_request_spec.rb +221 -0
  173. data/spec/models/goal_decumulation_recommendation_request_spec.rb +179 -0
  174. data/spec/models/goal_decumulation_status_request_spec.rb +179 -0
  175. data/spec/models/goal_withdrawal_config_spec.rb +89 -0
  176. data/spec/models/guaranteed_rate_benefit_spec.rb +59 -0
  177. data/spec/models/income_config_spec.rb +53 -0
  178. data/spec/models/life_insurance_needs_calculator_request_spec.rb +125 -0
  179. data/spec/models/location_spec.rb +41 -0
  180. data/spec/models/monte_carlo_request_spec.rb +179 -0
  181. data/spec/models/mortgage_calculator_down_payment_request_spec.rb +59 -0
  182. data/spec/models/mortgage_calculator_home_price_request_spec.rb +59 -0
  183. data/spec/models/mortgage_calculator_periodic_payment_request_spec.rb +59 -0
  184. data/spec/models/mvo_request_spec.rb +113 -0
  185. data/spec/models/opt_config1_spec.rb +69 -0
  186. data/spec/models/opt_config_spec.rb +81 -0
  187. data/spec/models/order_rebalance_request_spec.rb +123 -0
  188. data/spec/models/performance_calculator_request_spec.rb +233 -0
  189. data/spec/models/periods_spec.rb +47 -0
  190. data/spec/models/portfolio_optimization_score_request_spec.rb +127 -0
  191. data/spec/models/portfolio_what_if_request_spec.rb +123 -0
  192. data/spec/models/purchase_calculator_amount_request_spec.rb +93 -0
  193. data/spec/models/purchase_calculator_deposit_amount_request_spec.rb +99 -0
  194. data/spec/models/purchase_calculator_horizon_request_spec.rb +83 -0
  195. data/spec/models/ratio_targets1_spec.rb +71 -0
  196. data/spec/models/ratio_targets_spec.rb +71 -0
  197. data/spec/models/rebalancing_signal_request_spec.rb +71 -0
  198. data/spec/models/recommendation_config1_spec.rb +77 -0
  199. data/spec/models/recommendation_config_spec.rb +83 -0
  200. data/spec/models/recurring_transaction_analysis_request_spec.rb +129 -0
  201. data/spec/models/retirement_calculator_deposit_amount_request_spec.rb +113 -0
  202. data/spec/models/retirement_calculator_expenses_request_spec.rb +107 -0
  203. data/spec/models/retirement_calculator_percent_covered_request_spec.rb +107 -0
  204. data/spec/models/risk_allocation_request_spec.rb +85 -0
  205. data/spec/models/risk_score_request_spec.rb +71 -0
  206. data/spec/models/savings_calculator_request_spec.rb +99 -0
  207. data/spec/models/savings_deposit_schedule_spec.rb +63 -0
  208. data/spec/models/scenario_analysis_request_spec.rb +133 -0
  209. data/spec/models/sensitivity_analysis_request_spec.rb +133 -0
  210. data/spec/models/sensitivity_factor_spec.rb +59 -0
  211. data/spec/models/settings_spec.rb +79 -0
  212. data/spec/models/spending_analysis_request_spec.rb +187 -0
  213. data/spec/models/variable_annuity_request_spec.rb +209 -0
  214. data/spec/models/w_config1_spec.rb +65 -0
  215. data/spec/models/w_config_spec.rb +65 -0
  216. data/spec/spec_helper.rb +111 -0
  217. metadata +561 -0
@@ -0,0 +1,505 @@
1
+ =begin
2
+ #Hydrogen Proton API
3
+
4
+ #Financial engineering module of Hydrogen Atom
5
+
6
+ OpenAPI spec version: 1.9.1
7
+ Contact: info@hydrogenplatform.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.19
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module ProtonApi
16
+ class SpendingAnalysisRequest
17
+ attr_accessor :merchant_scope
18
+
19
+ attr_accessor :account_ids
20
+
21
+ attr_accessor :business_ids
22
+
23
+ attr_accessor :card_ids
24
+
25
+ attr_accessor :show_by_merchant
26
+
27
+ attr_accessor :show_by_period
28
+
29
+ attr_accessor :only_cleansed
30
+
31
+ attr_accessor :frequency
32
+
33
+ attr_accessor :end_date
34
+
35
+ attr_accessor :as_of_date
36
+
37
+ attr_accessor :transaction_category_scope
38
+
39
+ attr_accessor :start_date
40
+
41
+ attr_accessor :card_status_scope
42
+
43
+ attr_accessor :only_active_clients
44
+
45
+ attr_accessor :lookback_periods
46
+
47
+ attr_accessor :frequency_unit
48
+
49
+ attr_accessor :household_ids
50
+
51
+ attr_accessor :aggregation_account_ids
52
+
53
+ attr_accessor :currency_code
54
+
55
+ attr_accessor :client_ids
56
+
57
+ attr_accessor :scope
58
+
59
+ attr_accessor :currency_conversion
60
+
61
+ attr_accessor :transaction_status_scope
62
+
63
+ attr_accessor :show_by_category
64
+
65
+ class EnumAttributeValidator
66
+ attr_reader :datatype
67
+ attr_reader :allowable_values
68
+
69
+ def initialize(datatype, allowable_values)
70
+ @allowable_values = allowable_values.map do |value|
71
+ case datatype.to_s
72
+ when /Integer/i
73
+ value.to_i
74
+ when /Float/i
75
+ value.to_f
76
+ else
77
+ value
78
+ end
79
+ end
80
+ end
81
+
82
+ def valid?(value)
83
+ !value || allowable_values.include?(value)
84
+ end
85
+ end
86
+
87
+ # Attribute mapping from ruby-style variable name to JSON key.
88
+ def self.attribute_map
89
+ {
90
+ :'merchant_scope' => :'merchant_scope',
91
+ :'account_ids' => :'account_ids',
92
+ :'business_ids' => :'business_ids',
93
+ :'card_ids' => :'card_ids',
94
+ :'show_by_merchant' => :'show_by_merchant',
95
+ :'show_by_period' => :'show_by_period',
96
+ :'only_cleansed' => :'only_cleansed',
97
+ :'frequency' => :'frequency',
98
+ :'end_date' => :'end_date',
99
+ :'as_of_date' => :'as_of_date',
100
+ :'transaction_category_scope' => :'transaction_category_scope',
101
+ :'start_date' => :'start_date',
102
+ :'card_status_scope' => :'card_status_scope',
103
+ :'only_active_clients' => :'only_active_clients',
104
+ :'lookback_periods' => :'lookback_periods',
105
+ :'frequency_unit' => :'frequency_unit',
106
+ :'household_ids' => :'household_ids',
107
+ :'aggregation_account_ids' => :'aggregation_account_ids',
108
+ :'currency_code' => :'currency_code',
109
+ :'client_ids' => :'client_ids',
110
+ :'scope' => :'scope',
111
+ :'currency_conversion' => :'currency_conversion',
112
+ :'transaction_status_scope' => :'transaction_status_scope',
113
+ :'show_by_category' => :'show_by_category'
114
+ }
115
+ end
116
+
117
+ # Attribute type mapping.
118
+ def self.swagger_types
119
+ {
120
+ :'merchant_scope' => :'Array<String>',
121
+ :'account_ids' => :'Array<String>',
122
+ :'business_ids' => :'Array<String>',
123
+ :'card_ids' => :'Array<String>',
124
+ :'show_by_merchant' => :'BOOLEAN',
125
+ :'show_by_period' => :'BOOLEAN',
126
+ :'only_cleansed' => :'BOOLEAN',
127
+ :'frequency' => :'Integer',
128
+ :'end_date' => :'Date',
129
+ :'as_of_date' => :'Date',
130
+ :'transaction_category_scope' => :'Array<String>',
131
+ :'start_date' => :'Date',
132
+ :'card_status_scope' => :'Array<String>',
133
+ :'only_active_clients' => :'BOOLEAN',
134
+ :'lookback_periods' => :'Integer',
135
+ :'frequency_unit' => :'String',
136
+ :'household_ids' => :'Array<String>',
137
+ :'aggregation_account_ids' => :'Array<String>',
138
+ :'currency_code' => :'String',
139
+ :'client_ids' => :'Array<String>',
140
+ :'scope' => :'String',
141
+ :'currency_conversion' => :'String',
142
+ :'transaction_status_scope' => :'Array<String>',
143
+ :'show_by_category' => :'BOOLEAN'
144
+ }
145
+ end
146
+
147
+ # Initializes the object
148
+ # @param [Hash] attributes Model attributes in the form of hash
149
+ def initialize(attributes = {})
150
+ return unless attributes.is_a?(Hash)
151
+
152
+ # convert string to symbol for hash key
153
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
154
+
155
+ if attributes.has_key?(:'merchant_scope')
156
+ if (value = attributes[:'merchant_scope']).is_a?(Array)
157
+ self.merchant_scope = value
158
+ end
159
+ end
160
+
161
+ if attributes.has_key?(:'account_ids')
162
+ if (value = attributes[:'account_ids']).is_a?(Array)
163
+ self.account_ids = value
164
+ end
165
+ end
166
+
167
+ if attributes.has_key?(:'business_ids')
168
+ if (value = attributes[:'business_ids']).is_a?(Array)
169
+ self.business_ids = value
170
+ end
171
+ end
172
+
173
+ if attributes.has_key?(:'card_ids')
174
+ if (value = attributes[:'card_ids']).is_a?(Array)
175
+ self.card_ids = value
176
+ end
177
+ end
178
+
179
+ if attributes.has_key?(:'show_by_merchant')
180
+ self.show_by_merchant = attributes[:'show_by_merchant']
181
+ else
182
+ self.show_by_merchant = false
183
+ end
184
+
185
+ if attributes.has_key?(:'show_by_period')
186
+ self.show_by_period = attributes[:'show_by_period']
187
+ else
188
+ self.show_by_period = false
189
+ end
190
+
191
+ if attributes.has_key?(:'only_cleansed')
192
+ self.only_cleansed = attributes[:'only_cleansed']
193
+ else
194
+ self.only_cleansed = false
195
+ end
196
+
197
+ if attributes.has_key?(:'frequency')
198
+ self.frequency = attributes[:'frequency']
199
+ else
200
+ self.frequency = 1
201
+ end
202
+
203
+ if attributes.has_key?(:'end_date')
204
+ self.end_date = attributes[:'end_date']
205
+ end
206
+
207
+ if attributes.has_key?(:'as_of_date')
208
+ self.as_of_date = attributes[:'as_of_date']
209
+ end
210
+
211
+ if attributes.has_key?(:'transaction_category_scope')
212
+ if (value = attributes[:'transaction_category_scope']).is_a?(Array)
213
+ self.transaction_category_scope = value
214
+ end
215
+ end
216
+
217
+ if attributes.has_key?(:'start_date')
218
+ self.start_date = attributes[:'start_date']
219
+ end
220
+
221
+ if attributes.has_key?(:'card_status_scope')
222
+ if (value = attributes[:'card_status_scope']).is_a?(Array)
223
+ self.card_status_scope = value
224
+ end
225
+ end
226
+
227
+ if attributes.has_key?(:'only_active_clients')
228
+ self.only_active_clients = attributes[:'only_active_clients']
229
+ else
230
+ self.only_active_clients = false
231
+ end
232
+
233
+ if attributes.has_key?(:'lookback_periods')
234
+ self.lookback_periods = attributes[:'lookback_periods']
235
+ else
236
+ self.lookback_periods = 0
237
+ end
238
+
239
+ if attributes.has_key?(:'frequency_unit')
240
+ self.frequency_unit = attributes[:'frequency_unit']
241
+ end
242
+
243
+ if attributes.has_key?(:'household_ids')
244
+ if (value = attributes[:'household_ids']).is_a?(Array)
245
+ self.household_ids = value
246
+ end
247
+ end
248
+
249
+ if attributes.has_key?(:'aggregation_account_ids')
250
+ if (value = attributes[:'aggregation_account_ids']).is_a?(Array)
251
+ self.aggregation_account_ids = value
252
+ end
253
+ end
254
+
255
+ if attributes.has_key?(:'currency_code')
256
+ self.currency_code = attributes[:'currency_code']
257
+ end
258
+
259
+ if attributes.has_key?(:'client_ids')
260
+ if (value = attributes[:'client_ids']).is_a?(Array)
261
+ self.client_ids = value
262
+ end
263
+ end
264
+
265
+ if attributes.has_key?(:'scope')
266
+ self.scope = attributes[:'scope']
267
+ else
268
+ self.scope = 'all'
269
+ end
270
+
271
+ if attributes.has_key?(:'currency_conversion')
272
+ self.currency_conversion = attributes[:'currency_conversion']
273
+ end
274
+
275
+ if attributes.has_key?(:'transaction_status_scope')
276
+ if (value = attributes[:'transaction_status_scope']).is_a?(Array)
277
+ self.transaction_status_scope = value
278
+ end
279
+ end
280
+
281
+ if attributes.has_key?(:'show_by_category')
282
+ self.show_by_category = attributes[:'show_by_category']
283
+ else
284
+ self.show_by_category = false
285
+ end
286
+ end
287
+
288
+ # Show invalid properties with the reasons. Usually used together with valid?
289
+ # @return Array for valid properties with the reasons
290
+ def list_invalid_properties
291
+ invalid_properties = Array.new
292
+ if !@frequency.nil? && @frequency < 1
293
+ invalid_properties.push('invalid value for "frequency", must be greater than or equal to 1.')
294
+ end
295
+
296
+ if !@lookback_periods.nil? && @lookback_periods < 0
297
+ invalid_properties.push('invalid value for "lookback_periods", must be greater than or equal to 0.')
298
+ end
299
+
300
+ if @frequency_unit.nil?
301
+ invalid_properties.push('invalid value for "frequency_unit", frequency_unit cannot be nil.')
302
+ end
303
+
304
+ invalid_properties
305
+ end
306
+
307
+ # Check to see if the all the properties in the model are valid
308
+ # @return true if the model is valid
309
+ def valid?
310
+ return false if !@frequency.nil? && @frequency < 1
311
+ return false if !@lookback_periods.nil? && @lookback_periods < 0
312
+ return false if @frequency_unit.nil?
313
+ frequency_unit_validator = EnumAttributeValidator.new('String', ['daily', 'weekly', 'bi-weekly', 'monthly', 'quarterly', 'annually'])
314
+ return false unless frequency_unit_validator.valid?(@frequency_unit)
315
+ scope_validator = EnumAttributeValidator.new('String', ['all', 'external', 'internal', 'cards'])
316
+ return false unless scope_validator.valid?(@scope)
317
+ true
318
+ end
319
+
320
+ # Custom attribute writer method with validation
321
+ # @param [Object] frequency Value to be assigned
322
+ def frequency=(frequency)
323
+ if !frequency.nil? && frequency < 1
324
+ fail ArgumentError, 'invalid value for "frequency", must be greater than or equal to 1.'
325
+ end
326
+
327
+ @frequency = frequency
328
+ end
329
+
330
+ # Custom attribute writer method with validation
331
+ # @param [Object] lookback_periods Value to be assigned
332
+ def lookback_periods=(lookback_periods)
333
+ if !lookback_periods.nil? && lookback_periods < 0
334
+ fail ArgumentError, 'invalid value for "lookback_periods", must be greater than or equal to 0.'
335
+ end
336
+
337
+ @lookback_periods = lookback_periods
338
+ end
339
+
340
+ # Custom attribute writer method checking allowed values (enum).
341
+ # @param [Object] frequency_unit Object to be assigned
342
+ def frequency_unit=(frequency_unit)
343
+ validator = EnumAttributeValidator.new('String', ['daily', 'weekly', 'bi-weekly', 'monthly', 'quarterly', 'annually'])
344
+ unless validator.valid?(frequency_unit)
345
+ fail ArgumentError, 'invalid value for "frequency_unit", must be one of #{validator.allowable_values}.'
346
+ end
347
+ @frequency_unit = frequency_unit
348
+ end
349
+
350
+ # Custom attribute writer method checking allowed values (enum).
351
+ # @param [Object] scope Object to be assigned
352
+ def scope=(scope)
353
+ validator = EnumAttributeValidator.new('String', ['all', 'external', 'internal', 'cards'])
354
+ unless validator.valid?(scope)
355
+ fail ArgumentError, 'invalid value for "scope", must be one of #{validator.allowable_values}.'
356
+ end
357
+ @scope = scope
358
+ end
359
+
360
+ # Checks equality by comparing each attribute.
361
+ # @param [Object] Object to be compared
362
+ def ==(o)
363
+ return true if self.equal?(o)
364
+ self.class == o.class &&
365
+ merchant_scope == o.merchant_scope &&
366
+ account_ids == o.account_ids &&
367
+ business_ids == o.business_ids &&
368
+ card_ids == o.card_ids &&
369
+ show_by_merchant == o.show_by_merchant &&
370
+ show_by_period == o.show_by_period &&
371
+ only_cleansed == o.only_cleansed &&
372
+ frequency == o.frequency &&
373
+ end_date == o.end_date &&
374
+ as_of_date == o.as_of_date &&
375
+ transaction_category_scope == o.transaction_category_scope &&
376
+ start_date == o.start_date &&
377
+ card_status_scope == o.card_status_scope &&
378
+ only_active_clients == o.only_active_clients &&
379
+ lookback_periods == o.lookback_periods &&
380
+ frequency_unit == o.frequency_unit &&
381
+ household_ids == o.household_ids &&
382
+ aggregation_account_ids == o.aggregation_account_ids &&
383
+ currency_code == o.currency_code &&
384
+ client_ids == o.client_ids &&
385
+ scope == o.scope &&
386
+ currency_conversion == o.currency_conversion &&
387
+ transaction_status_scope == o.transaction_status_scope &&
388
+ show_by_category == o.show_by_category
389
+ end
390
+
391
+ # @see the `==` method
392
+ # @param [Object] Object to be compared
393
+ def eql?(o)
394
+ self == o
395
+ end
396
+
397
+ # Calculates hash code according to all attributes.
398
+ # @return [Fixnum] Hash code
399
+ def hash
400
+ [merchant_scope, account_ids, business_ids, card_ids, show_by_merchant, show_by_period, only_cleansed, frequency, end_date, as_of_date, transaction_category_scope, start_date, card_status_scope, only_active_clients, lookback_periods, frequency_unit, household_ids, aggregation_account_ids, currency_code, client_ids, scope, currency_conversion, transaction_status_scope, show_by_category].hash
401
+ end
402
+
403
+ # Builds the object from hash
404
+ # @param [Hash] attributes Model attributes in the form of hash
405
+ # @return [Object] Returns the model itself
406
+ def build_from_hash(attributes)
407
+ return nil unless attributes.is_a?(Hash)
408
+ self.class.swagger_types.each_pair do |key, type|
409
+ if type =~ /\AArray<(.*)>/i
410
+ # check to ensure the input is an array given that the attribute
411
+ # is documented as an array but the input is not
412
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
413
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
414
+ end
415
+ elsif !attributes[self.class.attribute_map[key]].nil?
416
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
417
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
418
+ end
419
+
420
+ self
421
+ end
422
+ # Deserializes the data based on type
423
+ # @param string type Data type
424
+ # @param string value Value to be deserialized
425
+ # @return [Object] Deserialized data
426
+ def _deserialize(type, value)
427
+ case type.to_sym
428
+ when :DateTime
429
+ value
430
+ when :Date
431
+ value
432
+ when :String
433
+ value.to_s
434
+ when :Integer
435
+ value.to_i
436
+ when :Float
437
+ value.to_f
438
+ when :BOOLEAN
439
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
440
+ true
441
+ else
442
+ false
443
+ end
444
+ when :Object
445
+ # generic object (usually a Hash), return directly
446
+ value
447
+ when /\AArray<(?<inner_type>.+)>\z/
448
+ inner_type = Regexp.last_match[:inner_type]
449
+ value.map { |v| _deserialize(inner_type, v) }
450
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
451
+ k_type = Regexp.last_match[:k_type]
452
+ v_type = Regexp.last_match[:v_type]
453
+ {}.tap do |hash|
454
+ value.each do |k, v|
455
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
456
+ end
457
+ end
458
+ else # model
459
+ temp_model = ProtonApi.const_get(type).new
460
+ temp_model.build_from_hash(value)
461
+ end
462
+ end
463
+ # Returns the string representation of the object
464
+ # @return [String] String presentation of the object
465
+ def to_s
466
+ to_hash.to_s
467
+ end
468
+
469
+ # to_body is an alias to to_hash (backward compatibility)
470
+ # @return [Hash] Returns the object in the form of hash
471
+ def to_body
472
+ to_hash
473
+ end
474
+
475
+ # Returns the object in the form of hash
476
+ # @return [Hash] Returns the object in the form of hash
477
+ def to_hash
478
+ hash = {}
479
+ self.class.attribute_map.each_pair do |attr, param|
480
+ value = self.send(attr)
481
+ next if value.nil?
482
+ hash[param] = _to_hash(value)
483
+ end
484
+ hash
485
+ end
486
+ # Outputs non-array value in the form of hash
487
+ # For object, use to_hash. Otherwise, just return the value
488
+ # @param [Object] value Any valid value
489
+ # @return [Hash] Returns the value in the form of hash
490
+ def _to_hash(value)
491
+ if value.is_a?(Array)
492
+ value.compact.map { |v| _to_hash(v) }
493
+ elsif value.is_a?(Hash)
494
+ {}.tap do |hash|
495
+ value.each { |k, v| hash[k] = _to_hash(v) }
496
+ end
497
+ elsif value.respond_to? :to_hash
498
+ value.to_hash
499
+ else
500
+ value
501
+ end
502
+ end
503
+
504
+ end
505
+ end