=begin PureCloud API PureCloud API OpenAPI spec version: v1 Contact: chuck.pulfer@inin.com Generated by: https://github.com/swagger-api/swagger-codegen.git License: ININ http://www.inin.com Terms of Service: http://www.inin.com =end require 'date' module PureCloud # Details about a WorkItem class WorkItemDetails # The globally unique identifier for the object. attr_accessor :id attr_accessor :name attr_accessor :work_item_definition # The flow instance ID that created this WorkItem attr_accessor :flow_exec_id # The flow config ID that this workitem was created from. attr_accessor :flow_config_id # The time the flow was started. (that created this workitem). Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ attr_accessor :flow_create_time # The time this workitem was started. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ attr_accessor :create_time # The user currently working on/has responsibility for this WorkItem. May be null if no owner. attr_accessor :owner # List of users that this workItem is offered to. May be null if only offered to queues. attr_accessor :offered_to_users # List of queues that this workItem is offered to. May be null if only offered to users. attr_accessor :offered_to_queues # The work item title attr_accessor :title # The work item's subtitle - 2nd line/description attr_accessor :subtitle # The documents associated with this workitem attr_accessor :associated_documents # The actions that the user can take on this workitem (submit, transfer, etc). attr_accessor :available_actions # The data items that provide values for any work item form elements, if applicable. attr_accessor :data_value_info # The data items in the current work item cache, if one exists. attr_accessor :work_item_cache # The time this work item was last offered to a user or queue. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ attr_accessor :last_offered_time # The most recent time a user assumed ownership of a work item. This may be blank if the work item has no owner. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ attr_accessor :last_ownership_update_time # This is the time when the current task that started the work item was started. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ attr_accessor :current_task_start_time # The URI for this object attr_accessor :self_uri # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'id' => :'id', :'name' => :'name', :'work_item_definition' => :'workItemDefinition', :'flow_exec_id' => :'flowExecId', :'flow_config_id' => :'flowConfigId', :'flow_create_time' => :'flowCreateTime', :'create_time' => :'createTime', :'owner' => :'owner', :'offered_to_users' => :'offeredToUsers', :'offered_to_queues' => :'offeredToQueues', :'title' => :'title', :'subtitle' => :'subtitle', :'associated_documents' => :'associatedDocuments', :'available_actions' => :'availableActions', :'data_value_info' => :'dataValueInfo', :'work_item_cache' => :'workItemCache', :'last_offered_time' => :'lastOfferedTime', :'last_ownership_update_time' => :'lastOwnershipUpdateTime', :'current_task_start_time' => :'currentTaskStartTime', :'self_uri' => :'selfUri' } end # Attribute type mapping. def self.swagger_types { :'id' => :'String', :'name' => :'String', :'work_item_definition' => :'WorkItemDefinition', :'flow_exec_id' => :'FlowExecId', :'flow_config_id' => :'FlowConfigId', :'flow_create_time' => :'DateTime', :'create_time' => :'DateTime', :'owner' => :'User', :'offered_to_users' => :'Array', :'offered_to_queues' => :'Array', :'title' => :'String', :'subtitle' => :'String', :'associated_documents' => :'Array', :'available_actions' => :'WorkItemActions', :'data_value_info' => :'DataValueInfo', :'work_item_cache' => :'WorkItemCache', :'last_offered_time' => :'DateTime', :'last_ownership_update_time' => :'DateTime', :'current_task_start_time' => :'DateTime', :'self_uri' => :'String' } end def initialize(attributes = {}) return unless attributes.is_a?(Hash) # convert string to symbol for hash key attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} if attributes[:'id'] self.id = attributes[:'id'] end if attributes[:'name'] self.name = attributes[:'name'] end if attributes[:'workItemDefinition'] self.work_item_definition = attributes[:'workItemDefinition'] end if attributes[:'flowExecId'] self.flow_exec_id = attributes[:'flowExecId'] end if attributes[:'flowConfigId'] self.flow_config_id = attributes[:'flowConfigId'] end if attributes[:'flowCreateTime'] self.flow_create_time = attributes[:'flowCreateTime'] end if attributes[:'createTime'] self.create_time = attributes[:'createTime'] end if attributes[:'owner'] self.owner = attributes[:'owner'] end if attributes[:'offeredToUsers'] if (value = attributes[:'offeredToUsers']).is_a?(Array) self.offered_to_users = value end end if attributes[:'offeredToQueues'] if (value = attributes[:'offeredToQueues']).is_a?(Array) self.offered_to_queues = value end end if attributes[:'title'] self.title = attributes[:'title'] end if attributes[:'subtitle'] self.subtitle = attributes[:'subtitle'] end if attributes[:'associatedDocuments'] if (value = attributes[:'associatedDocuments']).is_a?(Array) self.associated_documents = value end end if attributes[:'availableActions'] self.available_actions = attributes[:'availableActions'] end if attributes[:'dataValueInfo'] self.data_value_info = attributes[:'dataValueInfo'] end if attributes[:'workItemCache'] self.work_item_cache = attributes[:'workItemCache'] end if attributes[:'lastOfferedTime'] self.last_offered_time = attributes[:'lastOfferedTime'] end if attributes[:'lastOwnershipUpdateTime'] self.last_ownership_update_time = attributes[:'lastOwnershipUpdateTime'] end if attributes[:'currentTaskStartTime'] self.current_task_start_time = attributes[:'currentTaskStartTime'] end if attributes[:'selfUri'] self.self_uri = attributes[:'selfUri'] end end # Check equality by comparing each attribute. def ==(o) return true if self.equal?(o) self.class == o.class && id == o.id && name == o.name && work_item_definition == o.work_item_definition && flow_exec_id == o.flow_exec_id && flow_config_id == o.flow_config_id && flow_create_time == o.flow_create_time && create_time == o.create_time && owner == o.owner && offered_to_users == o.offered_to_users && offered_to_queues == o.offered_to_queues && title == o.title && subtitle == o.subtitle && associated_documents == o.associated_documents && available_actions == o.available_actions && data_value_info == o.data_value_info && work_item_cache == o.work_item_cache && last_offered_time == o.last_offered_time && last_ownership_update_time == o.last_ownership_update_time && current_task_start_time == o.current_task_start_time && self_uri == o.self_uri end # @see the `==` method def eql?(o) self == o end # Calculate hash code according to all attributes. def hash [id, name, work_item_definition, flow_exec_id, flow_config_id, flow_create_time, create_time, owner, offered_to_users, offered_to_queues, title, subtitle, associated_documents, available_actions, data_value_info, work_item_cache, last_offered_time, last_ownership_update_time, current_task_start_time, self_uri].hash end # build the object from hash def build_from_hash(attributes) return nil unless attributes.is_a?(Hash) self.class.swagger_types.each_pair do |key, type| if type =~ /^Array<(.*)>/i if attributes[self.class.attribute_map[key]].is_a?(Array) self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } ) else #TODO show warning in debug mode end elsif !attributes[self.class.attribute_map[key]].nil? self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) else # data not found in attributes(hash), not an issue as the data can be optional end end self end 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 =~ /^(true|t|yes|y|1)$/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 _model = Object.const_get("PureCloud").const_get(type).new _model.build_from_hash(value) end end def to_s to_hash.to_s end # to_body is an alias to to_body (backward compatibility)) def to_body to_hash end # return 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 # Method to output non-array value in the form of hash # For object, use to_hash. Otherwise, just return the value 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