lib/purecloud/models/chat_participant.rb in purecloud-0.27.0 vs lib/purecloud/models/chat_participant.rb in purecloud-0.28.0

- old
+ new

@@ -1,24 +1,151 @@ require 'date' module PureCloud class ChatParticipant - attr_accessor :type + # The unique participant ID. + attr_accessor :id + # The display friendly name of the participant. + attr_accessor :name + + # The participant address. + attr_accessor :address + + # The time when this participant joined the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ + attr_accessor :start_time + + # The time when this participant went connected on the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ + attr_accessor :connected_time + + # The time when this participant when disconnected on the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ + attr_accessor :end_time + + # The time when this participant's hold started. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ + attr_accessor :start_hold_time + + # The participant's purpose. Values can be: 'agent', 'user', 'customer', 'external', 'acd', 'ivr + attr_accessor :purpose + + # The participant's state. Values can be: 'alerting', 'connected', 'disconnected', 'dialing', 'contacting + attr_accessor :state + + # The participant's direction. Values can be: 'inbound' or 'outbound' + attr_accessor :direction + + # The reason the participant was disconnected from the conversation. + attr_accessor :disconnect_type + + # Value is true when the participant is on hold. + attr_accessor :held + + # Value is true when the participant requires wrap-up. + attr_accessor :wrapup_required + + # The wrap-up prompt indicating the type of wrap-up to be performed. + attr_accessor :wrapup_prompt + + # The PureCloud user for this participant. + attr_accessor :user + + # The PureCloud queue for this participant. + attr_accessor :queue + + # A list of ad-hoc attributes for the participant. + attr_accessor :attributes + + # If the conversation ends in error, contains additional error details. + attr_accessor :error_info + + # The Engage script that should be used by this participant. + attr_accessor :script + + # The amount of time the participant has to complete wrap-up. + attr_accessor :wrapup_timeout_ms + + # Value is true when the participant has skipped wrap-up. + attr_accessor :wrapup_skipped + + # The ID of the chat room. + attr_accessor :room_id + # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { - :'type' => :'type' + :'id' => :'id', + :'name' => :'name', + + :'address' => :'address', + + :'start_time' => :'startTime', + + :'connected_time' => :'connectedTime', + + :'end_time' => :'endTime', + + :'start_hold_time' => :'startHoldTime', + + :'purpose' => :'purpose', + + :'state' => :'state', + + :'direction' => :'direction', + + :'disconnect_type' => :'disconnectType', + + :'held' => :'held', + + :'wrapup_required' => :'wrapupRequired', + + :'wrapup_prompt' => :'wrapupPrompt', + + :'user' => :'user', + + :'queue' => :'queue', + + :'attributes' => :'attributes', + + :'error_info' => :'errorInfo', + + :'script' => :'script', + + :'wrapup_timeout_ms' => :'wrapupTimeoutMs', + + :'wrapup_skipped' => :'wrapupSkipped', + + :'room_id' => :'roomId' + } end # Attribute type mapping. def self.swagger_types { - :'type' => :'String' + :'id' => :'String', + :'name' => :'String', + :'address' => :'String', + :'start_time' => :'DateTime', + :'connected_time' => :'DateTime', + :'end_time' => :'DateTime', + :'start_hold_time' => :'DateTime', + :'purpose' => :'String', + :'state' => :'String', + :'direction' => :'String', + :'disconnect_type' => :'String', + :'held' => :'BOOLEAN', + :'wrapup_required' => :'BOOLEAN', + :'wrapup_prompt' => :'String', + :'user' => :'UriReference', + :'queue' => :'UriReference', + :'attributes' => :'Hash<String, String>', + :'error_info' => :'ErrorBody', + :'script' => :'UriReference', + :'wrapup_timeout_ms' => :'Integer', + :'wrapup_skipped' => :'BOOLEAN', + :'room_id' => :'String' } end def initialize(attributes = {}) @@ -26,39 +153,170 @@ # convert string to symbol for hash key attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} - if attributes[:'type'] - self.type = attributes[:'type'] + if attributes[:'id'] + self.id = attributes[:'id'] end + if attributes[:'name'] + self.name = attributes[:'name'] + end + + if attributes[:'address'] + self.address = attributes[:'address'] + end + + if attributes[:'startTime'] + self.start_time = attributes[:'startTime'] + end + + if attributes[:'connectedTime'] + self.connected_time = attributes[:'connectedTime'] + end + + if attributes[:'endTime'] + self.end_time = attributes[:'endTime'] + end + + if attributes[:'startHoldTime'] + self.start_hold_time = attributes[:'startHoldTime'] + end + + if attributes[:'purpose'] + self.purpose = attributes[:'purpose'] + end + + if attributes[:'state'] + self.state = attributes[:'state'] + end + + if attributes[:'direction'] + self.direction = attributes[:'direction'] + end + + if attributes[:'disconnectType'] + self.disconnect_type = attributes[:'disconnectType'] + end + + if attributes[:'held'] + self.held = attributes[:'held'] + else + self.held = false + end + + if attributes[:'wrapupRequired'] + self.wrapup_required = attributes[:'wrapupRequired'] + else + self.wrapup_required = false + end + + if attributes[:'wrapupPrompt'] + self.wrapup_prompt = attributes[:'wrapupPrompt'] + end + + if attributes[:'user'] + self.user = attributes[:'user'] + end + + if attributes[:'queue'] + self.queue = attributes[:'queue'] + end + + if attributes[:'attributes'] + if (value = attributes[:'attributes']).is_a?(Array) + self.attributes = value + end + end + + if attributes[:'errorInfo'] + self.error_info = attributes[:'errorInfo'] + end + + if attributes[:'script'] + self.script = attributes[:'script'] + end + + if attributes[:'wrapupTimeoutMs'] + self.wrapup_timeout_ms = attributes[:'wrapupTimeoutMs'] + end + + if attributes[:'wrapupSkipped'] + self.wrapup_skipped = attributes[:'wrapupSkipped'] + else + self.wrapup_skipped = false + end + + if attributes[:'roomId'] + self.room_id = attributes[:'roomId'] + end + end # Custom attribute writer method checking allowed values (enum). - def type=(type) - allowed_values = ["USER", "ROOM"] - if type && !allowed_values.include?(type) - fail "invalid value for 'type', must be one of #{allowed_values}" + def state=(state) + allowed_values = ["ALERTING", "DIALING", "CONTACTING", "OFFERING", "CONNECTED", "DISCONNECTED", "TERMINATED", "CONVERTING", "UPLOADING", "TRANSMITTING", "NONE"] + if state && !allowed_values.include?(state) + fail "invalid value for 'state', must be one of #{allowed_values}" end - @type = type + @state = state end + # Custom attribute writer method checking allowed values (enum). + def direction=(direction) + allowed_values = ["INBOUND", "OUTBOUND"] + if direction && !allowed_values.include?(direction) + fail "invalid value for 'direction', must be one of #{allowed_values}" + end + @direction = direction + end + + # Custom attribute writer method checking allowed values (enum). + def disconnect_type=(disconnect_type) + allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"] + if disconnect_type && !allowed_values.include?(disconnect_type) + fail "invalid value for 'disconnect_type', must be one of #{allowed_values}" + end + @disconnect_type = disconnect_type + end + # Check equality by comparing each attribute. def ==(o) return true if self.equal?(o) self.class == o.class && - type == o.type + id == o.id && + name == o.name && + address == o.address && + start_time == o.start_time && + connected_time == o.connected_time && + end_time == o.end_time && + start_hold_time == o.start_hold_time && + purpose == o.purpose && + state == o.state && + direction == o.direction && + disconnect_type == o.disconnect_type && + held == o.held && + wrapup_required == o.wrapup_required && + wrapup_prompt == o.wrapup_prompt && + user == o.user && + queue == o.queue && + attributes == o.attributes && + error_info == o.error_info && + script == o.script && + wrapup_timeout_ms == o.wrapup_timeout_ms && + wrapup_skipped == o.wrapup_skipped && + room_id == o.room_id end # @see the `==` method def eql?(o) self == o end # Calculate hash code according to all attributes. def hash - [type].hash + [id, name, address, start_time, connected_time, end_time, start_hold_time, purpose, state, direction, disconnect_type, held, wrapup_required, wrapup_prompt, user, queue, attributes, error_info, script, wrapup_timeout_ms, wrapup_skipped, room_id].hash end # build the object from hash def build_from_hash(attributes) return nil unless attributes.is_a?(Hash)