=begin #Onfido API v3.6 #The Onfido API (v3.6) The version of the OpenAPI document: v3.6 Generated by: https://openapi-generator.tech Generator version: 7.9.0 =end require 'date' require 'time' module Onfido class DocumentIQReasons # When an image of the document is too dark to be able to see data points. attr_accessor :dark_photo # When there is light reflecting on the document causing glare to obstruct data points. attr_accessor :glare_on_photo # When data points are blurred and no reference can be made elsewhere in the document or if the data points are too blurry and 'they could be something else'. attr_accessor :blurred_photo # When data points have been covered either by the applicant or by another object such as a sticker. attr_accessor :covered_photo # Any other reason not listed, such as when holograms are obscuring data points. attr_accessor :other_photo_issue # When a document is damaged and we are unable to make out data points. attr_accessor :damaged_document # When the incorrect side of a document has been uploaded, and we have not received the front. attr_accessor :incorrect_side # When data points are not included in the image due to the document being cut off. attr_accessor :cut_off_document # If no document has been uploaded or there is a blank image. attr_accessor :no_document_in_image # When 2 different documents are submitted in the same check. attr_accessor :two_documents_uploaded # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'dark_photo' => :'dark_photo', :'glare_on_photo' => :'glare_on_photo', :'blurred_photo' => :'blurred_photo', :'covered_photo' => :'covered_photo', :'other_photo_issue' => :'other_photo_issue', :'damaged_document' => :'damaged_document', :'incorrect_side' => :'incorrect_side', :'cut_off_document' => :'cut_off_document', :'no_document_in_image' => :'no_document_in_image', :'two_documents_uploaded' => :'two_documents_uploaded' } end # Returns all the JSON keys this model knows about def self.acceptable_attributes attribute_map.values end # Attribute type mapping. def self.openapi_types { :'dark_photo' => :'String', :'glare_on_photo' => :'String', :'blurred_photo' => :'String', :'covered_photo' => :'String', :'other_photo_issue' => :'String', :'damaged_document' => :'String', :'incorrect_side' => :'String', :'cut_off_document' => :'String', :'no_document_in_image' => :'String', :'two_documents_uploaded' => :'String' } end # List of attributes with nullable: true def self.openapi_nullable Set.new([ ]) end # Initializes the object # @param [Hash] attributes Model attributes in the form of hash def initialize(attributes = {}) if (!attributes.is_a?(Hash)) fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::DocumentIQReasons` initialize method" end # check to see if the attribute exists and convert string to symbol for hash key attributes = attributes.each_with_object({}) { |(k, v), h| if (!self.class.attribute_map.key?(k.to_sym)) fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::DocumentIQReasons`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect end h[k.to_sym] = v } if attributes.key?(:'dark_photo') self.dark_photo = attributes[:'dark_photo'] end if attributes.key?(:'glare_on_photo') self.glare_on_photo = attributes[:'glare_on_photo'] end if attributes.key?(:'blurred_photo') self.blurred_photo = attributes[:'blurred_photo'] end if attributes.key?(:'covered_photo') self.covered_photo = attributes[:'covered_photo'] end if attributes.key?(:'other_photo_issue') self.other_photo_issue = attributes[:'other_photo_issue'] end if attributes.key?(:'damaged_document') self.damaged_document = attributes[:'damaged_document'] end if attributes.key?(:'incorrect_side') self.incorrect_side = attributes[:'incorrect_side'] end if attributes.key?(:'cut_off_document') self.cut_off_document = attributes[:'cut_off_document'] end if attributes.key?(:'no_document_in_image') self.no_document_in_image = attributes[:'no_document_in_image'] end if attributes.key?(:'two_documents_uploaded') self.two_documents_uploaded = attributes[:'two_documents_uploaded'] 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 warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' invalid_properties = Array.new 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? warn '[DEPRECATED] the `valid?` method is obsolete' 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 && dark_photo == o.dark_photo && glare_on_photo == o.glare_on_photo && blurred_photo == o.blurred_photo && covered_photo == o.covered_photo && other_photo_issue == o.other_photo_issue && damaged_document == o.damaged_document && incorrect_side == o.incorrect_side && cut_off_document == o.cut_off_document && no_document_in_image == o.no_document_in_image && two_documents_uploaded == o.two_documents_uploaded end # @see the `==` method # @param [Object] Object to be compared def eql?(o) self == o end # Calculates hash code according to all attributes. # @return [Integer] Hash code def hash [dark_photo, glare_on_photo, blurred_photo, covered_photo, other_photo_issue, damaged_document, incorrect_side, cut_off_document, no_document_in_image, two_documents_uploaded].hash end # Builds the object from hash # @param [Hash] attributes Model attributes in the form of hash # @return [Object] Returns the model itself def self.build_from_hash(attributes) return nil unless attributes.is_a?(Hash) attributes = attributes.transform_keys(&:to_sym) transformed_hash = {} openapi_types.each_pair do |key, type| if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? transformed_hash["#{key}"] = nil elsif 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[attribute_map[key]].is_a?(Array) transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } end elsif !attributes[attribute_map[key]].nil? transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) end end new(transformed_hash) end # Deserializes the data based on type # @param string type Data type # @param string value Value to be deserialized # @return [Object] Deserialized data def self._deserialize(type, value) case type.to_sym when :Time Time.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 # models (e.g. Pet) or oneOf klass = Onfido.const_get(type) klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.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) if value.nil? is_nullable = self.class.openapi_nullable.include?(attr) next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) end 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