/// <summary>
 /// Initializes a new instance of the <see cref="WaitlistPosition" /> class.
 /// </summary>
 /// <param name="TimeOffRequest">The time off request for this wait list position.</param>
 /// <param name="TimeOffLimit">The time off limit for which time off request is waitlisted.</param>
 /// <param name="Date">The date to which this wait list position applies, as defined by the time zone of the business unit. Dates are represented as an ISO-8601 string. For example: yyyy-MM-dd.</param>
 /// <param name="_WaitlistPosition">The time off request's position in the waitlist on the date. 1 means time off is the first in the waitlist.</param>
 public WaitlistPosition(TimeOffRequestReference TimeOffRequest = null, TimeOffLimitReference TimeOffLimit = null, String Date = null, int?_WaitlistPosition = null)
 {
     this.TimeOffRequest    = TimeOffRequest;
     this.TimeOffLimit      = TimeOffLimit;
     this.Date              = Date;
     this._WaitlistPosition = _WaitlistPosition;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AvailableTimeOffRange" /> class.
 /// </summary>
 /// <param name="TimeOffLimit">The time off limit.</param>
 /// <param name="StartDate">Start date of the requested date range. The end date is determined by the size of interval list. Dates are represented as an ISO-8601 string. For example: yyyy-MM-dd.</param>
 /// <param name="Granularity">Granularity choice for time off limit.</param>
 /// <param name="AvailableMinutesPerInterval">The list of available time off values in minutes per granularity interval.</param>
 /// <param name="WaitlistedRequestsPerInterval">The current number of waitlisted time off requests for every interval per granularity.</param>
 /// <param name="WaitlistEnabled">Whether the time off request can be waitlisted.</param>
 public AvailableTimeOffRange(TimeOffLimitReference TimeOffLimit = null, String StartDate = null, GranularityEnum?Granularity = null, List <int?> AvailableMinutesPerInterval = null, List <int?> WaitlistedRequestsPerInterval = null, bool?WaitlistEnabled = null)
 {
     this.TimeOffLimit = TimeOffLimit;
     this.StartDate    = StartDate;
     this.Granularity  = Granularity;
     this.AvailableMinutesPerInterval   = AvailableMinutesPerInterval;
     this.WaitlistedRequestsPerInterval = WaitlistedRequestsPerInterval;
     this.WaitlistEnabled = WaitlistEnabled;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TimeOffLimitValueRange" /> class.
 /// </summary>
 /// <param name="TimeOffLimit">The ID of the time off limit.</param>
 /// <param name="StartDate">Start date of the requested date range, in ISO-8601 format. The end date is determined by the size of interval lists (required).</param>
 /// <param name="Granularity">Granularity choice for time off limit (required).</param>
 /// <param name="LimitMinutesPerInterval">A list of time off limit values in minutes per granularity interval.</param>
 /// <param name="AllocatedMinutesPerInterval">A list of allocated time off minutes per granularity interval.</param>
 /// <param name="WaitlistedMinutesPerInterval">A list of waitlisted time off minutes per granularity interval.</param>
 /// <param name="WaitlistedRequestsPerInterval">The current number of waitlisted time off requests for every interval per granularity.</param>
 /// <param name="Metadata">Version metadata for the time off limit.</param>
 public TimeOffLimitValueRange(TimeOffLimitReference TimeOffLimit = null, String StartDate = null, GranularityEnum?Granularity = null, List <int?> LimitMinutesPerInterval = null, List <int?> AllocatedMinutesPerInterval = null, List <int?> WaitlistedMinutesPerInterval = null, List <int?> WaitlistedRequestsPerInterval = null, WfmVersionedEntityMetadata Metadata = null)
 {
     this.TimeOffLimit                  = TimeOffLimit;
     this.StartDate                     = StartDate;
     this.Granularity                   = Granularity;
     this.LimitMinutesPerInterval       = LimitMinutesPerInterval;
     this.AllocatedMinutesPerInterval   = AllocatedMinutesPerInterval;
     this.WaitlistedMinutesPerInterval  = WaitlistedMinutesPerInterval;
     this.WaitlistedRequestsPerInterval = WaitlistedRequestsPerInterval;
     this.Metadata = Metadata;
 }