class ProtonApi::MonteCarloRequest
Attributes
Public Class Methods
Attribute mapping from ruby-style variable name to JSON key.
# File lib/proton_api/models/monte_carlo_request.rb, line 84 def self.attribute_map { :'min_bal' => :'min_bal', :'max_bal' => :'max_bal', :'p' => :'p', :'allocation_id' => :'allocation_id', :'init_bal' => :'init_bal', :'max_sample' => :'max_sample', :'model_id' => :'model_id', :'cf' => :'cf', :'create_log' => :'create_log', :'aggregation_account_id' => :'aggregation_account_id', :'n' => :'n', :'remove_outliers' => :'remove_outliers', :'sigma' => :'sigma', :'mu' => :'mu', :'portfolio_id' => :'portfolio_id', :'result_type' => :'result_type', :'account_id' => :'account_id', :'use_proxy_data' => :'use_proxy_data', :'market_data_source' => :'market_data_source', :'ret_mod' => :'ret_mod', :'frequency_interval' => :'frequency_interval', :'min_sample' => :'min_sample' } end
Initializes the object @param [Hash] attributes Model attributes in the form of hash
# File lib/proton_api/models/monte_carlo_request.rb, line 141 def initialize(attributes = {}) return unless attributes.is_a?(Hash) # convert string to symbol for hash key attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v } if attributes.has_key?(:'min_bal') if (value = attributes[:'min_bal']).is_a?(Array) self.min_bal = value end end if attributes.has_key?(:'max_bal') if (value = attributes[:'max_bal']).is_a?(Array) self.max_bal = value end end if attributes.has_key?(:'p') if (value = attributes[:'p']).is_a?(Array) self.p = value end end if attributes.has_key?(:'allocation_id') self.allocation_id = attributes[:'allocation_id'] end if attributes.has_key?(:'init_bal') self.init_bal = attributes[:'init_bal'] end if attributes.has_key?(:'max_sample') if (value = attributes[:'max_sample']).is_a?(Array) self.max_sample = value end end if attributes.has_key?(:'model_id') self.model_id = attributes[:'model_id'] end if attributes.has_key?(:'cf') if (value = attributes[:'cf']).is_a?(Array) self.cf = value end end if attributes.has_key?(:'create_log') self.create_log = attributes[:'create_log'] else self.create_log = false end if attributes.has_key?(:'aggregation_account_id') self.aggregation_account_id = attributes[:'aggregation_account_id'] end if attributes.has_key?(:'n') self.n = attributes[:'n'] else self.n = 1000 end if attributes.has_key?(:'remove_outliers') self.remove_outliers = attributes[:'remove_outliers'] else self.remove_outliers = false end if attributes.has_key?(:'sigma') if (value = attributes[:'sigma']).is_a?(Array) self.sigma = value end end if attributes.has_key?(:'mu') if (value = attributes[:'mu']).is_a?(Array) self.mu = value end end if attributes.has_key?(:'portfolio_id') self.portfolio_id = attributes[:'portfolio_id'] end if attributes.has_key?(:'result_type') self.result_type = attributes[:'result_type'] else self.result_type = 'raw' end if attributes.has_key?(:'account_id') self.account_id = attributes[:'account_id'] end if attributes.has_key?(:'use_proxy_data') self.use_proxy_data = attributes[:'use_proxy_data'] else self.use_proxy_data = false end if attributes.has_key?(:'market_data_source') self.market_data_source = attributes[:'market_data_source'] else self.market_data_source = 'nucleus' end if attributes.has_key?(:'ret_mod') if (value = attributes[:'ret_mod']).is_a?(Array) self.ret_mod = value end end if attributes.has_key?(:'frequency_interval') self.frequency_interval = attributes[:'frequency_interval'] else self.frequency_interval = 'year' end if attributes.has_key?(:'min_sample') if (value = attributes[:'min_sample']).is_a?(Array) self.min_sample = value end end end
Attribute type mapping.
# File lib/proton_api/models/monte_carlo_request.rb, line 112 def self.swagger_types { :'min_bal' => :'Array<Float>', :'max_bal' => :'Array<Float>', :'p' => :'Array<Float>', :'allocation_id' => :'String', :'init_bal' => :'Float', :'max_sample' => :'Array<Float>', :'model_id' => :'String', :'cf' => :'Array<Array<Float>>', :'create_log' => :'BOOLEAN', :'aggregation_account_id' => :'String', :'n' => :'Integer', :'remove_outliers' => :'BOOLEAN', :'sigma' => :'Array<Float>', :'mu' => :'Array<Float>', :'portfolio_id' => :'String', :'result_type' => :'String', :'account_id' => :'String', :'use_proxy_data' => :'BOOLEAN', :'market_data_source' => :'String', :'ret_mod' => :'Array<Float>', :'frequency_interval' => :'String', :'min_sample' => :'Array<Float>' } end
Public Instance Methods
Checks equality by comparing each attribute. @param [Object] Object to be compared
# File lib/proton_api/models/monte_carlo_request.rb, line 363 def ==(o) return true if self.equal?(o) self.class == o.class && min_bal == o.min_bal && max_bal == o.max_bal && p == o.p && allocation_id == o.allocation_id && init_bal == o.init_bal && max_sample == o.max_sample && model_id == o.model_id && cf == o.cf && create_log == o.create_log && aggregation_account_id == o.aggregation_account_id && n == o.n && remove_outliers == o.remove_outliers && sigma == o.sigma && mu == o.mu && portfolio_id == o.portfolio_id && result_type == o.result_type && account_id == o.account_id && use_proxy_data == o.use_proxy_data && market_data_source == o.market_data_source && ret_mod == o.ret_mod && frequency_interval == o.frequency_interval && min_sample == o.min_sample end
Deserializes the data based on type @param string type Data type @param string value Value to be deserialized @return [Object] Deserialized data
# File lib/proton_api/models/monte_carlo_request.rb, line 425 def _deserialize(type, value) case type.to_sym when :DateTime value when :Date value when :String value.to_s when :Integer value.to_i when :Float value.to_f when :BOOLEAN if value.to_s =~ /\A(true|t|yes|y|1)\z/i true else false end when :Object # generic object (usually a Hash), return directly value when /\AArray<(?<inner_type>.+)>\z/ inner_type = Regexp.last_match[:inner_type] value.map { |v| _deserialize(inner_type, v) } when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/ k_type = Regexp.last_match[:k_type] v_type = Regexp.last_match[:v_type] {}.tap do |hash| value.each do |k, v| hash[_deserialize(k_type, k)] = _deserialize(v_type, v) end end else # model temp_model = ProtonApi.const_get(type).new temp_model.build_from_hash(value) end end
Outputs non-array value in the form of hash For object, use to_hash. Otherwise, just return the value @param [Object] value Any valid value @return [Hash] Returns the value in the form of hash
# File lib/proton_api/models/monte_carlo_request.rb, line 489 def _to_hash(value) if value.is_a?(Array) value.compact.map { |v| _to_hash(v) } elsif value.is_a?(Hash) {}.tap do |hash| value.each { |k, v| hash[k] = _to_hash(v) } end elsif value.respond_to? :to_hash value.to_hash else value end end
Builds the object from hash @param [Hash] attributes Model attributes in the form of hash @return [Object] Returns the model itself
# File lib/proton_api/models/monte_carlo_request.rb, line 405 def build_from_hash(attributes) return nil unless attributes.is_a?(Hash) self.class.swagger_types.each_pair do |key, type| if type =~ /\AArray<(.*)>/i # check to ensure the input is an array given that the attribute # is documented as an array but the input is not if attributes[self.class.attribute_map[key]].is_a?(Array) self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) end elsif !attributes[self.class.attribute_map[key]].nil? self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) end # or else data not found in attributes(hash), not an issue as the data can be optional end self end
@see the `==` method @param [Object] Object to be compared
# File lib/proton_api/models/monte_carlo_request.rb, line 392 def eql?(o) self == o end
Custom attribute writer method checking allowed values (enum). @param [Object] frequency_interval
Object to be assigned
# File lib/proton_api/models/monte_carlo_request.rb, line 353 def frequency_interval=(frequency_interval) validator = EnumAttributeValidator.new('String', ['year', 'six_months', 'quarter', 'month', 'two_weeks', 'week', 'day']) unless validator.valid?(frequency_interval) fail ArgumentError, 'invalid value for "frequency_interval", must be one of #{validator.allowable_values}.' end @frequency_interval = frequency_interval end
Calculates hash code according to all attributes. @return [Fixnum] Hash code
# File lib/proton_api/models/monte_carlo_request.rb, line 398 def hash [min_bal, max_bal, p, allocation_id, init_bal, max_sample, model_id, cf, create_log, aggregation_account_id, n, remove_outliers, sigma, mu, portfolio_id, result_type, account_id, use_proxy_data, market_data_source, ret_mod, frequency_interval, min_sample].hash end
Custom attribute writer method with validation @param [Object] init_bal
Value to be assigned
# File lib/proton_api/models/monte_carlo_request.rb, line 309 def init_bal=(init_bal) if !init_bal.nil? && init_bal < 0 fail ArgumentError, 'invalid value for "init_bal", must be greater than or equal to 0.' end @init_bal = init_bal end
Show invalid properties with the reasons. Usually used together with valid? @return Array for valid properties with the reasons
# File lib/proton_api/models/monte_carlo_request.rb, line 270 def list_invalid_properties invalid_properties = Array.new if !@init_bal.nil? && @init_bal < 0 invalid_properties.push('invalid value for "init_bal", must be greater than or equal to 0.') end if @cf.nil? invalid_properties.push('invalid value for "cf", cf cannot be nil.') end if !@n.nil? && @n > 10000 invalid_properties.push('invalid value for "n", must be smaller than or equal to 10000.') end if !@n.nil? && @n < 1 invalid_properties.push('invalid value for "n", must be greater than or equal to 1.') end invalid_properties end
Custom attribute writer method checking allowed values (enum). @param [Object] market_data_source
Object to be assigned
# File lib/proton_api/models/monte_carlo_request.rb, line 343 def market_data_source=(market_data_source) validator = EnumAttributeValidator.new('String', ['nucleus', 'integration']) unless validator.valid?(market_data_source) fail ArgumentError, 'invalid value for "market_data_source", must be one of #{validator.allowable_values}.' end @market_data_source = market_data_source end
Custom attribute writer method with validation @param [Object] n Value to be assigned
# File lib/proton_api/models/monte_carlo_request.rb, line 319 def n=(n) if !n.nil? && n > 10000 fail ArgumentError, 'invalid value for "n", must be smaller than or equal to 10000.' end if !n.nil? && n < 1 fail ArgumentError, 'invalid value for "n", must be greater than or equal to 1.' end @n = n end
Custom attribute writer method checking allowed values (enum). @param [Object] result_type
Object to be assigned
# File lib/proton_api/models/monte_carlo_request.rb, line 333 def result_type=(result_type) validator = EnumAttributeValidator.new('String', ['raw', 'custom', 'median', 'mean', 'tens']) unless validator.valid?(result_type) fail ArgumentError, 'invalid value for "result_type", must be one of #{validator.allowable_values}.' end @result_type = result_type end
Returns the object in the form of hash @return [Hash] Returns the object in the form of hash
# File lib/proton_api/models/monte_carlo_request.rb, line 476 def to_hash hash = {} self.class.attribute_map.each_pair do |attr, param| value = self.send(attr) next if value.nil? hash[param] = _to_hash(value) end hash end
Returns the string representation of the object @return [String] String presentation of the object
# File lib/proton_api/models/monte_carlo_request.rb, line 464 def to_s to_hash.to_s end
Check to see if the all the properties in the model are valid @return true if the model is valid
# File lib/proton_api/models/monte_carlo_request.rb, line 293 def valid? return false if !@init_bal.nil? && @init_bal < 0 return false if @cf.nil? return false if !@n.nil? && @n > 10000 return false if !@n.nil? && @n < 1 result_type_validator = EnumAttributeValidator.new('String', ['raw', 'custom', 'median', 'mean', 'tens']) return false unless result_type_validator.valid?(@result_type) market_data_source_validator = EnumAttributeValidator.new('String', ['nucleus', 'integration']) return false unless market_data_source_validator.valid?(@market_data_source) frequency_interval_validator = EnumAttributeValidator.new('String', ['year', 'six_months', 'quarter', 'month', 'two_weeks', 'week', 'day']) return false unless frequency_interval_validator.valid?(@frequency_interval) true end