generated/api/Models/SchedulePattern.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    /// <summary>Used to describe when the schedule runs</summary>
    public partial class SchedulePattern :
        Commvault.Powershell.Models.ISchedulePattern,
        Commvault.Powershell.Models.ISchedulePatternInternal
    {

        /// <summary>Internal Acessors for Timezone</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.ISchedulePatternInternal.Timezone { get => (this._timezone = this._timezone ?? new Commvault.Powershell.Models.IdName()); set { {_timezone = value;} } }

        /// <summary>Backing field for <see cref="DayOfMonth" /> property.</summary>
        private long? _dayOfMonth;

        /// <summary>Day on which to run the schedule, applicable for monthly, yearly</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? DayOfMonth { get => this._dayOfMonth; set => this._dayOfMonth = value; }

        /// <summary>Backing field for <see cref="DayOfWeek" /> property.</summary>
        private string _dayOfWeek;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DayOfWeek { get => this._dayOfWeek; set => this._dayOfWeek = value; }

        /// <summary>Backing field for <see cref="DaysBetweenSyntheticFulls" /> property.</summary>
        private long? _daysBetweenSyntheticFulls;

        /// <summary>No of days between two synthetic full jobs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? DaysBetweenSyntheticFulls { get => this._daysBetweenSyntheticFulls; set => this._daysBetweenSyntheticFulls = value; }

        /// <summary>Backing field for <see cref="EndDate" /> property.</summary>
        private long? _endDate;

        /// <summary>Schedule end date in epoch format</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? EndDate { get => this._endDate; set => this._endDate = value; }

        /// <summary>Backing field for <see cref="Exceptions" /> property.</summary>
        private Commvault.Powershell.Models.IScheduleRunException[] _exceptions;

        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and days
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IScheduleRunException[] Exceptions { get => this._exceptions; set => this._exceptions = value; }

        /// <summary>Backing field for <see cref="Frequency" /> property.</summary>
        private long? _frequency;

        /// <summary>
        /// Frequency of the schedule based on schedule frequency type eg. for Hours, value 2 is 2 hours, for Minutes, 30 is 30 minutes,
        /// for Daily, 2 is 2 days. for Monthly 2 is it repeats every 2 months
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? Frequency { get => this._frequency; set => this._frequency = value; }

        /// <summary>Backing field for <see cref="MaxBackupIntervalInMins" /> property.</summary>
        private long? _maxBackupIntervalInMins;

        /// <summary>The number of mins to force a backup on automatic schedule.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? MaxBackupIntervalInMins { get => this._maxBackupIntervalInMins; set => this._maxBackupIntervalInMins = value; }

        /// <summary>Backing field for <see cref="MonthOfYear" /> property.</summary>
        private string _monthOfYear;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string MonthOfYear { get => this._monthOfYear; set => this._monthOfYear = value; }

        /// <summary>Backing field for <see cref="NoOfTimes" /> property.</summary>
        private long? _noOfTimes;

        /// <summary>The number of times you want the schedule to run.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? NoOfTimes { get => this._noOfTimes; set => this._noOfTimes = value; }

        /// <summary>Backing field for <see cref="RepeatIntervalInMinutes" /> property.</summary>
        private long? _repeatIntervalInMinutes;

        /// <summary>
        /// How often in minutes in a day the schedule runs, applicable for daily, weekly, monthly and yearly frequency types.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? RepeatIntervalInMinutes { get => this._repeatIntervalInMinutes; set => this._repeatIntervalInMinutes = value; }

        /// <summary>Backing field for <see cref="RepeatUntilTime" /> property.</summary>
        private long? _repeatUntilTime;

        /// <summary>
        /// Until what time to repeat the schedule in a day, requires repeatIntervalInMinutes
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? RepeatUntilTime { get => this._repeatUntilTime; set => this._repeatUntilTime = value; }

        /// <summary>Backing field for <see cref="ScheduleFrequencyType" /> property.</summary>
        private string _scheduleFrequencyType;

        /// <summary>schedule frequency type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ScheduleFrequencyType { get => this._scheduleFrequencyType; set => this._scheduleFrequencyType = value; }

        /// <summary>Backing field for <see cref="StartDate" /> property.</summary>
        private long? _startDate;

        /// <summary>start date of schedule in epoch format</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? StartDate { get => this._startDate; set => this._startDate = value; }

        /// <summary>Backing field for <see cref="StartTime" /> property.</summary>
        private long? _startTime;

        /// <summary>start time of schedule in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? StartTime { get => this._startTime; set => this._startTime = value; }

        /// <summary>Backing field for <see cref="Timezone" /> property.</summary>
        private Commvault.Powershell.Models.IIdName _timezone;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IIdName Timezone { get => (this._timezone = this._timezone ?? new Commvault.Powershell.Models.IdName()); set => this._timezone = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? TimezoneId { get => ((Commvault.Powershell.Models.IIdNameInternal)Timezone).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)Timezone).Id = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TimezoneName { get => ((Commvault.Powershell.Models.IIdNameInternal)Timezone).Name; set => ((Commvault.Powershell.Models.IIdNameInternal)Timezone).Name = value ?? null; }

        /// <summary>Backing field for <see cref="WeekOfMonth" /> property.</summary>
        private string _weekOfMonth;

        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string WeekOfMonth { get => this._weekOfMonth; set => this._weekOfMonth = value; }

        /// <summary>Backing field for <see cref="WeeklyDays" /> property.</summary>
        private string[] _weeklyDays;

        /// <summary>Days of the week for weekly frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string[] WeeklyDays { get => this._weeklyDays; set => this._weeklyDays = value; }

        /// <summary>Creates an new <see cref="SchedulePattern" /> instance.</summary>
        public SchedulePattern()
        {

        }
    }
    /// Used to describe when the schedule runs
    public partial interface ISchedulePattern :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Day on which to run the schedule, applicable for monthly, yearly</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Day on which to run the schedule, applicable for monthly, yearly",
        SerializedName = @"dayOfMonth",
        PossibleTypes = new [] { typeof(long) })]
        long? DayOfMonth { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"dayOfWeek",
        PossibleTypes = new [] { typeof(string) })]
        string DayOfWeek { get; set; }
        /// <summary>No of days between two synthetic full jobs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"No of days between two synthetic full jobs",
        SerializedName = @"daysBetweenSyntheticFulls",
        PossibleTypes = new [] { typeof(long) })]
        long? DaysBetweenSyntheticFulls { get; set; }
        /// <summary>Schedule end date in epoch format</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Schedule end date in epoch format",
        SerializedName = @"endDate",
        PossibleTypes = new [] { typeof(long) })]
        long? EndDate { get; set; }
        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and days
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Exceptions to when a schedule should not run, either in dates or week of month and days",
        SerializedName = @"exceptions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IScheduleRunException) })]
        Commvault.Powershell.Models.IScheduleRunException[] Exceptions { get; set; }
        /// <summary>
        /// Frequency of the schedule based on schedule frequency type eg. for Hours, value 2 is 2 hours, for Minutes, 30 is 30 minutes,
        /// for Daily, 2 is 2 days. for Monthly 2 is it repeats every 2 months
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Frequency of the schedule based on schedule frequency type eg. for Hours, value 2 is 2 hours, for Minutes, 30 is 30 minutes, for Daily, 2 is 2 days. for Monthly 2 is it repeats every 2 months",
        SerializedName = @"frequency",
        PossibleTypes = new [] { typeof(long) })]
        long? Frequency { get; set; }
        /// <summary>The number of mins to force a backup on automatic schedule.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The number of mins to force a backup on automatic schedule.",
        SerializedName = @"maxBackupIntervalInMins",
        PossibleTypes = new [] { typeof(long) })]
        long? MaxBackupIntervalInMins { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"monthOfYear",
        PossibleTypes = new [] { typeof(string) })]
        string MonthOfYear { get; set; }
        /// <summary>The number of times you want the schedule to run.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The number of times you want the schedule to run.",
        SerializedName = @"noOfTimes",
        PossibleTypes = new [] { typeof(long) })]
        long? NoOfTimes { get; set; }
        /// <summary>
        /// How often in minutes in a day the schedule runs, applicable for daily, weekly, monthly and yearly frequency types.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"How often in minutes in a day the schedule runs, applicable for daily, weekly, monthly and yearly frequency types.",
        SerializedName = @"repeatIntervalInMinutes",
        PossibleTypes = new [] { typeof(long) })]
        long? RepeatIntervalInMinutes { get; set; }
        /// <summary>
        /// Until what time to repeat the schedule in a day, requires repeatIntervalInMinutes
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Until what time to repeat the schedule in a day, requires repeatIntervalInMinutes",
        SerializedName = @"repeatUntilTime",
        PossibleTypes = new [] { typeof(long) })]
        long? RepeatUntilTime { get; set; }
        /// <summary>schedule frequency type</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Description = @"schedule frequency type",
        SerializedName = @"scheduleFrequencyType",
        PossibleTypes = new [] { typeof(string) })]
        string ScheduleFrequencyType { get; set; }
        /// <summary>start date of schedule in epoch format</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"start date of schedule in epoch format",
        SerializedName = @"startDate",
        PossibleTypes = new [] { typeof(long) })]
        long? StartDate { get; set; }
        /// <summary>start time of schedule in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"start time of schedule in seconds",
        SerializedName = @"startTime",
        PossibleTypes = new [] { typeof(long) })]
        long? StartTime { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? TimezoneId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string TimezoneName { get; set; }
        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specific week of a month",
        SerializedName = @"weekOfMonth",
        PossibleTypes = new [] { typeof(string) })]
        string WeekOfMonth { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Days of the week for weekly frequency",
        SerializedName = @"weeklyDays",
        PossibleTypes = new [] { typeof(string) })]
        string[] WeeklyDays { get; set; }

    }
    /// Used to describe when the schedule runs
    internal partial interface ISchedulePatternInternal

    {
        /// <summary>Day on which to run the schedule, applicable for monthly, yearly</summary>
        long? DayOfMonth { get; set; }

        string DayOfWeek { get; set; }
        /// <summary>No of days between two synthetic full jobs</summary>
        long? DaysBetweenSyntheticFulls { get; set; }
        /// <summary>Schedule end date in epoch format</summary>
        long? EndDate { get; set; }
        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and days
        /// </summary>
        Commvault.Powershell.Models.IScheduleRunException[] Exceptions { get; set; }
        /// <summary>
        /// Frequency of the schedule based on schedule frequency type eg. for Hours, value 2 is 2 hours, for Minutes, 30 is 30 minutes,
        /// for Daily, 2 is 2 days. for Monthly 2 is it repeats every 2 months
        /// </summary>
        long? Frequency { get; set; }
        /// <summary>The number of mins to force a backup on automatic schedule.</summary>
        long? MaxBackupIntervalInMins { get; set; }

        string MonthOfYear { get; set; }
        /// <summary>The number of times you want the schedule to run.</summary>
        long? NoOfTimes { get; set; }
        /// <summary>
        /// How often in minutes in a day the schedule runs, applicable for daily, weekly, monthly and yearly frequency types.
        /// </summary>
        long? RepeatIntervalInMinutes { get; set; }
        /// <summary>
        /// Until what time to repeat the schedule in a day, requires repeatIntervalInMinutes
        /// </summary>
        long? RepeatUntilTime { get; set; }
        /// <summary>schedule frequency type</summary>
        string ScheduleFrequencyType { get; set; }
        /// <summary>start date of schedule in epoch format</summary>
        long? StartDate { get; set; }
        /// <summary>start time of schedule in seconds</summary>
        long? StartTime { get; set; }

        Commvault.Powershell.Models.IIdName Timezone { get; set; }

        long? TimezoneId { get; set; }

        string TimezoneName { get; set; }
        /// <summary>Specific week of a month</summary>
        string WeekOfMonth { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        string[] WeeklyDays { get; set; }

    }
}