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