/// <summary>
 /// Initializes a new instance of the <see cref="QueueConversationSocialExpressionEventTopicCallback" /> class.
 /// </summary>
 /// <param name="State">State.</param>
 /// <param name="InitialState">InitialState.</param>
 /// <param name="Id">A globally unique identifier for this communication..</param>
 /// <param name="Direction">The direction of the call.</param>
 /// <param name="Held">True if this call is held and the person on this side hears silence..</param>
 /// <param name="DisconnectType">System defined string indicating what caused the communication to disconnect. Will be null until the communication disconnects..</param>
 /// <param name="StartHoldTime">The timestamp the callback was placed on hold in the cloud clock if the callback is currently on hold..</param>
 /// <param name="DialerPreview">DialerPreview.</param>
 /// <param name="Voicemail">Voicemail.</param>
 /// <param name="CallbackNumbers">The phone number(s) to use to place the callback..</param>
 /// <param name="CallbackUserName">The name of the user requesting a callback..</param>
 /// <param name="ScriptId">The UUID of the script to use..</param>
 /// <param name="PeerId">The id of the peer communication corresponding to a matching leg for this communication..</param>
 /// <param name="ExternalCampaign">True if the call for the callback uses external dialing..</param>
 /// <param name="SkipEnabled">True if the ability to skip a callback should be enabled..</param>
 /// <param name="Provider">The source provider of the callback..</param>
 /// <param name="TimeoutSeconds">The number of seconds before the system automatically places a call for a callback.  0 means the automatic placement is disabled..</param>
 /// <param name="ConnectedTime">The timestamp when this communication was connected in the cloud clock..</param>
 /// <param name="DisconnectedTime">The timestamp when this communication disconnected from the conversation in the provider clock..</param>
 /// <param name="CallbackScheduledTime">The timestamp when this communication is scheduled in the provider clock. If this value is missing it indicates the callback will be placed immediately..</param>
 /// <param name="AutomatedCallbackConfigId">The id of the config for automatically placing the callback (and handling the disposition). If null, the callback will not be placed automatically but routed to an agent as per normal..</param>
 /// <param name="Wrapup">Call wrap up or disposition data..</param>
 /// <param name="AfterCallWork">A communication's after-call work data..</param>
 /// <param name="AfterCallWorkRequired">Indicates if after-call is required for a communication. Only used when the ACW Setting is Agent Requested..</param>
 /// <param name="CallerId">The phone number displayed to recipients of the phone call. The value should conform to the E164 format..</param>
 /// <param name="CallerIdName">The name displayed to recipients of the phone call..</param>
 public QueueConversationSocialExpressionEventTopicCallback(StateEnum?State = null, InitialStateEnum?InitialState = null, string Id = null, DirectionEnum?Direction = null, bool?Held = null, DisconnectTypeEnum?DisconnectType = null, DateTime?StartHoldTime = null, QueueConversationSocialExpressionEventTopicDialerPreview DialerPreview = null, QueueConversationSocialExpressionEventTopicVoicemail Voicemail = null, List <string> CallbackNumbers = null, string CallbackUserName = null, string ScriptId = null, string PeerId = null, bool?ExternalCampaign = null, bool?SkipEnabled = null, string Provider = null, int?TimeoutSeconds = null, DateTime?ConnectedTime = null, DateTime?DisconnectedTime = null, DateTime?CallbackScheduledTime = null, string AutomatedCallbackConfigId = null, QueueConversationSocialExpressionEventTopicWrapup Wrapup = null, QueueConversationSocialExpressionEventTopicAfterCallWork AfterCallWork = null, bool?AfterCallWorkRequired = null, string CallerId = null, string CallerIdName = null)
 {
     this.State                     = State;
     this.InitialState              = InitialState;
     this.Id                        = Id;
     this.Direction                 = Direction;
     this.Held                      = Held;
     this.DisconnectType            = DisconnectType;
     this.StartHoldTime             = StartHoldTime;
     this.DialerPreview             = DialerPreview;
     this.Voicemail                 = Voicemail;
     this.CallbackNumbers           = CallbackNumbers;
     this.CallbackUserName          = CallbackUserName;
     this.ScriptId                  = ScriptId;
     this.PeerId                    = PeerId;
     this.ExternalCampaign          = ExternalCampaign;
     this.SkipEnabled               = SkipEnabled;
     this.Provider                  = Provider;
     this.TimeoutSeconds            = TimeoutSeconds;
     this.ConnectedTime             = ConnectedTime;
     this.DisconnectedTime          = DisconnectedTime;
     this.CallbackScheduledTime     = CallbackScheduledTime;
     this.AutomatedCallbackConfigId = AutomatedCallbackConfigId;
     this.Wrapup                    = Wrapup;
     this.AfterCallWork             = AfterCallWork;
     this.AfterCallWorkRequired     = AfterCallWorkRequired;
     this.CallerId                  = CallerId;
     this.CallerIdName              = CallerIdName;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueConversationSocialExpressionEventTopicCallback" /> class.
 /// </summary>
 /// <param name="State">State.</param>
 /// <param name="Id">Id.</param>
 /// <param name="Direction">Direction.</param>
 /// <param name="Held">Held.</param>
 /// <param name="DisconnectType">DisconnectType.</param>
 /// <param name="StartHoldTime">StartHoldTime.</param>
 /// <param name="DialerPreview">DialerPreview.</param>
 /// <param name="Voicemail">Voicemail.</param>
 /// <param name="CallbackNumbers">CallbackNumbers.</param>
 /// <param name="CallbackUserName">CallbackUserName.</param>
 /// <param name="ScriptId">ScriptId.</param>
 /// <param name="PeerId">PeerId.</param>
 /// <param name="SkipEnabled">SkipEnabled.</param>
 /// <param name="Provider">Provider.</param>
 /// <param name="TimeoutSeconds">TimeoutSeconds.</param>
 /// <param name="ConnectedTime">ConnectedTime.</param>
 /// <param name="DisconnectedTime">DisconnectedTime.</param>
 /// <param name="CallbackScheduledTime">CallbackScheduledTime.</param>
 /// <param name="AutomatedCallbackConfigId">AutomatedCallbackConfigId.</param>
 /// <param name="AdditionalProperties">AdditionalProperties.</param>
 public QueueConversationSocialExpressionEventTopicCallback(StateEnum?State = null, string Id = null, DirectionEnum?Direction = null, bool?Held = null, DisconnectTypeEnum?DisconnectType = null, DateTime?StartHoldTime = null, QueueConversationSocialExpressionEventTopicDialerPreview DialerPreview = null, QueueConversationSocialExpressionEventTopicVoicemail Voicemail = null, List <string> CallbackNumbers = null, string CallbackUserName = null, string ScriptId = null, string PeerId = null, bool?SkipEnabled = null, string Provider = null, int?TimeoutSeconds = null, DateTime?ConnectedTime = null, DateTime?DisconnectedTime = null, DateTime?CallbackScheduledTime = null, string AutomatedCallbackConfigId = null, Object AdditionalProperties = null)
 {
     this.State                     = State;
     this.Id                        = Id;
     this.Direction                 = Direction;
     this.Held                      = Held;
     this.DisconnectType            = DisconnectType;
     this.StartHoldTime             = StartHoldTime;
     this.DialerPreview             = DialerPreview;
     this.Voicemail                 = Voicemail;
     this.CallbackNumbers           = CallbackNumbers;
     this.CallbackUserName          = CallbackUserName;
     this.ScriptId                  = ScriptId;
     this.PeerId                    = PeerId;
     this.SkipEnabled               = SkipEnabled;
     this.Provider                  = Provider;
     this.TimeoutSeconds            = TimeoutSeconds;
     this.ConnectedTime             = ConnectedTime;
     this.DisconnectedTime          = DisconnectedTime;
     this.CallbackScheduledTime     = CallbackScheduledTime;
     this.AutomatedCallbackConfigId = AutomatedCallbackConfigId;
     this.AdditionalProperties      = AdditionalProperties;
 }