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)