generated/api/Models/DcPlanJobSchedule.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>Describes the Schedule object for Data Classification Plan</summary>
    public partial class DcPlanJobSchedule :
        Commvault.Powershell.Models.IDcPlanJobSchedule,
        Commvault.Powershell.Models.IDcPlanJobScheduleInternal
    {

        /// <summary>Internal Acessors for Pattern</summary>
        Commvault.Powershell.Models.IContentIndexingFrequencyPattern Commvault.Powershell.Models.IDcPlanJobScheduleInternal.Pattern { get => (this._pattern = this._pattern ?? new Commvault.Powershell.Models.ContentIndexingFrequencyPattern()); set { {_pattern = value;} } }

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

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

        /// <summary>Backing field for <see cref="Pattern" /> property.</summary>
        private Commvault.Powershell.Models.IContentIndexingFrequencyPattern _pattern;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IContentIndexingFrequencyPattern Pattern { get => (this._pattern = this._pattern ?? new Commvault.Powershell.Models.ContentIndexingFrequencyPattern()); set => this._pattern = value; }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PatternDayOfWeek { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).DayOfWeek; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).DayOfWeek = value ?? null; }

        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and day
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IScheduleRunException[] PatternExceptions { get => ((Commvault.Powershell.Models.IContentIndexingFrequencyPatternInternal)Pattern).Exceptions; set => ((Commvault.Powershell.Models.IContentIndexingFrequencyPatternInternal)Pattern).Exceptions = value ?? null /* arrayOf */; }

        /// <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.Inlined)]
        public long? PatternFrequency { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).Frequency; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).Frequency = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PatternMonthOfYear { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).MonthOfYear; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).MonthOfYear = value ?? null; }

        /// <summary>schedule frequency type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PatternScheduleFrequencyType { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).ScheduleFrequencyType; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).ScheduleFrequencyType = value ?? null; }

        /// <summary>start date of schedule in epoch format</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PatternStartDate { get => ((Commvault.Powershell.Models.IContentIndexingFrequencyPatternInternal)Pattern).StartDate; set => ((Commvault.Powershell.Models.IContentIndexingFrequencyPatternInternal)Pattern).StartDate = value ?? default(long); }

        /// <summary>start time of schedule in seconds for daily, weekly, monthly, yearly frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PatternStartTime { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).StartTime; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).StartTime = value ?? default(long); }

        /// <summary>Specific week of a month</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PatternWeekOfMonth { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).WeekOfMonth; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).WeekOfMonth = value ?? null; }

        /// <summary>Days of the week for weekly frequency</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] PatternWeeklyDays { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).WeeklyDays; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)Pattern).WeeklyDays = value ?? null /* arrayOf */; }

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

        }
    }
    /// Describes the Schedule object for Data Classification Plan
    public partial interface IDcPlanJobSchedule :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }
        /// <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? PatternDayOfMonth { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"dayOfWeek",
        PossibleTypes = new [] { typeof(string) })]
        string PatternDayOfWeek { get; set; }
        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and day
        /// </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 day",
        SerializedName = @"exceptions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IScheduleRunException) })]
        Commvault.Powershell.Models.IScheduleRunException[] PatternExceptions { 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? PatternFrequency { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"monthOfYear",
        PossibleTypes = new [] { typeof(string) })]
        string PatternMonthOfYear { get; set; }
        /// <summary>schedule frequency type</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"schedule frequency type",
        SerializedName = @"scheduleFrequencyType",
        PossibleTypes = new [] { typeof(string) })]
        string PatternScheduleFrequencyType { 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? PatternStartDate { get; set; }
        /// <summary>start time of schedule in seconds for daily, weekly, monthly, yearly frequency</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"start time of schedule in seconds for daily, weekly, monthly, yearly frequency",
        SerializedName = @"startTime",
        PossibleTypes = new [] { typeof(long) })]
        long? PatternStartTime { 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 PatternWeekOfMonth { 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[] PatternWeeklyDays { get; set; }

    }
    /// Describes the Schedule object for Data Classification Plan
    internal partial interface IDcPlanJobScheduleInternal

    {
        string Name { get; set; }

        Commvault.Powershell.Models.IContentIndexingFrequencyPattern Pattern { get; set; }
        /// <summary>Day on which to run the schedule, applicable for monthly, yearly</summary>
        long? PatternDayOfMonth { get; set; }

        string PatternDayOfWeek { get; set; }
        /// <summary>
        /// Exceptions to when a schedule should not run, either in dates or week of month and day
        /// </summary>
        Commvault.Powershell.Models.IScheduleRunException[] PatternExceptions { 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? PatternFrequency { get; set; }

        string PatternMonthOfYear { get; set; }
        /// <summary>schedule frequency type</summary>
        string PatternScheduleFrequencyType { get; set; }
        /// <summary>start date of schedule in epoch format</summary>
        long? PatternStartDate { get; set; }
        /// <summary>start time of schedule in seconds for daily, weekly, monthly, yearly frequency</summary>
        long? PatternStartTime { get; set; }
        /// <summary>Specific week of a month</summary>
        string PatternWeekOfMonth { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        string[] PatternWeeklyDays { get; set; }

    }
}