/// <summary>
 /// Initializes a new instance of the <see cref="WorkPlanShift" /> class.
 /// </summary>
 /// <param name="Name">Name of the shift (required).</param>
 /// <param name="Days">Days of the week applicable for this shift.</param>
 /// <param name="FlexibleStartTime">Whether the start time of the shift is flexible.</param>
 /// <param name="ExactStartTimeMinutesFromMidnight">Exact start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == false.</param>
 /// <param name="EarliestStartTimeMinutesFromMidnight">Earliest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="LatestStartTimeMinutesFromMidnight">Latest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="ConstrainStopTime">Whether the latest stop time constraint for the shift is enabled.  Deprecated, use constrainLatestStopTime instead.</param>
 /// <param name="ConstrainLatestStopTime">Whether the latest stop time constraint for the shift is enabled.</param>
 /// <param name="LatestStopTimeMinutesFromMidnight">Latest stop time of the shift defined as offset minutes from midnight. Used if constrainStopTime == true.</param>
 /// <param name="ConstrainEarliestStopTime">Whether the earliest stop time constraint for the shift is enabled.</param>
 /// <param name="EarliestStopTimeMinutesFromMidnight">This is the earliest time a shift can end.</param>
 /// <param name="StartIncrementMinutes">Increment in offset minutes that would contribute to different possible start times for the shift. Used if flexibleStartTime == true.</param>
 /// <param name="FlexiblePaidTime">Whether the paid time setting for the shift is flexible.</param>
 /// <param name="ExactPaidTimeMinutes">Exact paid time in minutes configured for the shift. Used if flexiblePaidTime == false.</param>
 /// <param name="MinimumPaidTimeMinutes">Minimum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="MaximumPaidTimeMinutes">Maximum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="ConstrainContiguousWorkTime">Whether the contiguous time constraint for the shift is enabled.</param>
 /// <param name="MinimumContiguousWorkTimeMinutes">Minimum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="MaximumContiguousWorkTimeMinutes">Maximum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="ConstrainDayOff">Whether day off rule is enabled.</param>
 /// <param name="DayOffRule">The day off rule for agents to have next day off or previous day off. used if constrainDayOff = true.</param>
 /// <param name="Activities">Activities configured for this shift.</param>
 /// <param name="Id">ID of the shift. This is required only for the case of updating an existing shift.</param>
 /// <param name="Delete">If marked true for updating an existing shift, the shift will be permanently deleted.</param>
 /// <param name="ValidationId">ID of shift in the context of work plan validation.</param>
 public WorkPlanShift(string Name = null, SetWrapperDayOfWeek Days = null, bool?FlexibleStartTime = null, int?ExactStartTimeMinutesFromMidnight = null, int?EarliestStartTimeMinutesFromMidnight = null, int?LatestStartTimeMinutesFromMidnight = null, bool?ConstrainStopTime = null, bool?ConstrainLatestStopTime = null, int?LatestStopTimeMinutesFromMidnight = null, bool?ConstrainEarliestStopTime = null, int?EarliestStopTimeMinutesFromMidnight = null, int?StartIncrementMinutes = null, bool?FlexiblePaidTime = null, int?ExactPaidTimeMinutes = null, int?MinimumPaidTimeMinutes = null, int?MaximumPaidTimeMinutes = null, bool?ConstrainContiguousWorkTime = null, int?MinimumContiguousWorkTimeMinutes = null, int?MaximumContiguousWorkTimeMinutes = null, bool?ConstrainDayOff = null, DayOffRuleEnum?DayOffRule = null, List <WorkPlanActivity> Activities = null, string Id = null, bool?Delete = null, string ValidationId = null)
 {
     this.Name = Name;
     this.Days = Days;
     this.FlexibleStartTime = FlexibleStartTime;
     this.ExactStartTimeMinutesFromMidnight    = ExactStartTimeMinutesFromMidnight;
     this.EarliestStartTimeMinutesFromMidnight = EarliestStartTimeMinutesFromMidnight;
     this.LatestStartTimeMinutesFromMidnight   = LatestStartTimeMinutesFromMidnight;
     this.ConstrainStopTime                   = ConstrainStopTime;
     this.ConstrainLatestStopTime             = ConstrainLatestStopTime;
     this.LatestStopTimeMinutesFromMidnight   = LatestStopTimeMinutesFromMidnight;
     this.ConstrainEarliestStopTime           = ConstrainEarliestStopTime;
     this.EarliestStopTimeMinutesFromMidnight = EarliestStopTimeMinutesFromMidnight;
     this.StartIncrementMinutes               = StartIncrementMinutes;
     this.FlexiblePaidTime                 = FlexiblePaidTime;
     this.ExactPaidTimeMinutes             = ExactPaidTimeMinutes;
     this.MinimumPaidTimeMinutes           = MinimumPaidTimeMinutes;
     this.MaximumPaidTimeMinutes           = MaximumPaidTimeMinutes;
     this.ConstrainContiguousWorkTime      = ConstrainContiguousWorkTime;
     this.MinimumContiguousWorkTimeMinutes = MinimumContiguousWorkTimeMinutes;
     this.MaximumContiguousWorkTimeMinutes = MaximumContiguousWorkTimeMinutes;
     this.ConstrainDayOff = ConstrainDayOff;
     this.DayOffRule      = DayOffRule;
     this.Activities      = Activities;
     this.Id           = Id;
     this.Delete       = Delete;
     this.ValidationId = ValidationId;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateWorkPlanShift" /> class.
 /// </summary>
 /// <param name="Name">Name of the shift (required).</param>
 /// <param name="Days">Days of the week applicable for this shift.</param>
 /// <param name="FlexibleStartTime">Whether the start time of the shift is flexible.</param>
 /// <param name="ExactStartTimeMinutesFromMidnight">Exact start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == false.</param>
 /// <param name="EarliestStartTimeMinutesFromMidnight">Earliest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="LatestStartTimeMinutesFromMidnight">Latest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="ConstrainStopTime">Whether the latest stop time constraint for the shift is enabled.</param>
 /// <param name="ConstrainLatestStopTime">Whether the latest stop time constraint for the shift is enabled.</param>
 /// <param name="LatestStopTimeMinutesFromMidnight">Latest stop time of the shift defined as offset minutes from midnight. Used if constrainStopTime == true.</param>
 /// <param name="ConstrainEarliestStopTime">Whether the earliest stop time constraint for the shift is enabled.</param>
 /// <param name="EarliestStopTimeMinutesFromMidnight">This is the earliest time a shift can end.</param>
 /// <param name="StartIncrementMinutes">Increment in offset minutes that would contribute to different possible start times for the shift. Used if flexibleStartTime == true.</param>
 /// <param name="FlexiblePaidTime">Whether the paid time setting for the shift is flexible.</param>
 /// <param name="ExactPaidTimeMinutes">Exact paid time in minutes configured for the shift. Used if flexiblePaidTime == false.</param>
 /// <param name="MinimumPaidTimeMinutes">Minimum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="MaximumPaidTimeMinutes">Maximum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="ConstrainContiguousWorkTime">Whether the contiguous time constraint for the shift is enabled.</param>
 /// <param name="MinimumContiguousWorkTimeMinutes">Minimum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="MaximumContiguousWorkTimeMinutes">Maximum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="SynchronizeAgentsSchedules">Whether synchronization for agent is enabled.</param>
 /// <param name="SynchronizationType">This constraint ensures that an agent starts each workday within a user-defined time threshold. Used if synchronizeAgentsSchedules == true.</param>
 /// <param name="ConstrainDayOff">Whether day off rule is enabled.</param>
 /// <param name="DayOffRule">The day off rule for agents to have next day off or previous day off. used if constrainDayOff = true.</param>
 /// <param name="Activities">Activities configured for this shift.</param>
 public CreateWorkPlanShift(string Name = null, SetWrapperDayOfWeek Days = null, bool?FlexibleStartTime = null, int?ExactStartTimeMinutesFromMidnight = null, int?EarliestStartTimeMinutesFromMidnight = null, int?LatestStartTimeMinutesFromMidnight = null, bool?ConstrainStopTime = null, bool?ConstrainLatestStopTime = null, int?LatestStopTimeMinutesFromMidnight = null, bool?ConstrainEarliestStopTime = null, int?EarliestStopTimeMinutesFromMidnight = null, int?StartIncrementMinutes = null, bool?FlexiblePaidTime = null, int?ExactPaidTimeMinutes = null, int?MinimumPaidTimeMinutes = null, int?MaximumPaidTimeMinutes = null, bool?ConstrainContiguousWorkTime = null, int?MinimumContiguousWorkTimeMinutes = null, int?MaximumContiguousWorkTimeMinutes = null, bool?SynchronizeAgentsSchedules = null, SynchronizationTypeEnum?SynchronizationType = null, bool?ConstrainDayOff = null, DayOffRuleEnum?DayOffRule = null, List <CreateWorkPlanActivity> Activities = null)
 {
     this.Name = Name;
     this.Days = Days;
     this.FlexibleStartTime = FlexibleStartTime;
     this.ExactStartTimeMinutesFromMidnight    = ExactStartTimeMinutesFromMidnight;
     this.EarliestStartTimeMinutesFromMidnight = EarliestStartTimeMinutesFromMidnight;
     this.LatestStartTimeMinutesFromMidnight   = LatestStartTimeMinutesFromMidnight;
     this.ConstrainStopTime                   = ConstrainStopTime;
     this.ConstrainLatestStopTime             = ConstrainLatestStopTime;
     this.LatestStopTimeMinutesFromMidnight   = LatestStopTimeMinutesFromMidnight;
     this.ConstrainEarliestStopTime           = ConstrainEarliestStopTime;
     this.EarliestStopTimeMinutesFromMidnight = EarliestStopTimeMinutesFromMidnight;
     this.StartIncrementMinutes               = StartIncrementMinutes;
     this.FlexiblePaidTime                 = FlexiblePaidTime;
     this.ExactPaidTimeMinutes             = ExactPaidTimeMinutes;
     this.MinimumPaidTimeMinutes           = MinimumPaidTimeMinutes;
     this.MaximumPaidTimeMinutes           = MaximumPaidTimeMinutes;
     this.ConstrainContiguousWorkTime      = ConstrainContiguousWorkTime;
     this.MinimumContiguousWorkTimeMinutes = MinimumContiguousWorkTimeMinutes;
     this.MaximumContiguousWorkTimeMinutes = MaximumContiguousWorkTimeMinutes;
     this.SynchronizeAgentsSchedules       = SynchronizeAgentsSchedules;
     this.SynchronizationType              = SynchronizationType;
     this.ConstrainDayOff = ConstrainDayOff;
     this.DayOffRule      = DayOffRule;
     this.Activities      = Activities;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateWorkPlanShift" /> class.
 /// </summary>
 /// <param name="Name">Name of the shift (required).</param>
 /// <param name="Days">Days of the week applicable for this shift.</param>
 /// <param name="FlexibleStartTime">Whether the start time of the shift is flexible.</param>
 /// <param name="ExactStartTimeMinutesFromMidnight">Exact start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == false.</param>
 /// <param name="EarliestStartTimeMinutesFromMidnight">Earliest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="LatestStartTimeMinutesFromMidnight">Latest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true.</param>
 /// <param name="ConstrainStopTime">Whether the latest stop time constraint for the shift is enabled.</param>
 /// <param name="LatestStopTimeMinutesFromMidnight">Latest stop time of the shift defined as offset minutes from midnight. Used if constrainStopTime == true.</param>
 /// <param name="StartIncrementMinutes">Increment in offset minutes that would contribute to different possible start times for the shift. Used if flexibleStartTime == true.</param>
 /// <param name="FlexiblePaidTime">Whether the paid time setting for the shift is flexible.</param>
 /// <param name="ExactPaidTimeMinutes">Exact paid time in minutes configured for the shift. Used if flexiblePaidTime == false.</param>
 /// <param name="MinimumPaidTimeMinutes">Minimum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="MaximumPaidTimeMinutes">Maximum paid time in minutes configured for the shift. Used if flexiblePaidTime == true.</param>
 /// <param name="ConstrainContiguousWorkTime">Whether the contiguous time constraint for the shift is enabled.</param>
 /// <param name="MinimumContiguousWorkTimeMinutes">Minimum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="MaximumContiguousWorkTimeMinutes">Maximum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true.</param>
 /// <param name="Activities">Activities configured for this shift.</param>
 public CreateWorkPlanShift(string Name = null, SetWrapperDayOfWeek Days = null, bool?FlexibleStartTime = null, int?ExactStartTimeMinutesFromMidnight = null, int?EarliestStartTimeMinutesFromMidnight = null, int?LatestStartTimeMinutesFromMidnight = null, bool?ConstrainStopTime = null, int?LatestStopTimeMinutesFromMidnight = null, int?StartIncrementMinutes = null, bool?FlexiblePaidTime = null, int?ExactPaidTimeMinutes = null, int?MinimumPaidTimeMinutes = null, int?MaximumPaidTimeMinutes = null, bool?ConstrainContiguousWorkTime = null, int?MinimumContiguousWorkTimeMinutes = null, int?MaximumContiguousWorkTimeMinutes = null, List <CreateWorkPlanActivity> Activities = null)
 {
     this.Name = Name;
     this.Days = Days;
     this.FlexibleStartTime = FlexibleStartTime;
     this.ExactStartTimeMinutesFromMidnight    = ExactStartTimeMinutesFromMidnight;
     this.EarliestStartTimeMinutesFromMidnight = EarliestStartTimeMinutesFromMidnight;
     this.LatestStartTimeMinutesFromMidnight   = LatestStartTimeMinutesFromMidnight;
     this.ConstrainStopTime = ConstrainStopTime;
     this.LatestStopTimeMinutesFromMidnight = LatestStopTimeMinutesFromMidnight;
     this.StartIncrementMinutes             = StartIncrementMinutes;
     this.FlexiblePaidTime                 = FlexiblePaidTime;
     this.ExactPaidTimeMinutes             = ExactPaidTimeMinutes;
     this.MinimumPaidTimeMinutes           = MinimumPaidTimeMinutes;
     this.MaximumPaidTimeMinutes           = MaximumPaidTimeMinutes;
     this.ConstrainContiguousWorkTime      = ConstrainContiguousWorkTime;
     this.MinimumContiguousWorkTimeMinutes = MinimumContiguousWorkTimeMinutes;
     this.MaximumContiguousWorkTimeMinutes = MaximumContiguousWorkTimeMinutes;
     this.Activities = Activities;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateWorkPlan" /> class.
 /// </summary>
 /// <param name="Name">Name of this work plan (required).</param>
 /// <param name="Enabled">Whether the work plan is enabled for scheduling.</param>
 /// <param name="ConstrainWeeklyPaidTime">Whether the weekly paid time constraint is enabled for this work plan.</param>
 /// <param name="FlexibleWeeklyPaidTime">Whether the weekly paid time constraint is flexible for this work plan.</param>
 /// <param name="WeeklyExactPaidMinutes">Exact weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == false.</param>
 /// <param name="WeeklyMinimumPaidMinutes">Minimum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="WeeklyMaximumPaidMinutes">Maximum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="ConstrainPaidTimeGranularity">Whether paid time granularity should be constrained for this workplan.</param>
 /// <param name="PaidTimeGranularityMinutes">Granularity in minutes allowed for shift paid time in this work plan. Used if constrainPaidTimeGranularity == true.</param>
 /// <param name="ConstrainMinimumTimeBetweenShifts">Whether the minimum time between shifts constraint is enabled for this work plan.</param>
 /// <param name="MinimumTimeBetweenShiftsMinutes">Minimum time between shifts in minutes defined in this work plan. Used if constrainMinimumTimeBetweenShifts == true.</param>
 /// <param name="MaximumDays">Maximum number days in a week allowed to be scheduled for this work plan.</param>
 /// <param name="MinimumConsecutiveNonWorkingMinutesPerWeek">Minimum amount of consecutive non working minutes per week that agents who are assigned this work plan are allowed to have off.</param>
 /// <param name="ConstrainMaximumConsecutiveWorkingWeekends">Whether to constrain the maximum consecutive working weekends.</param>
 /// <param name="MaximumConsecutiveWorkingWeekends">The maximum number of consecutive weekends that agents who are assigned to this work plan are allowed to work.</param>
 /// <param name="MinimumWorkingDaysPerWeek">The minimum number of days that agents assigned to a work plan must work per week.</param>
 /// <param name="ConstrainMaximumConsecutiveWorkingDays">Whether to constrain the maximum consecutive working days.</param>
 /// <param name="MaximumConsecutiveWorkingDays">The maximum number of consecutive days that agents assigned to this work plan are allowed to work. Used if constrainMaximumConsecutiveWorkingDays == true.</param>
 /// <param name="MinimumShiftStartDistanceMinutes">The time period in minutes for the duration between the start times of two consecutive working days.</param>
 /// <param name="MinimumDaysOffPerPlanningPeriod">Minimum days off in the planning period.</param>
 /// <param name="MaximumDaysOffPerPlanningPeriod">Maximum days off in the planning period.</param>
 /// <param name="MinimumPaidMinutesPerPlanningPeriod">Minimum paid minutes in the planning period.</param>
 /// <param name="MaximumPaidMinutesPerPlanningPeriod">Maximum paid minutes in the planning period.</param>
 /// <param name="OptionalDays">Optional days to schedule for this work plan.</param>
 /// <param name="ShiftStartVarianceType">This constraint ensures that an agent starts each workday within a user-defined time threshold.</param>
 /// <param name="ShiftStartVariances">Variance in minutes among start times of shifts in this work plan.</param>
 /// <param name="Shifts">Shifts in this work plan.</param>
 /// <param name="Agents">Agents in this work plan.</param>
 public CreateWorkPlan(string Name = null, bool?Enabled = null, bool?ConstrainWeeklyPaidTime = null, bool?FlexibleWeeklyPaidTime = null, int?WeeklyExactPaidMinutes = null, int?WeeklyMinimumPaidMinutes = null, int?WeeklyMaximumPaidMinutes = null, bool?ConstrainPaidTimeGranularity = null, int?PaidTimeGranularityMinutes = null, bool?ConstrainMinimumTimeBetweenShifts = null, int?MinimumTimeBetweenShiftsMinutes = null, int?MaximumDays = null, int?MinimumConsecutiveNonWorkingMinutesPerWeek = null, bool?ConstrainMaximumConsecutiveWorkingWeekends = null, int?MaximumConsecutiveWorkingWeekends = null, int?MinimumWorkingDaysPerWeek = null, bool?ConstrainMaximumConsecutiveWorkingDays = null, int?MaximumConsecutiveWorkingDays = null, int?MinimumShiftStartDistanceMinutes = null, int?MinimumDaysOffPerPlanningPeriod = null, int?MaximumDaysOffPerPlanningPeriod = null, int?MinimumPaidMinutesPerPlanningPeriod = null, int?MaximumPaidMinutesPerPlanningPeriod = null, SetWrapperDayOfWeek OptionalDays = null, ShiftStartVarianceTypeEnum?ShiftStartVarianceType = null, ListWrapperShiftStartVariance ShiftStartVariances = null, List <CreateWorkPlanShift> Shifts = null, List <UserReference> Agents = null)
 {
     this.Name    = Name;
     this.Enabled = Enabled;
     this.ConstrainWeeklyPaidTime           = ConstrainWeeklyPaidTime;
     this.FlexibleWeeklyPaidTime            = FlexibleWeeklyPaidTime;
     this.WeeklyExactPaidMinutes            = WeeklyExactPaidMinutes;
     this.WeeklyMinimumPaidMinutes          = WeeklyMinimumPaidMinutes;
     this.WeeklyMaximumPaidMinutes          = WeeklyMaximumPaidMinutes;
     this.ConstrainPaidTimeGranularity      = ConstrainPaidTimeGranularity;
     this.PaidTimeGranularityMinutes        = PaidTimeGranularityMinutes;
     this.ConstrainMinimumTimeBetweenShifts = ConstrainMinimumTimeBetweenShifts;
     this.MinimumTimeBetweenShiftsMinutes   = MinimumTimeBetweenShiftsMinutes;
     this.MaximumDays = MaximumDays;
     this.MinimumConsecutiveNonWorkingMinutesPerWeek = MinimumConsecutiveNonWorkingMinutesPerWeek;
     this.ConstrainMaximumConsecutiveWorkingWeekends = ConstrainMaximumConsecutiveWorkingWeekends;
     this.MaximumConsecutiveWorkingWeekends          = MaximumConsecutiveWorkingWeekends;
     this.MinimumWorkingDaysPerWeek = MinimumWorkingDaysPerWeek;
     this.ConstrainMaximumConsecutiveWorkingDays = ConstrainMaximumConsecutiveWorkingDays;
     this.MaximumConsecutiveWorkingDays          = MaximumConsecutiveWorkingDays;
     this.MinimumShiftStartDistanceMinutes       = MinimumShiftStartDistanceMinutes;
     this.MinimumDaysOffPerPlanningPeriod        = MinimumDaysOffPerPlanningPeriod;
     this.MaximumDaysOffPerPlanningPeriod        = MaximumDaysOffPerPlanningPeriod;
     this.MinimumPaidMinutesPerPlanningPeriod    = MinimumPaidMinutesPerPlanningPeriod;
     this.MaximumPaidMinutesPerPlanningPeriod    = MaximumPaidMinutesPerPlanningPeriod;
     this.OptionalDays           = OptionalDays;
     this.ShiftStartVarianceType = ShiftStartVarianceType;
     this.ShiftStartVariances    = ShiftStartVariances;
     this.Shifts = Shifts;
     this.Agents = Agents;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WorkPlan" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="Enabled">Whether the work plan is enabled for scheduling.</param>
 /// <param name="ConstrainWeeklyPaidTime">Whether the weekly paid time constraint is enabled for this work plan.</param>
 /// <param name="FlexibleWeeklyPaidTime">Whether the weekly paid time constraint is flexible for this work plan.</param>
 /// <param name="WeeklyExactPaidMinutes">Exact weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == false.</param>
 /// <param name="WeeklyMinimumPaidMinutes">Minimum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="WeeklyMaximumPaidMinutes">Maximum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="ConstrainPaidTimeGranularity">Whether paid time granularity is constrained for this workplan.</param>
 /// <param name="PaidTimeGranularityMinutes">Granularity in minutes allowed for shift paid time in this work plan. Used if constrainPaidTimeGranularity == true.</param>
 /// <param name="ConstrainMinimumTimeBetweenShifts">Whether the minimum time between shifts constraint is enabled for this work plan.</param>
 /// <param name="MinimumTimeBetweenShiftsMinutes">Minimum time between shifts in minutes defined in this work plan. Used if constrainMinimumTimeBetweenShifts == true.</param>
 /// <param name="MaximumDays">Maximum number days in a week allowed to be scheduled for this work plan.</param>
 /// <param name="StartDayOfWeekend">The day of the week for which the weekend starts, such as Saturday.</param>
 /// <param name="MinimumConsecutiveTimeOffPerWeekMinutes">Minimum amount of consecutive time off per week that agents who are assigned this work plan are allowed to have off.</param>
 /// <param name="ConstrainMaximumConsecutiveWorkingWeekends">Whether to constrain the maximum consecutive working weekends.</param>
 /// <param name="MaximumConsecutiveWorkingWeekends">The maximum number of consecutive weekends that agents who are assigned to this work plan are allowed to work.</param>
 /// <param name="MinimumWorkingDaysPerWeek">The minimum number of days that agents assigned to a work plan must work per week.</param>
 /// <param name="MaximumConsecutiveWorkingDays">The maximum number of consecutive days that agents assigned to this work plan are allowed to work.</param>
 /// <param name="MinimumShiftStartDistanceMinutes">The time period in minutes for the duration between the start times of two consecutive working days.</param>
 /// <param name="MinimumDaysOffPerPlanningPeriod">Minimum days off in the planning period.</param>
 /// <param name="MaximumDaysOffPerPlanningPeriod">Maximum days off in the planning period.</param>
 /// <param name="MinimumPaidHoursPerPlanningPeriod">Minimum paid hours in the planning period.</param>
 /// <param name="MaximumPaidHoursPerPlanningPeriod">Maximum paid hours in the planning period.</param>
 /// <param name="OptionalDays">Optional days to schedule for this work plan.</param>
 /// <param name="ShiftStartVariances">Variance in minutes among start times of shifts in this work plan.</param>
 /// <param name="Shifts">Shifts in this work plan.</param>
 /// <param name="Agents">Agents in this work plan.</param>
 /// <param name="Metadata">Version metadata for this work plan (required).</param>
 public WorkPlan(string Name = null, bool?Enabled = null, bool?ConstrainWeeklyPaidTime = null, bool?FlexibleWeeklyPaidTime = null, int?WeeklyExactPaidMinutes = null, int?WeeklyMinimumPaidMinutes = null, int?WeeklyMaximumPaidMinutes = null, bool?ConstrainPaidTimeGranularity = null, int?PaidTimeGranularityMinutes = null, bool?ConstrainMinimumTimeBetweenShifts = null, int?MinimumTimeBetweenShiftsMinutes = null, int?MaximumDays = null, StartDayOfWeekendEnum?StartDayOfWeekend = null, int?MinimumConsecutiveTimeOffPerWeekMinutes = null, bool?ConstrainMaximumConsecutiveWorkingWeekends = null, int?MaximumConsecutiveWorkingWeekends = null, int?MinimumWorkingDaysPerWeek = null, int?MaximumConsecutiveWorkingDays = null, int?MinimumShiftStartDistanceMinutes = null, int?MinimumDaysOffPerPlanningPeriod = null, int?MaximumDaysOffPerPlanningPeriod = null, int?MinimumPaidHoursPerPlanningPeriod = null, int?MaximumPaidHoursPerPlanningPeriod = null, SetWrapperDayOfWeek OptionalDays = null, ListWrapperShiftStartVariance ShiftStartVariances = null, List <WorkPlanShift> Shifts = null, List <DeletableUserReference> Agents = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name    = Name;
     this.Enabled = Enabled;
     this.ConstrainWeeklyPaidTime           = ConstrainWeeklyPaidTime;
     this.FlexibleWeeklyPaidTime            = FlexibleWeeklyPaidTime;
     this.WeeklyExactPaidMinutes            = WeeklyExactPaidMinutes;
     this.WeeklyMinimumPaidMinutes          = WeeklyMinimumPaidMinutes;
     this.WeeklyMaximumPaidMinutes          = WeeklyMaximumPaidMinutes;
     this.ConstrainPaidTimeGranularity      = ConstrainPaidTimeGranularity;
     this.PaidTimeGranularityMinutes        = PaidTimeGranularityMinutes;
     this.ConstrainMinimumTimeBetweenShifts = ConstrainMinimumTimeBetweenShifts;
     this.MinimumTimeBetweenShiftsMinutes   = MinimumTimeBetweenShiftsMinutes;
     this.MaximumDays       = MaximumDays;
     this.StartDayOfWeekend = StartDayOfWeekend;
     this.MinimumConsecutiveTimeOffPerWeekMinutes    = MinimumConsecutiveTimeOffPerWeekMinutes;
     this.ConstrainMaximumConsecutiveWorkingWeekends = ConstrainMaximumConsecutiveWorkingWeekends;
     this.MaximumConsecutiveWorkingWeekends          = MaximumConsecutiveWorkingWeekends;
     this.MinimumWorkingDaysPerWeek         = MinimumWorkingDaysPerWeek;
     this.MaximumConsecutiveWorkingDays     = MaximumConsecutiveWorkingDays;
     this.MinimumShiftStartDistanceMinutes  = MinimumShiftStartDistanceMinutes;
     this.MinimumDaysOffPerPlanningPeriod   = MinimumDaysOffPerPlanningPeriod;
     this.MaximumDaysOffPerPlanningPeriod   = MaximumDaysOffPerPlanningPeriod;
     this.MinimumPaidHoursPerPlanningPeriod = MinimumPaidHoursPerPlanningPeriod;
     this.MaximumPaidHoursPerPlanningPeriod = MaximumPaidHoursPerPlanningPeriod;
     this.OptionalDays        = OptionalDays;
     this.ShiftStartVariances = ShiftStartVariances;
     this.Shifts   = Shifts;
     this.Agents   = Agents;
     this.Metadata = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="WorkPlan" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="Enabled">Whether the work plan is enabled for scheduling.</param>
 /// <param name="ConstrainWeeklyPaidTime">Whether the weekly paid time constraint is enabled for this work plan.</param>
 /// <param name="FlexibleWeeklyPaidTime">Whether the weekly paid time constraint is flexible for this work plan.</param>
 /// <param name="WeeklyExactPaidMinutes">Exact weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == false.</param>
 /// <param name="WeeklyMinimumPaidMinutes">Minimum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="WeeklyMaximumPaidMinutes">Maximum weekly paid time in minutes for this work plan. Used if flexibleWeeklyPaidTime == true.</param>
 /// <param name="ConstrainPaidTimeGranularity">Whether paid time granularity is constrained for this workplan.</param>
 /// <param name="PaidTimeGranularityMinutes">Granularity in minutes allowed for shift paid time in this work plan. Used if constrainPaidTimeGranularity == true.</param>
 /// <param name="ConstrainMinimumTimeBetweenShifts">Whether the minimum time between shifts constraint is enabled for this work plan.</param>
 /// <param name="MinimumTimeBetweenShiftsMinutes">Minimum time between shifts in minutes defined in this work plan. Used if constrainMinimumTimeBetweenShifts == true.</param>
 /// <param name="MaximumDays">Maximum number days in a week allowed to be scheduled for this work plan.</param>
 /// <param name="OptionalDays">Optional days to schedule for this work plan.</param>
 /// <param name="ShiftStartVariances">Variance in minutes among start times of shifts in this work plan.</param>
 /// <param name="Shifts">Shifts in this work plan.</param>
 /// <param name="Agents">Agents in this work plan.</param>
 /// <param name="Metadata">Version metadata for this work plan (required).</param>
 public WorkPlan(string Name = null, bool?Enabled = null, bool?ConstrainWeeklyPaidTime = null, bool?FlexibleWeeklyPaidTime = null, int?WeeklyExactPaidMinutes = null, int?WeeklyMinimumPaidMinutes = null, int?WeeklyMaximumPaidMinutes = null, bool?ConstrainPaidTimeGranularity = null, int?PaidTimeGranularityMinutes = null, bool?ConstrainMinimumTimeBetweenShifts = null, int?MinimumTimeBetweenShiftsMinutes = null, int?MaximumDays = null, SetWrapperDayOfWeek OptionalDays = null, ListWrapperShiftStartVariance ShiftStartVariances = null, List <WorkPlanShift> Shifts = null, List <DeletableUserReference> Agents = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name    = Name;
     this.Enabled = Enabled;
     this.ConstrainWeeklyPaidTime           = ConstrainWeeklyPaidTime;
     this.FlexibleWeeklyPaidTime            = FlexibleWeeklyPaidTime;
     this.WeeklyExactPaidMinutes            = WeeklyExactPaidMinutes;
     this.WeeklyMinimumPaidMinutes          = WeeklyMinimumPaidMinutes;
     this.WeeklyMaximumPaidMinutes          = WeeklyMaximumPaidMinutes;
     this.ConstrainPaidTimeGranularity      = ConstrainPaidTimeGranularity;
     this.PaidTimeGranularityMinutes        = PaidTimeGranularityMinutes;
     this.ConstrainMinimumTimeBetweenShifts = ConstrainMinimumTimeBetweenShifts;
     this.MinimumTimeBetweenShiftsMinutes   = MinimumTimeBetweenShiftsMinutes;
     this.MaximumDays         = MaximumDays;
     this.OptionalDays        = OptionalDays;
     this.ShiftStartVariances = ShiftStartVariances;
     this.Shifts   = Shifts;
     this.Agents   = Agents;
     this.Metadata = Metadata;
 }