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,384 @@
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 FinancialHealthCheckRequest
17
+ attr_accessor :client_id
18
+
19
+ attr_accessor :ratio_targets
20
+
21
+ attr_accessor :liquid_assets
22
+
23
+ attr_accessor :total_liabilities
24
+
25
+ attr_accessor :gross_annual_income
26
+
27
+ attr_accessor :short_term_liabilities
28
+
29
+ attr_accessor :lookback_periods
30
+
31
+ attr_accessor :non_liquid_assets
32
+
33
+ attr_accessor :monthly_expenses
34
+
35
+ attr_accessor :net_monthly_income
36
+
37
+ # Attribute mapping from ruby-style variable name to JSON key.
38
+ def self.attribute_map
39
+ {
40
+ :'client_id' => :'client_id',
41
+ :'ratio_targets' => :'ratio_targets',
42
+ :'liquid_assets' => :'liquid_assets',
43
+ :'total_liabilities' => :'total_liabilities',
44
+ :'gross_annual_income' => :'gross_annual_income',
45
+ :'short_term_liabilities' => :'short_term_liabilities',
46
+ :'lookback_periods' => :'lookback_periods',
47
+ :'non_liquid_assets' => :'non_liquid_assets',
48
+ :'monthly_expenses' => :'monthly_expenses',
49
+ :'net_monthly_income' => :'net_monthly_income'
50
+ }
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.swagger_types
55
+ {
56
+ :'client_id' => :'String',
57
+ :'ratio_targets' => :'RatioTargets',
58
+ :'liquid_assets' => :'Float',
59
+ :'total_liabilities' => :'Float',
60
+ :'gross_annual_income' => :'Float',
61
+ :'short_term_liabilities' => :'Float',
62
+ :'lookback_periods' => :'Integer',
63
+ :'non_liquid_assets' => :'Float',
64
+ :'monthly_expenses' => :'Float',
65
+ :'net_monthly_income' => :'Float'
66
+ }
67
+ end
68
+
69
+ # Initializes the object
70
+ # @param [Hash] attributes Model attributes in the form of hash
71
+ def initialize(attributes = {})
72
+ return unless attributes.is_a?(Hash)
73
+
74
+ # convert string to symbol for hash key
75
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
76
+
77
+ if attributes.has_key?(:'client_id')
78
+ self.client_id = attributes[:'client_id']
79
+ end
80
+
81
+ if attributes.has_key?(:'ratio_targets')
82
+ self.ratio_targets = attributes[:'ratio_targets']
83
+ end
84
+
85
+ if attributes.has_key?(:'liquid_assets')
86
+ self.liquid_assets = attributes[:'liquid_assets']
87
+ end
88
+
89
+ if attributes.has_key?(:'total_liabilities')
90
+ self.total_liabilities = attributes[:'total_liabilities']
91
+ end
92
+
93
+ if attributes.has_key?(:'gross_annual_income')
94
+ self.gross_annual_income = attributes[:'gross_annual_income']
95
+ end
96
+
97
+ if attributes.has_key?(:'short_term_liabilities')
98
+ self.short_term_liabilities = attributes[:'short_term_liabilities']
99
+ end
100
+
101
+ if attributes.has_key?(:'lookback_periods')
102
+ self.lookback_periods = attributes[:'lookback_periods']
103
+ else
104
+ self.lookback_periods = 3
105
+ end
106
+
107
+ if attributes.has_key?(:'non_liquid_assets')
108
+ self.non_liquid_assets = attributes[:'non_liquid_assets']
109
+ end
110
+
111
+ if attributes.has_key?(:'monthly_expenses')
112
+ self.monthly_expenses = attributes[:'monthly_expenses']
113
+ end
114
+
115
+ if attributes.has_key?(:'net_monthly_income')
116
+ self.net_monthly_income = attributes[:'net_monthly_income']
117
+ end
118
+ end
119
+
120
+ # Show invalid properties with the reasons. Usually used together with valid?
121
+ # @return Array for valid properties with the reasons
122
+ def list_invalid_properties
123
+ invalid_properties = Array.new
124
+ if !@liquid_assets.nil? && @liquid_assets < 0
125
+ invalid_properties.push('invalid value for "liquid_assets", must be greater than or equal to 0.')
126
+ end
127
+
128
+ if !@total_liabilities.nil? && @total_liabilities < 0
129
+ invalid_properties.push('invalid value for "total_liabilities", must be greater than or equal to 0.')
130
+ end
131
+
132
+ if !@gross_annual_income.nil? && @gross_annual_income < 0
133
+ invalid_properties.push('invalid value for "gross_annual_income", must be greater than or equal to 0.')
134
+ end
135
+
136
+ if !@short_term_liabilities.nil? && @short_term_liabilities < 0
137
+ invalid_properties.push('invalid value for "short_term_liabilities", must be greater than or equal to 0.')
138
+ end
139
+
140
+ if !@lookback_periods.nil? && @lookback_periods < 1
141
+ invalid_properties.push('invalid value for "lookback_periods", must be greater than or equal to 1.')
142
+ end
143
+
144
+ if !@non_liquid_assets.nil? && @non_liquid_assets < 0
145
+ invalid_properties.push('invalid value for "non_liquid_assets", must be greater than or equal to 0.')
146
+ end
147
+
148
+ if !@monthly_expenses.nil? && @monthly_expenses < 0
149
+ invalid_properties.push('invalid value for "monthly_expenses", must be greater than or equal to 0.')
150
+ end
151
+
152
+ if !@net_monthly_income.nil? && @net_monthly_income < 0
153
+ invalid_properties.push('invalid value for "net_monthly_income", must be greater than or equal to 0.')
154
+ end
155
+
156
+ invalid_properties
157
+ end
158
+
159
+ # Check to see if the all the properties in the model are valid
160
+ # @return true if the model is valid
161
+ def valid?
162
+ return false if !@liquid_assets.nil? && @liquid_assets < 0
163
+ return false if !@total_liabilities.nil? && @total_liabilities < 0
164
+ return false if !@gross_annual_income.nil? && @gross_annual_income < 0
165
+ return false if !@short_term_liabilities.nil? && @short_term_liabilities < 0
166
+ return false if !@lookback_periods.nil? && @lookback_periods < 1
167
+ return false if !@non_liquid_assets.nil? && @non_liquid_assets < 0
168
+ return false if !@monthly_expenses.nil? && @monthly_expenses < 0
169
+ return false if !@net_monthly_income.nil? && @net_monthly_income < 0
170
+ true
171
+ end
172
+
173
+ # Custom attribute writer method with validation
174
+ # @param [Object] liquid_assets Value to be assigned
175
+ def liquid_assets=(liquid_assets)
176
+ if !liquid_assets.nil? && liquid_assets < 0
177
+ fail ArgumentError, 'invalid value for "liquid_assets", must be greater than or equal to 0.'
178
+ end
179
+
180
+ @liquid_assets = liquid_assets
181
+ end
182
+
183
+ # Custom attribute writer method with validation
184
+ # @param [Object] total_liabilities Value to be assigned
185
+ def total_liabilities=(total_liabilities)
186
+ if !total_liabilities.nil? && total_liabilities < 0
187
+ fail ArgumentError, 'invalid value for "total_liabilities", must be greater than or equal to 0.'
188
+ end
189
+
190
+ @total_liabilities = total_liabilities
191
+ end
192
+
193
+ # Custom attribute writer method with validation
194
+ # @param [Object] gross_annual_income Value to be assigned
195
+ def gross_annual_income=(gross_annual_income)
196
+ if !gross_annual_income.nil? && gross_annual_income < 0
197
+ fail ArgumentError, 'invalid value for "gross_annual_income", must be greater than or equal to 0.'
198
+ end
199
+
200
+ @gross_annual_income = gross_annual_income
201
+ end
202
+
203
+ # Custom attribute writer method with validation
204
+ # @param [Object] short_term_liabilities Value to be assigned
205
+ def short_term_liabilities=(short_term_liabilities)
206
+ if !short_term_liabilities.nil? && short_term_liabilities < 0
207
+ fail ArgumentError, 'invalid value for "short_term_liabilities", must be greater than or equal to 0.'
208
+ end
209
+
210
+ @short_term_liabilities = short_term_liabilities
211
+ end
212
+
213
+ # Custom attribute writer method with validation
214
+ # @param [Object] lookback_periods Value to be assigned
215
+ def lookback_periods=(lookback_periods)
216
+ if !lookback_periods.nil? && lookback_periods < 1
217
+ fail ArgumentError, 'invalid value for "lookback_periods", must be greater than or equal to 1.'
218
+ end
219
+
220
+ @lookback_periods = lookback_periods
221
+ end
222
+
223
+ # Custom attribute writer method with validation
224
+ # @param [Object] non_liquid_assets Value to be assigned
225
+ def non_liquid_assets=(non_liquid_assets)
226
+ if !non_liquid_assets.nil? && non_liquid_assets < 0
227
+ fail ArgumentError, 'invalid value for "non_liquid_assets", must be greater than or equal to 0.'
228
+ end
229
+
230
+ @non_liquid_assets = non_liquid_assets
231
+ end
232
+
233
+ # Custom attribute writer method with validation
234
+ # @param [Object] monthly_expenses Value to be assigned
235
+ def monthly_expenses=(monthly_expenses)
236
+ if !monthly_expenses.nil? && monthly_expenses < 0
237
+ fail ArgumentError, 'invalid value for "monthly_expenses", must be greater than or equal to 0.'
238
+ end
239
+
240
+ @monthly_expenses = monthly_expenses
241
+ end
242
+
243
+ # Custom attribute writer method with validation
244
+ # @param [Object] net_monthly_income Value to be assigned
245
+ def net_monthly_income=(net_monthly_income)
246
+ if !net_monthly_income.nil? && net_monthly_income < 0
247
+ fail ArgumentError, 'invalid value for "net_monthly_income", must be greater than or equal to 0.'
248
+ end
249
+
250
+ @net_monthly_income = net_monthly_income
251
+ end
252
+
253
+ # Checks equality by comparing each attribute.
254
+ # @param [Object] Object to be compared
255
+ def ==(o)
256
+ return true if self.equal?(o)
257
+ self.class == o.class &&
258
+ client_id == o.client_id &&
259
+ ratio_targets == o.ratio_targets &&
260
+ liquid_assets == o.liquid_assets &&
261
+ total_liabilities == o.total_liabilities &&
262
+ gross_annual_income == o.gross_annual_income &&
263
+ short_term_liabilities == o.short_term_liabilities &&
264
+ lookback_periods == o.lookback_periods &&
265
+ non_liquid_assets == o.non_liquid_assets &&
266
+ monthly_expenses == o.monthly_expenses &&
267
+ net_monthly_income == o.net_monthly_income
268
+ end
269
+
270
+ # @see the `==` method
271
+ # @param [Object] Object to be compared
272
+ def eql?(o)
273
+ self == o
274
+ end
275
+
276
+ # Calculates hash code according to all attributes.
277
+ # @return [Fixnum] Hash code
278
+ def hash
279
+ [client_id, ratio_targets, liquid_assets, total_liabilities, gross_annual_income, short_term_liabilities, lookback_periods, non_liquid_assets, monthly_expenses, net_monthly_income].hash
280
+ end
281
+
282
+ # Builds the object from hash
283
+ # @param [Hash] attributes Model attributes in the form of hash
284
+ # @return [Object] Returns the model itself
285
+ def build_from_hash(attributes)
286
+ return nil unless attributes.is_a?(Hash)
287
+ self.class.swagger_types.each_pair do |key, type|
288
+ if type =~ /\AArray<(.*)>/i
289
+ # check to ensure the input is an array given that the attribute
290
+ # is documented as an array but the input is not
291
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
292
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
293
+ end
294
+ elsif !attributes[self.class.attribute_map[key]].nil?
295
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
296
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
297
+ end
298
+
299
+ self
300
+ end
301
+ # Deserializes the data based on type
302
+ # @param string type Data type
303
+ # @param string value Value to be deserialized
304
+ # @return [Object] Deserialized data
305
+ def _deserialize(type, value)
306
+ case type.to_sym
307
+ when :DateTime
308
+ value
309
+ when :Date
310
+ value
311
+ when :String
312
+ value.to_s
313
+ when :Integer
314
+ value.to_i
315
+ when :Float
316
+ value.to_f
317
+ when :BOOLEAN
318
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
319
+ true
320
+ else
321
+ false
322
+ end
323
+ when :Object
324
+ # generic object (usually a Hash), return directly
325
+ value
326
+ when /\AArray<(?<inner_type>.+)>\z/
327
+ inner_type = Regexp.last_match[:inner_type]
328
+ value.map { |v| _deserialize(inner_type, v) }
329
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
330
+ k_type = Regexp.last_match[:k_type]
331
+ v_type = Regexp.last_match[:v_type]
332
+ {}.tap do |hash|
333
+ value.each do |k, v|
334
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
335
+ end
336
+ end
337
+ else # model
338
+ temp_model = ProtonApi.const_get(type).new
339
+ temp_model.build_from_hash(value)
340
+ end
341
+ end
342
+ # Returns the string representation of the object
343
+ # @return [String] String presentation of the object
344
+ def to_s
345
+ to_hash.to_s
346
+ end
347
+
348
+ # to_body is an alias to to_hash (backward compatibility)
349
+ # @return [Hash] Returns the object in the form of hash
350
+ def to_body
351
+ to_hash
352
+ end
353
+
354
+ # Returns the object in the form of hash
355
+ # @return [Hash] Returns the object in the form of hash
356
+ def to_hash
357
+ hash = {}
358
+ self.class.attribute_map.each_pair do |attr, param|
359
+ value = self.send(attr)
360
+ next if value.nil?
361
+ hash[param] = _to_hash(value)
362
+ end
363
+ hash
364
+ end
365
+ # Outputs non-array value in the form of hash
366
+ # For object, use to_hash. Otherwise, just return the value
367
+ # @param [Object] value Any valid value
368
+ # @return [Hash] Returns the value in the form of hash
369
+ def _to_hash(value)
370
+ if value.is_a?(Array)
371
+ value.compact.map { |v| _to_hash(v) }
372
+ elsif value.is_a?(Hash)
373
+ {}.tap do |hash|
374
+ value.each { |k, v| hash[k] = _to_hash(v) }
375
+ end
376
+ elsif value.respond_to? :to_hash
377
+ value.to_hash
378
+ else
379
+ value
380
+ end
381
+ end
382
+
383
+ end
384
+ end
@@ -0,0 +1,270 @@
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 FinancialPictureRequest
17
+ attr_accessor :currency_code
18
+
19
+ attr_accessor :client_id
20
+
21
+ attr_accessor :show_history
22
+
23
+ attr_accessor :end_date
24
+
25
+ attr_accessor :currency_conversion
26
+
27
+ attr_accessor :start_date
28
+
29
+ attr_accessor :show_category_breakdown
30
+
31
+ attr_accessor :show_change
32
+
33
+ attr_accessor :household_id
34
+
35
+ attr_accessor :create_log
36
+
37
+ # Attribute mapping from ruby-style variable name to JSON key.
38
+ def self.attribute_map
39
+ {
40
+ :'currency_code' => :'currency_code',
41
+ :'client_id' => :'client_id',
42
+ :'show_history' => :'show_history',
43
+ :'end_date' => :'end_date',
44
+ :'currency_conversion' => :'currency_conversion',
45
+ :'start_date' => :'start_date',
46
+ :'show_category_breakdown' => :'show_category_breakdown',
47
+ :'show_change' => :'show_change',
48
+ :'household_id' => :'household_id',
49
+ :'create_log' => :'create_log'
50
+ }
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.swagger_types
55
+ {
56
+ :'currency_code' => :'String',
57
+ :'client_id' => :'String',
58
+ :'show_history' => :'BOOLEAN',
59
+ :'end_date' => :'Date',
60
+ :'currency_conversion' => :'String',
61
+ :'start_date' => :'Date',
62
+ :'show_category_breakdown' => :'BOOLEAN',
63
+ :'show_change' => :'BOOLEAN',
64
+ :'household_id' => :'String',
65
+ :'create_log' => :'BOOLEAN'
66
+ }
67
+ end
68
+
69
+ # Initializes the object
70
+ # @param [Hash] attributes Model attributes in the form of hash
71
+ def initialize(attributes = {})
72
+ return unless attributes.is_a?(Hash)
73
+
74
+ # convert string to symbol for hash key
75
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
76
+
77
+ if attributes.has_key?(:'currency_code')
78
+ self.currency_code = attributes[:'currency_code']
79
+ end
80
+
81
+ if attributes.has_key?(:'client_id')
82
+ self.client_id = attributes[:'client_id']
83
+ end
84
+
85
+ if attributes.has_key?(:'show_history')
86
+ self.show_history = attributes[:'show_history']
87
+ else
88
+ self.show_history = false
89
+ end
90
+
91
+ if attributes.has_key?(:'end_date')
92
+ self.end_date = attributes[:'end_date']
93
+ end
94
+
95
+ if attributes.has_key?(:'currency_conversion')
96
+ self.currency_conversion = attributes[:'currency_conversion']
97
+ end
98
+
99
+ if attributes.has_key?(:'start_date')
100
+ self.start_date = attributes[:'start_date']
101
+ end
102
+
103
+ if attributes.has_key?(:'show_category_breakdown')
104
+ self.show_category_breakdown = attributes[:'show_category_breakdown']
105
+ else
106
+ self.show_category_breakdown = true
107
+ end
108
+
109
+ if attributes.has_key?(:'show_change')
110
+ self.show_change = attributes[:'show_change']
111
+ else
112
+ self.show_change = false
113
+ end
114
+
115
+ if attributes.has_key?(:'household_id')
116
+ self.household_id = attributes[:'household_id']
117
+ end
118
+
119
+ if attributes.has_key?(:'create_log')
120
+ self.create_log = attributes[:'create_log']
121
+ else
122
+ self.create_log = false
123
+ end
124
+ end
125
+
126
+ # Show invalid properties with the reasons. Usually used together with valid?
127
+ # @return Array for valid properties with the reasons
128
+ def list_invalid_properties
129
+ invalid_properties = Array.new
130
+ invalid_properties
131
+ end
132
+
133
+ # Check to see if the all the properties in the model are valid
134
+ # @return true if the model is valid
135
+ def valid?
136
+ true
137
+ end
138
+
139
+ # Checks equality by comparing each attribute.
140
+ # @param [Object] Object to be compared
141
+ def ==(o)
142
+ return true if self.equal?(o)
143
+ self.class == o.class &&
144
+ currency_code == o.currency_code &&
145
+ client_id == o.client_id &&
146
+ show_history == o.show_history &&
147
+ end_date == o.end_date &&
148
+ currency_conversion == o.currency_conversion &&
149
+ start_date == o.start_date &&
150
+ show_category_breakdown == o.show_category_breakdown &&
151
+ show_change == o.show_change &&
152
+ household_id == o.household_id &&
153
+ create_log == o.create_log
154
+ end
155
+
156
+ # @see the `==` method
157
+ # @param [Object] Object to be compared
158
+ def eql?(o)
159
+ self == o
160
+ end
161
+
162
+ # Calculates hash code according to all attributes.
163
+ # @return [Fixnum] Hash code
164
+ def hash
165
+ [currency_code, client_id, show_history, end_date, currency_conversion, start_date, show_category_breakdown, show_change, household_id, create_log].hash
166
+ end
167
+
168
+ # Builds the object from hash
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ # @return [Object] Returns the model itself
171
+ def build_from_hash(attributes)
172
+ return nil unless attributes.is_a?(Hash)
173
+ self.class.swagger_types.each_pair do |key, type|
174
+ if type =~ /\AArray<(.*)>/i
175
+ # check to ensure the input is an array given that the attribute
176
+ # is documented as an array but the input is not
177
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
178
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
179
+ end
180
+ elsif !attributes[self.class.attribute_map[key]].nil?
181
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
182
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
183
+ end
184
+
185
+ self
186
+ end
187
+ # Deserializes the data based on type
188
+ # @param string type Data type
189
+ # @param string value Value to be deserialized
190
+ # @return [Object] Deserialized data
191
+ def _deserialize(type, value)
192
+ case type.to_sym
193
+ when :DateTime
194
+ value
195
+ when :Date
196
+ value
197
+ when :String
198
+ value.to_s
199
+ when :Integer
200
+ value.to_i
201
+ when :Float
202
+ value.to_f
203
+ when :BOOLEAN
204
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
205
+ true
206
+ else
207
+ false
208
+ end
209
+ when :Object
210
+ # generic object (usually a Hash), return directly
211
+ value
212
+ when /\AArray<(?<inner_type>.+)>\z/
213
+ inner_type = Regexp.last_match[:inner_type]
214
+ value.map { |v| _deserialize(inner_type, v) }
215
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
216
+ k_type = Regexp.last_match[:k_type]
217
+ v_type = Regexp.last_match[:v_type]
218
+ {}.tap do |hash|
219
+ value.each do |k, v|
220
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
221
+ end
222
+ end
223
+ else # model
224
+ temp_model = ProtonApi.const_get(type).new
225
+ temp_model.build_from_hash(value)
226
+ end
227
+ end
228
+ # Returns the string representation of the object
229
+ # @return [String] String presentation of the object
230
+ def to_s
231
+ to_hash.to_s
232
+ end
233
+
234
+ # to_body is an alias to to_hash (backward compatibility)
235
+ # @return [Hash] Returns the object in the form of hash
236
+ def to_body
237
+ to_hash
238
+ end
239
+
240
+ # Returns the object in the form of hash
241
+ # @return [Hash] Returns the object in the form of hash
242
+ def to_hash
243
+ hash = {}
244
+ self.class.attribute_map.each_pair do |attr, param|
245
+ value = self.send(attr)
246
+ next if value.nil?
247
+ hash[param] = _to_hash(value)
248
+ end
249
+ hash
250
+ end
251
+ # Outputs non-array value in the form of hash
252
+ # For object, use to_hash. Otherwise, just return the value
253
+ # @param [Object] value Any valid value
254
+ # @return [Hash] Returns the value in the form of hash
255
+ def _to_hash(value)
256
+ if value.is_a?(Array)
257
+ value.compact.map { |v| _to_hash(v) }
258
+ elsif value.is_a?(Hash)
259
+ {}.tap do |hash|
260
+ value.each { |k, v| hash[k] = _to_hash(v) }
261
+ end
262
+ elsif value.respond_to? :to_hash
263
+ value.to_hash
264
+ else
265
+ value
266
+ end
267
+ end
268
+
269
+ end
270
+ end