/// <summary>
 /// Initializes a new instance of the <see cref="UserScheduleShift" /> class.
 /// </summary>
 /// <param name="WeekSchedule">The schedule to which this shift belongs.</param>
 /// <param name="Id">ID of the schedule shift. This is only for the case of updating and deleting an existing shift.</param>
 /// <param name="Activities">List of activities in this shift.</param>
 /// <param name="Delete">If marked true for updating this schedule shift, it will be deleted.</param>
 /// <param name="ManuallyEdited">Whether the shift was set as manually edited.</param>
 public UserScheduleShift(WeekScheduleReference WeekSchedule = null, string Id = null, List <UserScheduleActivity> Activities = null, bool?Delete = null, bool?ManuallyEdited = null)
 {
     this.WeekSchedule   = WeekSchedule;
     this.Id             = Id;
     this.Activities     = Activities;
     this.Delete         = Delete;
     this.ManuallyEdited = ManuallyEdited;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ShiftTradeResponse" /> class.
 /// </summary>
 /// <param name="Id">The ID of this shift trade.</param>
 /// <param name="WeekDate">The start week date of the associated schedule in yyyy-MM-dd format. Dates are represented as an ISO-8601 string. For example: yyyy-MM-dd.</param>
 /// <param name="Schedule">The ID of the associated schedule.</param>
 /// <param name="State">The state of this shift trade.</param>
 /// <param name="InitiatingUser">The user who initiated this trade.</param>
 /// <param name="InitiatingShiftId">The ID of the shift offered for trade by the initiating user.</param>
 /// <param name="InitiatingShiftStart">The start date/time of the shift being offered for trade. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="InitiatingShiftEnd">The end date/time of the shift being offered for trade. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="ReceivingUser">The user matching the trade, or if the state is not Matched, the user to whom the trade request was sent.</param>
 /// <param name="ReceivingShiftId">The ID of the shift being exchanged for the initiating shift, null if the receiving user is picking up a shift.</param>
 /// <param name="ReceivingShiftStart">The start date/time of the receiving shift. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="ReceivingShiftEnd">The end date/time of the receiving shift. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="Expiration">When this shift trade offer will expire if not matched or approved. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="OneSided">Whether this is a one-sided shift trade (e.g. the initiating user is not asking for a shift in return).</param>
 /// <param name="AcceptableIntervals">AcceptableIntervals.</param>
 /// <param name="ReviewedBy">The user who reviewed this shift trade.</param>
 /// <param name="ReviewedDate">The timestamp when this shift trade was reviewed. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ.</param>
 /// <param name="Metadata">Version data for this trade.</param>
 public ShiftTradeResponse(string Id = null, DateTime?WeekDate = null, WeekScheduleReference Schedule = null, StateEnum?State = null, UserReference InitiatingUser = null, string InitiatingShiftId = null, DateTime?InitiatingShiftStart = null, DateTime?InitiatingShiftEnd = null, UserReference ReceivingUser = null, string ReceivingShiftId = null, DateTime?ReceivingShiftStart = null, DateTime?ReceivingShiftEnd = null, DateTime?Expiration = null, bool?OneSided = null, List <string> AcceptableIntervals = null, UserReference ReviewedBy = null, DateTime?ReviewedDate = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Id                   = Id;
     this.WeekDate             = WeekDate;
     this.Schedule             = Schedule;
     this.State                = State;
     this.InitiatingUser       = InitiatingUser;
     this.InitiatingShiftId    = InitiatingShiftId;
     this.InitiatingShiftStart = InitiatingShiftStart;
     this.InitiatingShiftEnd   = InitiatingShiftEnd;
     this.ReceivingUser        = ReceivingUser;
     this.ReceivingShiftId     = ReceivingShiftId;
     this.ReceivingShiftStart  = ReceivingShiftStart;
     this.ReceivingShiftEnd    = ReceivingShiftEnd;
     this.Expiration           = Expiration;
     this.OneSided             = OneSided;
     this.AcceptableIntervals  = AcceptableIntervals;
     this.ReviewedBy           = ReviewedBy;
     this.ReviewedDate         = ReviewedDate;
     this.Metadata             = Metadata;
 }