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,478 @@
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 BusinessFinancialHealthCheckRequest
17
+ attr_accessor :period_length
18
+
19
+ attr_accessor :net_income
20
+
21
+ attr_accessor :period_month
22
+
23
+ attr_accessor :total_revenue
24
+
25
+ attr_accessor :total_assets
26
+
27
+ attr_accessor :client_id
28
+
29
+ attr_accessor :accounting_method
30
+
31
+ attr_accessor :period_year
32
+
33
+ attr_accessor :currency_conversion
34
+
35
+ attr_accessor :total_liabilities
36
+
37
+ attr_accessor :period_type
38
+
39
+ attr_accessor :currency_code
40
+
41
+ attr_accessor :ratio_targets
42
+
43
+ attr_accessor :total_equity
44
+
45
+ attr_accessor :period_quarter
46
+
47
+ class EnumAttributeValidator
48
+ attr_reader :datatype
49
+ attr_reader :allowable_values
50
+
51
+ def initialize(datatype, allowable_values)
52
+ @allowable_values = allowable_values.map do |value|
53
+ case datatype.to_s
54
+ when /Integer/i
55
+ value.to_i
56
+ when /Float/i
57
+ value.to_f
58
+ else
59
+ value
60
+ end
61
+ end
62
+ end
63
+
64
+ def valid?(value)
65
+ !value || allowable_values.include?(value)
66
+ end
67
+ end
68
+
69
+ # Attribute mapping from ruby-style variable name to JSON key.
70
+ def self.attribute_map
71
+ {
72
+ :'period_length' => :'period_length',
73
+ :'net_income' => :'net_income',
74
+ :'period_month' => :'period_month',
75
+ :'total_revenue' => :'total_revenue',
76
+ :'total_assets' => :'total_assets',
77
+ :'client_id' => :'client_id',
78
+ :'accounting_method' => :'accounting_method',
79
+ :'period_year' => :'period_year',
80
+ :'currency_conversion' => :'currency_conversion',
81
+ :'total_liabilities' => :'total_liabilities',
82
+ :'period_type' => :'period_type',
83
+ :'currency_code' => :'currency_code',
84
+ :'ratio_targets' => :'ratio_targets',
85
+ :'total_equity' => :'total_equity',
86
+ :'period_quarter' => :'period_quarter'
87
+ }
88
+ end
89
+
90
+ # Attribute type mapping.
91
+ def self.swagger_types
92
+ {
93
+ :'period_length' => :'String',
94
+ :'net_income' => :'Float',
95
+ :'period_month' => :'Integer',
96
+ :'total_revenue' => :'Float',
97
+ :'total_assets' => :'Float',
98
+ :'client_id' => :'String',
99
+ :'accounting_method' => :'String',
100
+ :'period_year' => :'Integer',
101
+ :'currency_conversion' => :'String',
102
+ :'total_liabilities' => :'Float',
103
+ :'period_type' => :'String',
104
+ :'currency_code' => :'String',
105
+ :'ratio_targets' => :'RatioTargets1',
106
+ :'total_equity' => :'Float',
107
+ :'period_quarter' => :'Integer'
108
+ }
109
+ end
110
+
111
+ # Initializes the object
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ def initialize(attributes = {})
114
+ return unless attributes.is_a?(Hash)
115
+
116
+ # convert string to symbol for hash key
117
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
118
+
119
+ if attributes.has_key?(:'period_length')
120
+ self.period_length = attributes[:'period_length']
121
+ else
122
+ self.period_length = 'quarterly'
123
+ end
124
+
125
+ if attributes.has_key?(:'net_income')
126
+ self.net_income = attributes[:'net_income']
127
+ end
128
+
129
+ if attributes.has_key?(:'period_month')
130
+ self.period_month = attributes[:'period_month']
131
+ end
132
+
133
+ if attributes.has_key?(:'total_revenue')
134
+ self.total_revenue = attributes[:'total_revenue']
135
+ end
136
+
137
+ if attributes.has_key?(:'total_assets')
138
+ self.total_assets = attributes[:'total_assets']
139
+ end
140
+
141
+ if attributes.has_key?(:'client_id')
142
+ self.client_id = attributes[:'client_id']
143
+ end
144
+
145
+ if attributes.has_key?(:'accounting_method')
146
+ self.accounting_method = attributes[:'accounting_method']
147
+ end
148
+
149
+ if attributes.has_key?(:'period_year')
150
+ self.period_year = attributes[:'period_year']
151
+ end
152
+
153
+ if attributes.has_key?(:'currency_conversion')
154
+ self.currency_conversion = attributes[:'currency_conversion']
155
+ end
156
+
157
+ if attributes.has_key?(:'total_liabilities')
158
+ self.total_liabilities = attributes[:'total_liabilities']
159
+ end
160
+
161
+ if attributes.has_key?(:'period_type')
162
+ self.period_type = attributes[:'period_type']
163
+ end
164
+
165
+ if attributes.has_key?(:'currency_code')
166
+ self.currency_code = attributes[:'currency_code']
167
+ end
168
+
169
+ if attributes.has_key?(:'ratio_targets')
170
+ self.ratio_targets = attributes[:'ratio_targets']
171
+ end
172
+
173
+ if attributes.has_key?(:'total_equity')
174
+ self.total_equity = attributes[:'total_equity']
175
+ end
176
+
177
+ if attributes.has_key?(:'period_quarter')
178
+ self.period_quarter = attributes[:'period_quarter']
179
+ end
180
+ end
181
+
182
+ # Show invalid properties with the reasons. Usually used together with valid?
183
+ # @return Array for valid properties with the reasons
184
+ def list_invalid_properties
185
+ invalid_properties = Array.new
186
+ if !@period_month.nil? && @period_month > 12
187
+ invalid_properties.push('invalid value for "period_month", must be smaller than or equal to 12.')
188
+ end
189
+
190
+ if !@period_month.nil? && @period_month < 1
191
+ invalid_properties.push('invalid value for "period_month", must be greater than or equal to 1.')
192
+ end
193
+
194
+ if !@total_revenue.nil? && @total_revenue < 0
195
+ invalid_properties.push('invalid value for "total_revenue", must be greater than or equal to 0.')
196
+ end
197
+
198
+ if !@total_assets.nil? && @total_assets < 0
199
+ invalid_properties.push('invalid value for "total_assets", must be greater than or equal to 0.')
200
+ end
201
+
202
+ if !@total_liabilities.nil? && @total_liabilities < 0
203
+ invalid_properties.push('invalid value for "total_liabilities", must be greater than or equal to 0.')
204
+ end
205
+
206
+ if !@total_equity.nil? && @total_equity < 0
207
+ invalid_properties.push('invalid value for "total_equity", must be greater than or equal to 0.')
208
+ end
209
+
210
+ if !@period_quarter.nil? && @period_quarter > 4
211
+ invalid_properties.push('invalid value for "period_quarter", must be smaller than or equal to 4.')
212
+ end
213
+
214
+ if !@period_quarter.nil? && @period_quarter < 1
215
+ invalid_properties.push('invalid value for "period_quarter", must be greater than or equal to 1.')
216
+ end
217
+
218
+ invalid_properties
219
+ end
220
+
221
+ # Check to see if the all the properties in the model are valid
222
+ # @return true if the model is valid
223
+ def valid?
224
+ period_length_validator = EnumAttributeValidator.new('String', ['annual', 'quarterly', 'monthly', 'ytd', 'qtd', 'mtd'])
225
+ return false unless period_length_validator.valid?(@period_length)
226
+ return false if !@period_month.nil? && @period_month > 12
227
+ return false if !@period_month.nil? && @period_month < 1
228
+ return false if !@total_revenue.nil? && @total_revenue < 0
229
+ return false if !@total_assets.nil? && @total_assets < 0
230
+ accounting_method_validator = EnumAttributeValidator.new('String', ['accrual', 'cash'])
231
+ return false unless accounting_method_validator.valid?(@accounting_method)
232
+ return false if !@total_liabilities.nil? && @total_liabilities < 0
233
+ period_type_validator = EnumAttributeValidator.new('String', ['calendar', 'fiscal'])
234
+ return false unless period_type_validator.valid?(@period_type)
235
+ return false if !@total_equity.nil? && @total_equity < 0
236
+ return false if !@period_quarter.nil? && @period_quarter > 4
237
+ return false if !@period_quarter.nil? && @period_quarter < 1
238
+ true
239
+ end
240
+
241
+ # Custom attribute writer method checking allowed values (enum).
242
+ # @param [Object] period_length Object to be assigned
243
+ def period_length=(period_length)
244
+ validator = EnumAttributeValidator.new('String', ['annual', 'quarterly', 'monthly', 'ytd', 'qtd', 'mtd'])
245
+ unless validator.valid?(period_length)
246
+ fail ArgumentError, 'invalid value for "period_length", must be one of #{validator.allowable_values}.'
247
+ end
248
+ @period_length = period_length
249
+ end
250
+
251
+ # Custom attribute writer method with validation
252
+ # @param [Object] period_month Value to be assigned
253
+ def period_month=(period_month)
254
+ if !period_month.nil? && period_month > 12
255
+ fail ArgumentError, 'invalid value for "period_month", must be smaller than or equal to 12.'
256
+ end
257
+
258
+ if !period_month.nil? && period_month < 1
259
+ fail ArgumentError, 'invalid value for "period_month", must be greater than or equal to 1.'
260
+ end
261
+
262
+ @period_month = period_month
263
+ end
264
+
265
+ # Custom attribute writer method with validation
266
+ # @param [Object] total_revenue Value to be assigned
267
+ def total_revenue=(total_revenue)
268
+ if !total_revenue.nil? && total_revenue < 0
269
+ fail ArgumentError, 'invalid value for "total_revenue", must be greater than or equal to 0.'
270
+ end
271
+
272
+ @total_revenue = total_revenue
273
+ end
274
+
275
+ # Custom attribute writer method with validation
276
+ # @param [Object] total_assets Value to be assigned
277
+ def total_assets=(total_assets)
278
+ if !total_assets.nil? && total_assets < 0
279
+ fail ArgumentError, 'invalid value for "total_assets", must be greater than or equal to 0.'
280
+ end
281
+
282
+ @total_assets = total_assets
283
+ end
284
+
285
+ # Custom attribute writer method checking allowed values (enum).
286
+ # @param [Object] accounting_method Object to be assigned
287
+ def accounting_method=(accounting_method)
288
+ validator = EnumAttributeValidator.new('String', ['accrual', 'cash'])
289
+ unless validator.valid?(accounting_method)
290
+ fail ArgumentError, 'invalid value for "accounting_method", must be one of #{validator.allowable_values}.'
291
+ end
292
+ @accounting_method = accounting_method
293
+ end
294
+
295
+ # Custom attribute writer method with validation
296
+ # @param [Object] total_liabilities Value to be assigned
297
+ def total_liabilities=(total_liabilities)
298
+ if !total_liabilities.nil? && total_liabilities < 0
299
+ fail ArgumentError, 'invalid value for "total_liabilities", must be greater than or equal to 0.'
300
+ end
301
+
302
+ @total_liabilities = total_liabilities
303
+ end
304
+
305
+ # Custom attribute writer method checking allowed values (enum).
306
+ # @param [Object] period_type Object to be assigned
307
+ def period_type=(period_type)
308
+ validator = EnumAttributeValidator.new('String', ['calendar', 'fiscal'])
309
+ unless validator.valid?(period_type)
310
+ fail ArgumentError, 'invalid value for "period_type", must be one of #{validator.allowable_values}.'
311
+ end
312
+ @period_type = period_type
313
+ end
314
+
315
+ # Custom attribute writer method with validation
316
+ # @param [Object] total_equity Value to be assigned
317
+ def total_equity=(total_equity)
318
+ if !total_equity.nil? && total_equity < 0
319
+ fail ArgumentError, 'invalid value for "total_equity", must be greater than or equal to 0.'
320
+ end
321
+
322
+ @total_equity = total_equity
323
+ end
324
+
325
+ # Custom attribute writer method with validation
326
+ # @param [Object] period_quarter Value to be assigned
327
+ def period_quarter=(period_quarter)
328
+ if !period_quarter.nil? && period_quarter > 4
329
+ fail ArgumentError, 'invalid value for "period_quarter", must be smaller than or equal to 4.'
330
+ end
331
+
332
+ if !period_quarter.nil? && period_quarter < 1
333
+ fail ArgumentError, 'invalid value for "period_quarter", must be greater than or equal to 1.'
334
+ end
335
+
336
+ @period_quarter = period_quarter
337
+ end
338
+
339
+ # Checks equality by comparing each attribute.
340
+ # @param [Object] Object to be compared
341
+ def ==(o)
342
+ return true if self.equal?(o)
343
+ self.class == o.class &&
344
+ period_length == o.period_length &&
345
+ net_income == o.net_income &&
346
+ period_month == o.period_month &&
347
+ total_revenue == o.total_revenue &&
348
+ total_assets == o.total_assets &&
349
+ client_id == o.client_id &&
350
+ accounting_method == o.accounting_method &&
351
+ period_year == o.period_year &&
352
+ currency_conversion == o.currency_conversion &&
353
+ total_liabilities == o.total_liabilities &&
354
+ period_type == o.period_type &&
355
+ currency_code == o.currency_code &&
356
+ ratio_targets == o.ratio_targets &&
357
+ total_equity == o.total_equity &&
358
+ period_quarter == o.period_quarter
359
+ end
360
+
361
+ # @see the `==` method
362
+ # @param [Object] Object to be compared
363
+ def eql?(o)
364
+ self == o
365
+ end
366
+
367
+ # Calculates hash code according to all attributes.
368
+ # @return [Fixnum] Hash code
369
+ def hash
370
+ [period_length, net_income, period_month, total_revenue, total_assets, client_id, accounting_method, period_year, currency_conversion, total_liabilities, period_type, currency_code, ratio_targets, total_equity, period_quarter].hash
371
+ end
372
+
373
+ # Builds the object from hash
374
+ # @param [Hash] attributes Model attributes in the form of hash
375
+ # @return [Object] Returns the model itself
376
+ def build_from_hash(attributes)
377
+ return nil unless attributes.is_a?(Hash)
378
+ self.class.swagger_types.each_pair do |key, type|
379
+ if type =~ /\AArray<(.*)>/i
380
+ # check to ensure the input is an array given that the attribute
381
+ # is documented as an array but the input is not
382
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
383
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
384
+ end
385
+ elsif !attributes[self.class.attribute_map[key]].nil?
386
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
387
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
388
+ end
389
+
390
+ self
391
+ end
392
+
393
+ # Deserializes the data based on type
394
+ # @param string type Data type
395
+ # @param string value Value to be deserialized
396
+ # @return [Object] Deserialized data
397
+ def _deserialize(type, value)
398
+ case type.to_sym
399
+ when :DateTime
400
+ DateTime.parse(value)
401
+ when :Date
402
+ Date.parse(value)
403
+ when :String
404
+ value.to_s
405
+ when :Integer
406
+ value.to_i
407
+ when :Float
408
+ value.to_f
409
+ when :BOOLEAN
410
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
411
+ true
412
+ else
413
+ false
414
+ end
415
+ when :Object
416
+ # generic object (usually a Hash), return directly
417
+ value
418
+ when /\AArray<(?<inner_type>.+)>\z/
419
+ inner_type = Regexp.last_match[:inner_type]
420
+ value.map { |v| _deserialize(inner_type, v) }
421
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
422
+ k_type = Regexp.last_match[:k_type]
423
+ v_type = Regexp.last_match[:v_type]
424
+ {}.tap do |hash|
425
+ value.each do |k, v|
426
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
427
+ end
428
+ end
429
+ else # model
430
+ temp_model = ProtonApi.const_get(type).new
431
+ temp_model.build_from_hash(value)
432
+ end
433
+ end
434
+
435
+ # Returns the string representation of the object
436
+ # @return [String] String presentation of the object
437
+ def to_s
438
+ to_hash.to_s
439
+ end
440
+
441
+ # to_body is an alias to to_hash (backward compatibility)
442
+ # @return [Hash] Returns the object in the form of hash
443
+ def to_body
444
+ to_hash
445
+ end
446
+
447
+ # Returns the object in the form of hash
448
+ # @return [Hash] Returns the object in the form of hash
449
+ def to_hash
450
+ hash = {}
451
+ self.class.attribute_map.each_pair do |attr, param|
452
+ value = self.send(attr)
453
+ next if value.nil?
454
+ hash[param] = _to_hash(value)
455
+ end
456
+ hash
457
+ end
458
+
459
+ # Outputs non-array value in the form of hash
460
+ # For object, use to_hash. Otherwise, just return the value
461
+ # @param [Object] value Any valid value
462
+ # @return [Hash] Returns the value in the form of hash
463
+ def _to_hash(value)
464
+ if value.is_a?(Array)
465
+ value.compact.map { |v| _to_hash(v) }
466
+ elsif value.is_a?(Hash)
467
+ {}.tap do |hash|
468
+ value.each { |k, v| hash[k] = _to_hash(v) }
469
+ end
470
+ elsif value.respond_to? :to_hash
471
+ value.to_hash
472
+ else
473
+ value
474
+ end
475
+ end
476
+
477
+ end
478
+ end