/// <summary>
 /// Initializes a new instance of the <see cref="ConversationMessageEventTopicMessageDetails" /> class.
 /// </summary>
 /// <param name="Message">Message.</param>
 /// <param name="MessageTime">MessageTime.</param>
 /// <param name="MessageSegmentCount">MessageSegmentCount.</param>
 /// <param name="MessageStatus">MessageStatus.</param>
 /// <param name="Media">Media.</param>
 /// <param name="Stickers">Stickers.</param>
 public ConversationMessageEventTopicMessageDetails(ConversationMessageEventTopicUriReference Message = null, DateTime?MessageTime = null, int?MessageSegmentCount = null, MessageStatusEnum?MessageStatus = null, List <ConversationMessageEventTopicMessageMedia> Media = null, List <ConversationMessageEventTopicMessageSticker> Stickers = null)
 {
     this.Message             = Message;
     this.MessageTime         = MessageTime;
     this.MessageSegmentCount = MessageSegmentCount;
     this.MessageStatus       = MessageStatus;
     this.Media    = Media;
     this.Stickers = Stickers;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConversationMessageEventTopicMessageMediaParticipant" /> class.
 /// </summary>
 /// <param name="Id">Id.</param>
 /// <param name="Name">Name.</param>
 /// <param name="Address">Address.</param>
 /// <param name="StartTime">StartTime.</param>
 /// <param name="ConnectedTime">ConnectedTime.</param>
 /// <param name="EndTime">EndTime.</param>
 /// <param name="StartHoldTime">StartHoldTime.</param>
 /// <param name="Purpose">Purpose.</param>
 /// <param name="State">State.</param>
 /// <param name="Direction">Direction.</param>
 /// <param name="DisconnectType">DisconnectType.</param>
 /// <param name="Held">Held.</param>
 /// <param name="WrapupRequired">WrapupRequired.</param>
 /// <param name="WrapupPrompt">WrapupPrompt.</param>
 /// <param name="User">User.</param>
 /// <param name="Queue">Queue.</param>
 /// <param name="Attributes">Attributes.</param>
 /// <param name="ErrorInfo">ErrorInfo.</param>
 /// <param name="Script">Script.</param>
 /// <param name="WrapupTimeoutMs">WrapupTimeoutMs.</param>
 /// <param name="WrapupSkipped">WrapupSkipped.</param>
 /// <param name="AlertingTimeoutMs">AlertingTimeoutMs.</param>
 /// <param name="Provider">Provider.</param>
 /// <param name="ExternalContact">ExternalContact.</param>
 /// <param name="ExternalOrganization">ExternalOrganization.</param>
 /// <param name="Wrapup">Wrapup.</param>
 /// <param name="ConversationRoutingData">ConversationRoutingData.</param>
 /// <param name="Peer">Peer.</param>
 /// <param name="ScreenRecordingState">ScreenRecordingState.</param>
 /// <param name="FlaggedReason">FlaggedReason.</param>
 /// <param name="JourneyContext">JourneyContext.</param>
 /// <param name="StartAcwTime">StartAcwTime.</param>
 /// <param name="EndAcwTime">EndAcwTime.</param>
 /// <param name="Messages">Messages.</param>
 /// <param name="Type">Type.</param>
 /// <param name="RecipientCountry">RecipientCountry.</param>
 /// <param name="RecipientType">RecipientType.</param>
 public ConversationMessageEventTopicMessageMediaParticipant(string Id = null, string Name = null, string Address = null, DateTime?StartTime = null, DateTime?ConnectedTime = null, DateTime?EndTime = null, DateTime?StartHoldTime = null, string Purpose = null, StateEnum?State = null, DirectionEnum?Direction = null, DisconnectTypeEnum?DisconnectType = null, bool?Held = null, bool?WrapupRequired = null, string WrapupPrompt = null, ConversationMessageEventTopicUriReference User = null, ConversationMessageEventTopicUriReference Queue = null, Dictionary <string, string> Attributes = null, ConversationMessageEventTopicErrorBody ErrorInfo = null, ConversationMessageEventTopicUriReference Script = null, int?WrapupTimeoutMs = null, bool?WrapupSkipped = null, int?AlertingTimeoutMs = null, string Provider = null, ConversationMessageEventTopicUriReference ExternalContact = null, ConversationMessageEventTopicUriReference ExternalOrganization = null, ConversationMessageEventTopicWrapup Wrapup = null, ConversationMessageEventTopicConversationRoutingData ConversationRoutingData = null, string Peer = null, string ScreenRecordingState = null, FlaggedReasonEnum?FlaggedReason = null, ConversationMessageEventTopicJourneyContext JourneyContext = null, DateTime?StartAcwTime = null, DateTime?EndAcwTime = null, List <ConversationMessageEventTopicMessageDetails> Messages = null, TypeEnum?Type = null, string RecipientCountry = null, string RecipientType = null)
 {
     this.Id                      = Id;
     this.Name                    = Name;
     this.Address                 = Address;
     this.StartTime               = StartTime;
     this.ConnectedTime           = ConnectedTime;
     this.EndTime                 = EndTime;
     this.StartHoldTime           = StartHoldTime;
     this.Purpose                 = Purpose;
     this.State                   = State;
     this.Direction               = Direction;
     this.DisconnectType          = DisconnectType;
     this.Held                    = Held;
     this.WrapupRequired          = WrapupRequired;
     this.WrapupPrompt            = WrapupPrompt;
     this.User                    = User;
     this.Queue                   = Queue;
     this.Attributes              = Attributes;
     this.ErrorInfo               = ErrorInfo;
     this.Script                  = Script;
     this.WrapupTimeoutMs         = WrapupTimeoutMs;
     this.WrapupSkipped           = WrapupSkipped;
     this.AlertingTimeoutMs       = AlertingTimeoutMs;
     this.Provider                = Provider;
     this.ExternalContact         = ExternalContact;
     this.ExternalOrganization    = ExternalOrganization;
     this.Wrapup                  = Wrapup;
     this.ConversationRoutingData = ConversationRoutingData;
     this.Peer                    = Peer;
     this.ScreenRecordingState    = ScreenRecordingState;
     this.FlaggedReason           = FlaggedReason;
     this.JourneyContext          = JourneyContext;
     this.StartAcwTime            = StartAcwTime;
     this.EndAcwTime              = EndAcwTime;
     this.Messages                = Messages;
     this.Type                    = Type;
     this.RecipientCountry        = RecipientCountry;
     this.RecipientType           = RecipientType;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConversationMessageEventTopicScoredAgent" /> class.
 /// </summary>
 /// <param name="Agent">Agent.</param>
 /// <param name="Score">Score.</param>
 public ConversationMessageEventTopicScoredAgent(ConversationMessageEventTopicUriReference Agent = null, int?Score = null)
 {
     this.Agent = Agent;
     this.Score = Score;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConversationMessageEventTopicConversationRoutingData" /> class.
 /// </summary>
 /// <param name="Queue">A UriReference for a resource.</param>
 /// <param name="Language">A UriReference for a resource.</param>
 /// <param name="Priority">The priority of the conversation to use for routing decisions.</param>
 /// <param name="Skills">The skills to use for routing decisions.</param>
 /// <param name="ScoredAgents">A collection of agents and their assigned scores for this conversation (0 - 100, higher being better), for use in routing to preferred agents.</param>
 public ConversationMessageEventTopicConversationRoutingData(ConversationMessageEventTopicUriReference Queue = null, ConversationMessageEventTopicUriReference Language = null, int?Priority = null, List <ConversationMessageEventTopicUriReference> Skills = null, List <ConversationMessageEventTopicScoredAgent> ScoredAgents = null)
 {
     this.Queue        = Queue;
     this.Language     = Language;
     this.Priority     = Priority;
     this.Skills       = Skills;
     this.ScoredAgents = ScoredAgents;
 }