/// <summary>
 /// Initializes a new instance of the <see cref="ShortTermForecast" /> class.
 /// </summary>
 /// <param name="WeekDate">The weekDate of the short term forecast in yyyy-MM-dd format (required).</param>
 /// <param name="Description">The description of the short term forecast.</param>
 /// <param name="Metadata">Metadata for this forecast (required).</param>
 /// <param name="SourceData">The source data references and metadata for this forecast.</param>
 /// <param name="Modifications">The modifications that have been applied to this forecast.</param>
 /// <param name="GenerationResults">Forecast generation results, if applicable.</param>
 public ShortTermForecast(string WeekDate = null, string Description = null, WfmVersionedEntityMetadata Metadata = null, ListWrapperForecastSourceDayPointer SourceData = null, ListWrapperWfmForecastModification Modifications = null, ForecastGenerationResult GenerationResults = null)
 {
     this.WeekDate          = WeekDate;
     this.Description       = Description;
     this.Metadata          = Metadata;
     this.SourceData        = SourceData;
     this.Modifications     = Modifications;
     this.GenerationResults = GenerationResults;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ManagementUnitSettings" /> class.
        /// </summary>


        /// <param name="Adherence">Adherence settings for this management unit.</param>



        /// <param name="ShortTermForecasting">Short term forecasting settings for this management unit.</param>



        /// <param name="TimeOff">Time off request settings for this management unit.</param>



        /// <param name="Scheduling">Scheduling settings for this management unit.</param>



        /// <param name="Metadata">Version info metadata for the associated management unit (required).</param>


        public ManagementUnitSettings(AdherenceSettings Adherence = null, ShortTermForecastingSettings ShortTermForecasting = null, TimeOffRequestSettings TimeOff = null, SchedulingSettings Scheduling = null, WfmVersionedEntityMetadata Metadata = null)
        {
            // to ensure "Metadata" is required (not null)
            if (Metadata == null)
            {
                throw new InvalidDataException("Metadata is a required property for ManagementUnitSettings and cannot be null");
            }
            else
            {
                this.Metadata = Metadata;
            }



            this.Adherence = Adherence;



            this.ShortTermForecasting = ShortTermForecasting;



            this.TimeOff = TimeOff;



            this.Scheduling = Scheduling;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PatchShiftTradeRequest" /> class.
 /// </summary>
 /// <param name="ReceivingUserId">Update the ID of the receiving user to direct the request at a specific user, or set the wrapped id to null to open up a trade to be matched by any user..</param>
 /// <param name="Expiration">Update the expiration time for this shift trade..</param>
 /// <param name="AcceptableIntervals">Update the acceptable intervals the initiating user is willing to accept in trade. Setting the enclosed list to empty will make this a one sided trade request.</param>
 /// <param name="Metadata">Version metadata (required).</param>
 public PatchShiftTradeRequest(ValueWrapperString ReceivingUserId = null, ValueWrapperDate Expiration = null, ListWrapperInterval AcceptableIntervals = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.ReceivingUserId     = ReceivingUserId;
     this.Expiration          = Expiration;
     this.AcceptableIntervals = AcceptableIntervals;
     this.Metadata            = Metadata;
 }
 /// <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">A reference to 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[.mmm]Z.</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[.mmm]Z.</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[.mmm]Z.</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[.mmm]Z.</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[.mmm]Z.</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[.mmm]Z.</param>
 /// <param name="Metadata">Version data for this trade.</param>
 public ShiftTradeResponse(string Id = null, String WeekDate = null, BuScheduleReferenceForMuRoute 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;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateServiceGoalTemplate" /> class.
 /// </summary>
 /// <param name="Name">The name of the service goal template..</param>
 /// <param name="ServiceLevel">Service level targets for this service goal template.</param>
 /// <param name="AverageSpeedOfAnswer">Average speed of answer targets for this service goal template.</param>
 /// <param name="AbandonRate">Abandon rate targets for this service goal template.</param>
 /// <param name="Metadata">Version metadata for the service goal template (required).</param>
 public UpdateServiceGoalTemplate(string Name = null, BuServiceLevel ServiceLevel = null, BuAverageSpeedOfAnswer AverageSpeedOfAnswer = null, BuAbandonRate AbandonRate = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name                 = Name;
     this.ServiceLevel         = ServiceLevel;
     this.AverageSpeedOfAnswer = AverageSpeedOfAnswer;
     this.AbandonRate          = AbandonRate;
     this.Metadata             = Metadata;
 }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TimeOffRequestResponse" /> class.
 /// </summary>
 /// <param name="User">The user associated with this time off request.</param>
 /// <param name="IsFullDayRequest">Whether this is a full day request (false means partial day).</param>
 /// <param name="MarkedAsRead">Whether this request has been marked as read by the agent.</param>
 /// <param name="ActivityCodeId">The ID of the activity code associated with this time off request. Activity code must be of the TimeOff category.</param>
 /// <param name="Paid">Whether this is a paid time off request.</param>
 /// <param name="Status">The status of this time off request.</param>
 /// <param name="Substatus">The substatus of this time off request.</param>
 /// <param name="PartialDayStartDateTimes">A set of start date-times in ISO-8601 format for partial day requests. Will be not empty if isFullDayRequest == false.</param>
 /// <param name="FullDayManagementUnitDates">A set of dates in yyyy-MM-dd format.  Should be interpreted in the management unit's configured time zone. Will be not empty if isFullDayRequest == true.</param>
 /// <param name="DailyDurationMinutes">The daily duration of this time off request in minutes.</param>
 /// <param name="Notes">Notes about the time off request.</param>
 /// <param name="SubmittedBy">The user who submitted this time off request.</param>
 /// <param name="SubmittedDate">The timestamp when this request was submitted. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss[.mmm]Z.</param>
 /// <param name="ReviewedBy">The user who reviewed this time off request.</param>
 /// <param name="ReviewedDate">The timestamp when this request was reviewed. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss[.mmm]Z.</param>
 /// <param name="ModifiedBy">The user who last modified this TimeOffRequestResponse.</param>
 /// <param name="ModifiedDate">The timestamp when this request was last modified. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss[.mmm]Z.</param>
 /// <param name="Metadata">The version metadata of the time off request.</param>
 public TimeOffRequestResponse(UserReference User = null, bool?IsFullDayRequest = null, bool?MarkedAsRead = null, string ActivityCodeId = null, bool?Paid = null, StatusEnum?Status = null, SubstatusEnum?Substatus = null, List <DateTime?> PartialDayStartDateTimes = null, List <string> FullDayManagementUnitDates = null, int?DailyDurationMinutes = null, string Notes = null, UserReference SubmittedBy = null, DateTime?SubmittedDate = null, UserReference ReviewedBy = null, DateTime?ReviewedDate = null, UserReference ModifiedBy = null, DateTime?ModifiedDate = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.User                       = User;
     this.IsFullDayRequest           = IsFullDayRequest;
     this.MarkedAsRead               = MarkedAsRead;
     this.ActivityCodeId             = ActivityCodeId;
     this.Paid                       = Paid;
     this.Status                     = Status;
     this.Substatus                  = Substatus;
     this.PartialDayStartDateTimes   = PartialDayStartDateTimes;
     this.FullDayManagementUnitDates = FullDayManagementUnitDates;
     this.DailyDurationMinutes       = DailyDurationMinutes;
     this.Notes                      = Notes;
     this.SubmittedBy                = SubmittedBy;
     this.SubmittedDate              = SubmittedDate;
     this.ReviewedBy                 = ReviewedBy;
     this.ReviewedDate               = ReviewedDate;
     this.ModifiedBy                 = ModifiedBy;
     this.ModifiedDate               = ModifiedDate;
     this.Metadata                   = Metadata;
 }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BuAgentScheduleQueryResponse" /> class.
 /// </summary>
 /// <param name="User">The user to whom this agent schedule applies.</param>
 /// <param name="Shifts">The shift definitions for this agent schedule.</param>
 /// <param name="FullDayTimeOffMarkers">Full day time off markers which apply to this agent schedule.</param>
 /// <param name="WorkPlan">The work plan for this user.</param>
 /// <param name="WorkPlansPerWeek">The work plans per week for this user from the work plan rotation. Null values in the list denotes that user is not part of any work plan for that week.</param>
 /// <param name="Metadata">Versioned entity metadata for this agent schedule.</param>
 public BuAgentScheduleQueryResponse(UserReference User = null, List <BuAgentScheduleShift> Shifts = null, List <BuFullDayTimeOffMarker> FullDayTimeOffMarkers = null, WorkPlanReference WorkPlan = null, List <WorkPlanReference> WorkPlansPerWeek = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.User   = User;
     this.Shifts = Shifts;
     this.FullDayTimeOffMarkers = FullDayTimeOffMarkers;
     this.WorkPlan         = WorkPlan;
     this.WorkPlansPerWeek = WorkPlansPerWeek;
     this.Metadata         = Metadata;
 }
Example #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateWeekScheduleRequest" /> class.
 /// </summary>
 /// <param name="Description">Description of the week schedule.</param>
 /// <param name="Published">Whether the week schedule is published.</param>
 /// <param name="UserSchedules">User schedules in the week.</param>
 /// <param name="PartialUploadIds">IDs of partial uploads to include in this imported schedule. It is applicable only for large schedules where activity count in schedule is greater than 17500.</param>
 /// <param name="Metadata">Version metadata for this work plan (required).</param>
 /// <param name="AgentSchedulesVersion">Version of agent schedules in the week schedule (required).</param>
 /// <param name="ShortTermForecast">Reference to optionally point the schedule at a new short term forecast.</param>
 /// <param name="HeadcountForecast">The headcount forecast associated with the schedule.  If not null, existing values will be irrecoverably replaced.</param>
 /// <param name="AgentUpdateFilter">For a published schedule, this determines whether a notification will be shown to agents in the default PureCloud user interface.  The CPC notification will always be sent and the value specified here affects what data is returned in the &#39;updates&#39; property.  In the default PureCloud UI, \&quot;None\&quot; means that agents will not be notified, \&quot;ShiftTimesOnly\&quot; means agents will only be notified for changes to shift start and end times,  and \&quot;All\&quot; means that agents will be notified for any change to a shift or activity (except for full day off activities).  When building a custom client, use this property to specify the level of detail you need. Defaults to \&quot;ShiftTimesOnly\&quot;..</param>
 public UpdateWeekScheduleRequest(string Description = null, bool?Published = null, Dictionary <string, UserSchedule> UserSchedules = null, List <string> PartialUploadIds = null, WfmVersionedEntityMetadata Metadata = null, int?AgentSchedulesVersion = null, ShortTermForecastReference ShortTermForecast = null, HeadcountForecast HeadcountForecast = null, AgentUpdateFilterEnum?AgentUpdateFilter = null)
 {
     this.Description           = Description;
     this.Published             = Published;
     this.UserSchedules         = UserSchedules;
     this.PartialUploadIds      = PartialUploadIds;
     this.Metadata              = Metadata;
     this.AgentSchedulesVersion = AgentSchedulesVersion;
     this.ShortTermForecast     = ShortTermForecast;
     this.HeadcountForecast     = HeadcountForecast;
     this.AgentUpdateFilter     = AgentUpdateFilter;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="WfmAgent" /> class.
 /// </summary>
 /// <param name="User">The user associated with this data.</param>
 /// <param name="WorkPlan">The work plan associated with this agent.</param>
 /// <param name="TimeZone">The time zone for this agent. Defaults to the time zone of the management unit to which the agent belongs.</param>
 /// <param name="AcceptDirectShiftTrades">Whether the agent accepts direct shift trade requests.</param>
 /// <param name="Metadata">Metadata for this agent.</param>
 /// <param name="Queues">List of queues to which the agent belongs and which are defined in the service goal groups in this management unit.</param>
 /// <param name="Languages">The list of languages.</param>
 /// <param name="Skills">The list of skills.</param>
 /// <param name="Schedulable">Whether the agent has the permission to be included in schedule generation.</param>
 public WfmAgent(UserReference User = null, WorkPlanReference WorkPlan = null, WfmTimeZone TimeZone = null, bool?AcceptDirectShiftTrades = null, WfmVersionedEntityMetadata Metadata = null, List <QueueReference> Queues = null, List <LanguageReference> Languages = null, List <RoutingSkillReference> Skills = null, bool?Schedulable = null)
 {
     this.User     = User;
     this.WorkPlan = WorkPlan;
     this.TimeZone = TimeZone;
     this.AcceptDirectShiftTrades = AcceptDirectShiftTrades;
     this.Metadata    = Metadata;
     this.Queues      = Queues;
     this.Languages   = Languages;
     this.Skills      = Skills;
     this.Schedulable = Schedulable;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdatePlanningGroupRequest" /> class.
 /// </summary>
 /// <param name="Name">The name of the planning group.</param>
 /// <param name="RoutePaths">Set of route paths to associate with the planning group.</param>
 /// <param name="ServiceGoalTemplateId">The ID of the service goal template to associate with this planning group.</param>
 /// <param name="Metadata">Version metadata for the planning group (required).</param>
 public UpdatePlanningGroupRequest(string Name = null, SetWrapperRoutePathRequest RoutePaths = null, string ServiceGoalTemplateId = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name                  = Name;
     this.RoutePaths            = RoutePaths;
     this.ServiceGoalTemplateId = ServiceGoalTemplateId;
     this.Metadata              = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceGoalGroupList" /> class.
 /// </summary>
 /// <param name="Entities">Entities.</param>
 /// <param name="Metadata">Version metadata for the list of service goal groups for the associated management unit.</param>
 public ServiceGoalGroupList(List <ServiceGoalGroup> Entities = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Entities = Entities;
     this.Metadata = Metadata;
 }
Example #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SourcePlanningGroupRequest" /> class.
 /// </summary>
 /// <param name="Id">The ID of the planning group (required).</param>
 /// <param name="Metadata">Version metadata for the planning group (required).</param>
 public SourcePlanningGroupRequest(string Id = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Id       = Id;
     this.Metadata = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="WeekSchedule" /> class.
 /// </summary>
 /// <param name="WeekDate">First day of this week schedule in yyyy-MM-dd format.</param>
 /// <param name="Description">Description of the week schedule.</param>
 /// <param name="Published">Whether the week schedule is published.</param>
 /// <param name="GenerationResults">Summary of the results from the schedule run.</param>
 /// <param name="ShortTermForecast">Short term forecast associated with this schedule.</param>
 /// <param name="Metadata">Version metadata for this work plan.</param>
 /// <param name="UserSchedules">User schedules in the week.</param>
 /// <param name="HeadcountForecast">Headcount information for the week schedule.</param>
 /// <param name="AgentSchedulesVersion">Version of agent schedules in the week schedule.</param>
 public WeekSchedule(string WeekDate = null, string Description = null, bool?Published = null, WeekScheduleGenerationResult GenerationResults = null, ShortTermForecastReference ShortTermForecast = null, WfmVersionedEntityMetadata Metadata = null, Dictionary <string, UserSchedule> UserSchedules = null, HeadcountForecast HeadcountForecast = null, int?AgentSchedulesVersion = null)
 {
     this.WeekDate              = WeekDate;
     this.Description           = Description;
     this.Published             = Published;
     this.GenerationResults     = GenerationResults;
     this.ShortTermForecast     = ShortTermForecast;
     this.Metadata              = Metadata;
     this.UserSchedules         = UserSchedules;
     this.HeadcountForecast     = HeadcountForecast;
     this.AgentSchedulesVersion = AgentSchedulesVersion;
 }
Example #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ActivityCodeContainer" /> class.
 /// </summary>
 /// <param name="ActivityCodes">Map of activity code id to activity code.</param>
 /// <param name="Metadata">Version metadata for the associated management unit's list of activity codes (required).</param>
 public ActivityCodeContainer(Dictionary <string, ActivityCode> ActivityCodes = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.ActivityCodes = ActivityCodes;
     this.Metadata      = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateWorkPlanRotationRequest" /> class.
 /// </summary>
 /// <param name="Name">Name of this work plan rotation.</param>
 /// <param name="Enabled">Whether the work plan rotation is enabled for scheduling.</param>
 /// <param name="DateRange">The date range to which this work plan rotation applies.</param>
 /// <param name="Agents">Agents in this work plan rotation.</param>
 /// <param name="Pattern">Pattern with list of work plan IDs that rotate on a weekly basis.</param>
 /// <param name="Metadata">Version metadata for this work plan rotation (required).</param>
 public UpdateWorkPlanRotationRequest(string Name = null, bool?Enabled = null, DateRangeWithOptionalEnd DateRange = null, List <UpdateWorkPlanRotationAgentRequest> Agents = null, WorkPlanPatternRequest Pattern = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name      = Name;
     this.Enabled   = Enabled;
     this.DateRange = DateRange;
     this.Agents    = Agents;
     this.Pattern   = Pattern;
     this.Metadata  = Metadata;
 }
Example #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserSchedule" /> class.
 /// </summary>
 /// <param name="Shifts">The shifts that belong to this schedule.</param>
 /// <param name="FullDayTimeOffMarkers">Markers to indicate a full day time off request, relative to the management unit time zone.</param>
 /// <param name="Delete">If marked true for updating an existing user schedule, it will be deleted.</param>
 /// <param name="Metadata">Version metadata for this schedule (required).</param>
 public UserSchedule(List <UserScheduleShift> Shifts = null, List <UserScheduleFullDayTimeOffMarker> FullDayTimeOffMarkers = null, bool?Delete = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Shifts = Shifts;
     this.FullDayTimeOffMarkers = FullDayTimeOffMarkers;
     this.Delete   = Delete;
     this.Metadata = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateTimeOffLimitRequest" /> class.
 /// </summary>
 /// <param name="DefaultLimitMinutes">The default time off limit value in minutes per granularity.</param>
 /// <param name="Metadata">Version metadata for the time off limit (required).</param>
 public UpdateTimeOffLimitRequest(int?DefaultLimitMinutes = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.DefaultLimitMinutes = DefaultLimitMinutes;
     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;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BuShortTermForecastListItem" /> class.
 /// </summary>
 /// <param name="WeekDate">The start week date of this forecast in yyyy-MM-dd.  Must fall on the start day of week for the associated business unit. Dates are represented as an ISO-8601 string. For example: yyyy-MM-dd.</param>
 /// <param name="WeekCount">The number of weeks this forecast covers.</param>
 /// <param name="CreationMethod">The method by which this forecast was created.</param>
 /// <param name="Description">The description of this forecast.</param>
 /// <param name="Metadata">Metadata for this forecast.</param>
 /// <param name="CanUseForScheduling">Whether this forecast can be used for scheduling.</param>
 public BuShortTermForecastListItem(String WeekDate = null, int?WeekCount = null, CreationMethodEnum?CreationMethod = null, string Description = null, WfmVersionedEntityMetadata Metadata = null, bool?CanUseForScheduling = null)
 {
     this.WeekDate            = WeekDate;
     this.WeekCount           = WeekCount;
     this.CreationMethod      = CreationMethod;
     this.Description         = Description;
     this.Metadata            = Metadata;
     this.CanUseForScheduling = CanUseForScheduling;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TimeOffLimit" /> class.
 /// </summary>
 /// <param name="Granularity">Granularity choice for the time off limit.</param>
 /// <param name="DefaultLimitMinutes">The default time off limit value in minutes per granularity interval.</param>
 /// <param name="Metadata">Version metadata for the time off limit.</param>
 public TimeOffLimit(GranularityEnum?Granularity = null, int?DefaultLimitMinutes = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Granularity         = Granularity;
     this.DefaultLimitMinutes = DefaultLimitMinutes;
     this.Metadata            = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BuShortTermForecast" /> class.
 /// </summary>
 /// <param name="WeekDate">The start week date of this forecast in yyyy-MM-dd.  Must fall on the start day of week for the associated business unit. Dates are represented as an ISO-8601 string. For example: yyyy-MM-dd.</param>
 /// <param name="WeekCount">The number of weeks this forecast covers.</param>
 /// <param name="CreationMethod">The method by which this forecast was created.</param>
 /// <param name="Description">The description of this forecast.</param>
 /// <param name="Metadata">Metadata for this forecast.</param>
 /// <param name="CanUseForScheduling">Whether this forecast can be used for scheduling.</param>
 /// <param name="ReferenceStartDate">The reference start date for interval-based data for this forecast. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss[.mmm]Z.</param>
 /// <param name="SourceDays">The source day pointers for this forecast.</param>
 /// <param name="Modifications">Any manual modifications applied to this forecast.</param>
 /// <param name="GenerationResults">Generation result metadata.</param>
 /// <param name="TimeZone">The time zone for this forecast.</param>
 /// <param name="PlanningGroupsVersion">The version of the planning groups that was used for this forecast.</param>
 /// <param name="PlanningGroups">A snapshot of the planning groups used for this forecast as of the version number indicated.</param>
 public BuShortTermForecast(String WeekDate = null, int?WeekCount = null, CreationMethodEnum?CreationMethod = null, string Description = null, WfmVersionedEntityMetadata Metadata = null, bool?CanUseForScheduling = null, DateTime?ReferenceStartDate = null, List <ForecastSourceDayPointer> SourceDays = null, List <BuForecastModification> Modifications = null, BuForecastGenerationResult GenerationResults = null, string TimeZone = null, int?PlanningGroupsVersion = null, ForecastPlanningGroupsResponse PlanningGroups = null)
 {
     this.WeekDate              = WeekDate;
     this.WeekCount             = WeekCount;
     this.CreationMethod        = CreationMethod;
     this.Description           = Description;
     this.Metadata              = Metadata;
     this.CanUseForScheduling   = CanUseForScheduling;
     this.ReferenceStartDate    = ReferenceStartDate;
     this.SourceDays            = SourceDays;
     this.Modifications         = Modifications;
     this.GenerationResults     = GenerationResults;
     this.TimeZone              = TimeZone;
     this.PlanningGroupsVersion = PlanningGroupsVersion;
     this.PlanningGroups        = PlanningGroups;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="UserSchedule" /> class.
        /// </summary>


        /// <param name="Shifts">The shifts that belong to this schedule.</param>



        /// <param name="FullDayTimeOffMarkers">Markers to indicate a full day time off request, relative to the management unit time zone.</param>



        /// <param name="Delete">If marked true for updating an existing user schedule, it will be deleted.</param>



        /// <param name="Metadata">Version metadata for this schedule (required).</param>



        public UserSchedule(List <UserScheduleShift> Shifts = null, List <UserScheduleFullDayTimeOffMarker> FullDayTimeOffMarkers = null, bool?Delete = null, WfmVersionedEntityMetadata Metadata = null)
        {
            // to ensure "Metadata" is required (not null)
            if (Metadata == null)
            {
                throw new InvalidDataException("Metadata is a required property for UserSchedule and cannot be null");
            }
            else
            {
                this.Metadata = Metadata;
            }



            this.Shifts = Shifts;



            this.FullDayTimeOffMarkers = FullDayTimeOffMarkers;



            this.Delete = Delete;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateScheduleUploadSchema" /> class.
 /// </summary>
 /// <param name="Description">The description to set for the schedule.</param>
 /// <param name="Published">Whether to publish the schedule. Note: a schedule cannot be un-published unless another schedule is published over it.</param>
 /// <param name="ShortTermForecast">The short term forecast to associate with the schedule.</param>
 /// <param name="HeadcountForecast">The headcount forecast to associate with the schedule.</param>
 /// <param name="AgentSchedules">Individual agent schedules.</param>
 /// <param name="Metadata">Version metadata for this schedule (required).</param>
 public UpdateScheduleUploadSchema(string Description = null, bool?Published = null, BuShortTermForecastReference ShortTermForecast = null, BuHeadcountForecast HeadcountForecast = null, List <BuUpdateAgentScheduleUploadSchema> AgentSchedules = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Description       = Description;
     this.Published         = Published;
     this.ShortTermForecast = ShortTermForecast;
     this.HeadcountForecast = HeadcountForecast;
     this.AgentSchedules    = AgentSchedules;
     this.Metadata          = Metadata;
 }
Example #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ManagementUnit" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="Division">The division to which this entity belongs..</param>
 /// <param name="StartDayOfWeek">Start day of week for scheduling and forecasting purposes.</param>
 /// <param name="TimeZone">The time zone for the management unit in standard Olson format.</param>
 /// <param name="Settings">The configuration settings for this management unit.</param>
 /// <param name="Metadata">Version info metadata for this management unit. Deprecated, use settings.metadata.</param>
 /// <param name="ModifiedBy">The user who last modified this entity.  Deprecated, use field from settings.metadata instead.</param>
 public ManagementUnit(string Name = null, Division Division = null, StartDayOfWeekEnum?StartDayOfWeek = null, string TimeZone = null, ManagementUnitSettings Settings = null, WfmVersionedEntityMetadata Metadata = null, UserReference ModifiedBy = null)
 {
     this.Name           = Name;
     this.Division       = Division;
     this.StartDayOfWeek = StartDayOfWeek;
     this.TimeZone       = TimeZone;
     this.Settings       = Settings;
     this.Metadata       = Metadata;
     this.ModifiedBy     = ModifiedBy;
 }
Example #25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WeekScheduleListItemResponse" /> class.
 /// </summary>
 /// <param name="WeekDate">First day of this week schedule in yyyy-MM-dd format.</param>
 /// <param name="Description">Description of the week schedule.</param>
 /// <param name="Published">Whether the week schedule is published.</param>
 /// <param name="GenerationResults">Summary of the results from the schedule run.</param>
 /// <param name="ShortTermForecast">Short term forecast associated with this schedule.</param>
 /// <param name="Metadata">Version metadata for this work plan.</param>
 public WeekScheduleListItemResponse(string WeekDate = null, string Description = null, bool?Published = null, WeekScheduleGenerationResult GenerationResults = null, ShortTermForecastReference ShortTermForecast = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.WeekDate          = WeekDate;
     this.Description       = Description;
     this.Published         = Published;
     this.GenerationResults = GenerationResults;
     this.ShortTermForecast = ShortTermForecast;
     this.Metadata          = Metadata;
 }
Example #26
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BusinessUnitSettings" /> class.
 /// </summary>
 /// <param name="StartDayOfWeek">The start day of week for this business unit (required).</param>
 /// <param name="TimeZone">The time zone for this business unit, using the Olsen tz database format (required).</param>
 /// <param name="ShortTermForecasting">Short term forecasting settings.</param>
 /// <param name="Scheduling">Scheduling settings.</param>
 /// <param name="Metadata">Version metadata for this business unit (required).</param>
 public BusinessUnitSettings(StartDayOfWeekEnum?StartDayOfWeek = null, string TimeZone = null, BuShortTermForecastingSettings ShortTermForecasting = null, BuSchedulingSettings Scheduling = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.StartDayOfWeek       = StartDayOfWeek;
     this.TimeZone             = TimeZone;
     this.ShortTermForecasting = ShortTermForecasting;
     this.Scheduling           = Scheduling;
     this.Metadata             = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ManagementUnitSettingsRequest" /> class.
 /// </summary>
 /// <param name="Adherence">Adherence settings for this management unit.</param>
 /// <param name="ShortTermForecasting">Short term forecasting settings for this management unit.  Moving to Business Unit.</param>
 /// <param name="TimeOff">Time off request settings for this management unit.</param>
 /// <param name="Scheduling">Scheduling settings for this management unit.</param>
 /// <param name="ShiftTrading">Shift trade settings for this management unit.</param>
 /// <param name="Metadata">Version info metadata for the associated management unit (required).</param>
 public ManagementUnitSettingsRequest(AdherenceSettings Adherence = null, ShortTermForecastingSettings ShortTermForecasting = null, TimeOffRequestSettings TimeOff = null, SchedulingSettingsRequest Scheduling = null, ShiftTradeSettings ShiftTrading = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Adherence            = Adherence;
     this.ShortTermForecasting = ShortTermForecasting;
     this.TimeOff      = TimeOff;
     this.Scheduling   = Scheduling;
     this.ShiftTrading = ShiftTrading;
     this.Metadata     = Metadata;
 }
Example #28
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;
 }
Example #29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ShortTermForecastListItemResponse" /> class.
 /// </summary>
 /// <param name="WeekDate">The weekDate of the short term forecast in yyyy-MM-dd format (required).</param>
 /// <param name="Description">The description of the short term forecast.</param>
 /// <param name="Metadata">Metadata for this forecast (required).</param>
 public ShortTermForecastListItemResponse(string WeekDate = null, string Description = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.WeekDate    = WeekDate;
     this.Description = Description;
     this.Metadata    = Metadata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceGoalGroup" /> class.
 /// </summary>
 /// <param name="Name">Name.</param>
 /// <param name="Goals">Goals defined for this service goal group.</param>
 /// <param name="QueueMediaAssociations">List of queues and media types from that queue to associate with this service goal group.</param>
 /// <param name="Metadata">Version metadata for the list of service goal groups for the associated management unit (required).</param>
 public ServiceGoalGroup(string Name = null, ServiceGoalGroupGoals Goals = null, List <QueueMediaAssociation> QueueMediaAssociations = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.Name  = Name;
     this.Goals = Goals;
     this.QueueMediaAssociations = QueueMediaAssociations;
     this.Metadata = Metadata;
 }