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