=begin #Treezor #Treezor API. more info [here](https://www.treezor.com). OpenAPI spec version: 0.1.1 Generated by: https://github.com/swagger-api/swagger-codegen.git Swagger Codegen version: 2.3.1 =end require 'date' module TreezorClient class CardDigitalizationDetailsFromGPS # Creator Name attr_accessor :creator # Digitiser's (i.e. who created this payment_token) unique ref to the linkedcard attr_accessor :creator_pan_ref # See internal documentation attr_accessor :creator_token_ref # PAN for the Card linked to the MDES card attr_accessor :pant # PaymentToken DPAN for MDES Card attr_accessor :payment_token # Expiry date of payment token attr_accessor :payment_token_exp_date # PaymentToken Id for MDES card attr_accessor :payment_token_id # See Appendix LL attr_accessor :payment_token_type # This is the GPS set status of the token for transacting attr_accessor :gps_status # date/time yyyy-mm-dd hh:mm:ss when tokenise attr_accessor :tokenised_datetime # Has this Payment Token been digitised/personalised ? U=unknown 0=not-tokenised 1=tokenised attr_accessor :tokenised_status # Status of token for transacting. After tokenisation, this is not changed by GPS, but is received from token creator who maintains this. attr_accessor :txn_status # This says who/which-system was the last to change txn_status attr_accessor :txn_status_actor # Date/time that txn_status was last changed attr_accessor :txn_status_change_datetime # Version of the terms and conditions which were accepted by the cardholder.(As received from network) attr_accessor :accepted_terms_version # date/time yyyy-mm-dd hh:mm:ss when token authorisation (to digitise/personalise) request last responded to attr_accessor :auth_datetime # Final tokenisation decision - Values U=unknown (not tested) 0=Approve digitisation request A=Approve digitisation request (with additional authentication) attr_accessor :auth_decision # who approved tokenisation attr_accessor :auth_rspsrc # Status of the authorisation given to Digitise/personalise this Payment Token note not related to transaction authorisation Values U=unknown (not tested) 0=Approve digitisation request A=Approve digitisation request (with additional authentication) 1=decline digitisation request attr_accessor :auth_status # Unique (per payment_token_issuer_id) reference which all digitisation messageswill use, to link them together attr_accessor :digitisation_ref # Activation code to be sent directly to cardholder to activate this Payment Token attr_accessor :activation_code # Date/time yyyy-mm-dd hh:mm:ss when activation code expires, in GMT (UTC) attr_accessor :activation_code_expdate # Which Activation Method wa used 0 - None 1 - SMS to mobile phone 2 - Email 3 - Cardholder to call automated call centre 4 - Cardholder to call human call centre 5 - Website 6 - Mobile application 7 - Voice phone call attr_accessor :activation_method # unique ID of the secure element in the device attr_accessor :device_id # IP address (full or last part only) of the device at digitisation time attr_accessor :device_ip # Device language code as ISO 639-1 (2 letter lowercase) code attr_accessor :device_lang2 # Device Latitude in degrees at time of digitisation request -180 to +180 +ve=East, -ve=West (of Greenwich) eg 176.2 => East 176.2 degrees,- 98.5 => West 98.5 degrees attr_accessor :device_latitude # Longitude as above attr_accessor :device_longitude # name cardholder assigned to device in Wallet attr_accessor :device_name # Device telephone number (full or last part only) attr_accessor :device_tel_num # Not described attr_accessor :device_type # Cardholder firstname as provided by Wallet Provider during digitisation. May not be provided, or just initial. attr_accessor :first_name # Cardholder last name as provided by Wallet Provider during digitisation. May not be provided, or just initial. attr_accessor :last_name # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'creator' => :'Creator', :'creator_pan_ref' => :'Creator_PAN_Ref', :'creator_token_ref' => :'Creator_Token_Ref', :'pant' => :'PANT', :'payment_token' => :'Payment_Token', :'payment_token_exp_date' => :'Payment_Token_ExpDate', :'payment_token_id' => :'Payment_Token_ID', :'payment_token_type' => :'Payment_Token_Type', :'gps_status' => :'GPS_Status', :'tokenised_datetime' => :'Tokenised_Datetime', :'tokenised_status' => :'Tokenised_Status', :'txn_status' => :'Txn_Status', :'txn_status_actor' => :'Txn_Status_Actor', :'txn_status_change_datetime' => :'Txn_Status_Change_Datetime', :'accepted_terms_version' => :'Accepted_Terms_Version', :'auth_datetime' => :'Auth_Datetime', :'auth_decision' => :'Auth_Decision', :'auth_rspsrc' => :'Auth_RSPSRC', :'auth_status' => :'Auth_Status', :'digitisation_ref' => :'Digitisation_Ref', :'activation_code' => :'Activation_Code', :'activation_code_expdate' => :'Activation_Code_Expdate', :'activation_method' => :'Activation_Method', :'device_id' => :'Device_ID', :'device_ip' => :'Device_IP', :'device_lang2' => :'Device_Lang2', :'device_latitude' => :'Device_Latitude', :'device_longitude' => :'Device_Longitude', :'device_name' => :'Device_Name', :'device_tel_num' => :'Device_Tel_Num', :'device_type' => :'Device_Type', :'first_name' => :'FirstName', :'last_name' => :'LastName' } end # Attribute type mapping. def self.swagger_types { :'creator' => :'String', :'creator_pan_ref' => :'String', :'creator_token_ref' => :'String', :'pant' => :'String', :'payment_token' => :'String', :'payment_token_exp_date' => :'String', :'payment_token_id' => :'String', :'payment_token_type' => :'String', :'gps_status' => :'String', :'tokenised_datetime' => :'String', :'tokenised_status' => :'String', :'txn_status' => :'String', :'txn_status_actor' => :'String', :'txn_status_change_datetime' => :'String', :'accepted_terms_version' => :'String', :'auth_datetime' => :'String', :'auth_decision' => :'String', :'auth_rspsrc' => :'String', :'auth_status' => :'String', :'digitisation_ref' => :'String', :'activation_code' => :'String', :'activation_code_expdate' => :'String', :'activation_method' => :'String', :'device_id' => :'String', :'device_ip' => :'String', :'device_lang2' => :'String', :'device_latitude' => :'String', :'device_longitude' => :'String', :'device_name' => :'String', :'device_tel_num' => :'String', :'device_type' => :'String', :'first_name' => :'String', :'last_name' => :'String' } end # Initializes the object # @param [Hash] attributes Model attributes in the form of hash 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?(:'Creator') self.creator = attributes[:'Creator'] end if attributes.has_key?(:'Creator_PAN_Ref') self.creator_pan_ref = attributes[:'Creator_PAN_Ref'] end if attributes.has_key?(:'Creator_Token_Ref') self.creator_token_ref = attributes[:'Creator_Token_Ref'] end if attributes.has_key?(:'PANT') self.pant = attributes[:'PANT'] end if attributes.has_key?(:'Payment_Token') self.payment_token = attributes[:'Payment_Token'] end if attributes.has_key?(:'Payment_Token_ExpDate') self.payment_token_exp_date = attributes[:'Payment_Token_ExpDate'] end if attributes.has_key?(:'Payment_Token_ID') self.payment_token_id = attributes[:'Payment_Token_ID'] end if attributes.has_key?(:'Payment_Token_Type') self.payment_token_type = attributes[:'Payment_Token_Type'] end if attributes.has_key?(:'GPS_Status') self.gps_status = attributes[:'GPS_Status'] end if attributes.has_key?(:'Tokenised_Datetime') self.tokenised_datetime = attributes[:'Tokenised_Datetime'] end if attributes.has_key?(:'Tokenised_Status') self.tokenised_status = attributes[:'Tokenised_Status'] end if attributes.has_key?(:'Txn_Status') self.txn_status = attributes[:'Txn_Status'] end if attributes.has_key?(:'Txn_Status_Actor') self.txn_status_actor = attributes[:'Txn_Status_Actor'] end if attributes.has_key?(:'Txn_Status_Change_Datetime') self.txn_status_change_datetime = attributes[:'Txn_Status_Change_Datetime'] end if attributes.has_key?(:'Accepted_Terms_Version') self.accepted_terms_version = attributes[:'Accepted_Terms_Version'] end if attributes.has_key?(:'Auth_Datetime') self.auth_datetime = attributes[:'Auth_Datetime'] end if attributes.has_key?(:'Auth_Decision') self.auth_decision = attributes[:'Auth_Decision'] end if attributes.has_key?(:'Auth_RSPSRC') self.auth_rspsrc = attributes[:'Auth_RSPSRC'] end if attributes.has_key?(:'Auth_Status') self.auth_status = attributes[:'Auth_Status'] end if attributes.has_key?(:'Digitisation_Ref') self.digitisation_ref = attributes[:'Digitisation_Ref'] end if attributes.has_key?(:'Activation_Code') self.activation_code = attributes[:'Activation_Code'] end if attributes.has_key?(:'Activation_Code_Expdate') self.activation_code_expdate = attributes[:'Activation_Code_Expdate'] end if attributes.has_key?(:'Activation_Method') self.activation_method = attributes[:'Activation_Method'] end if attributes.has_key?(:'Device_ID') self.device_id = attributes[:'Device_ID'] end if attributes.has_key?(:'Device_IP') self.device_ip = attributes[:'Device_IP'] end if attributes.has_key?(:'Device_Lang2') self.device_lang2 = attributes[:'Device_Lang2'] end if attributes.has_key?(:'Device_Latitude') self.device_latitude = attributes[:'Device_Latitude'] end if attributes.has_key?(:'Device_Longitude') self.device_longitude = attributes[:'Device_Longitude'] end if attributes.has_key?(:'Device_Name') self.device_name = attributes[:'Device_Name'] end if attributes.has_key?(:'Device_Tel_Num') self.device_tel_num = attributes[:'Device_Tel_Num'] end if attributes.has_key?(:'Device_Type') self.device_type = attributes[:'Device_Type'] end if attributes.has_key?(:'FirstName') self.first_name = attributes[:'FirstName'] end if attributes.has_key?(:'LastName') self.last_name = attributes[:'LastName'] end end # Show invalid properties with the reasons. Usually used together with valid? # @return Array for valid properties with the reasons def list_invalid_properties invalid_properties = Array.new return invalid_properties end # Check to see if the all the properties in the model are valid # @return true if the model is valid def valid? return true end # Checks equality by comparing each attribute. # @param [Object] Object to be compared def ==(o) return true if self.equal?(o) self.class == o.class && creator == o.creator && creator_pan_ref == o.creator_pan_ref && creator_token_ref == o.creator_token_ref && pant == o.pant && payment_token == o.payment_token && payment_token_exp_date == o.payment_token_exp_date && payment_token_id == o.payment_token_id && payment_token_type == o.payment_token_type && gps_status == o.gps_status && tokenised_datetime == o.tokenised_datetime && tokenised_status == o.tokenised_status && txn_status == o.txn_status && txn_status_actor == o.txn_status_actor && txn_status_change_datetime == o.txn_status_change_datetime && accepted_terms_version == o.accepted_terms_version && auth_datetime == o.auth_datetime && auth_decision == o.auth_decision && auth_rspsrc == o.auth_rspsrc && auth_status == o.auth_status && digitisation_ref == o.digitisation_ref && activation_code == o.activation_code && activation_code_expdate == o.activation_code_expdate && activation_method == o.activation_method && device_id == o.device_id && device_ip == o.device_ip && device_lang2 == o.device_lang2 && device_latitude == o.device_latitude && device_longitude == o.device_longitude && device_name == o.device_name && device_tel_num == o.device_tel_num && device_type == o.device_type && first_name == o.first_name && last_name == o.last_name end # @see the `==` method # @param [Object] Object to be compared def eql?(o) self == o end # Calculates hash code according to all attributes. # @return [Fixnum] Hash code def hash [creator, creator_pan_ref, creator_token_ref, pant, payment_token, payment_token_exp_date, payment_token_id, payment_token_type, gps_status, tokenised_datetime, tokenised_status, txn_status, txn_status_actor, txn_status_change_datetime, accepted_terms_version, auth_datetime, auth_decision, auth_rspsrc, auth_status, digitisation_ref, activation_code, activation_code_expdate, activation_method, device_id, device_ip, device_lang2, device_latitude, device_longitude, device_name, device_tel_num, device_type, first_name, last_name].hash end # Builds the object from hash # @param [Hash] attributes Model attributes in the form of hash # @return [Object] Returns the model itself 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 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 # Deserializes the data based on type # @param string type Data type # @param string value Value to be deserialized # @return [Object] Deserialized data def _deserialize(type, value) case type.to_sym when :DateTime DateTime.parse(value) when :Date Date.parse(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<(?.+)>\z/ inner_type = Regexp.last_match[:inner_type] value.map { |v| _deserialize(inner_type, v) } when /\AHash<(?.+?), (?.+)>\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 = TreezorClient.const_get(type).new temp_model.build_from_hash(value) end end # Returns the string representation of the object # @return [String] String presentation of the object def to_s to_hash.to_s end # to_body is an alias to to_hash (backward compatibility) # @return [Hash] Returns the object in the form of hash def to_body to_hash end # Returns the object in the form of hash # @return [Hash] Returns the object in the form of hash 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 # 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 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 end end