generated/api/Models/ArchivePlanRpo.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>
    /// Recovery Point Objective (RPO) is the maximum amount of time that data can be lost during a service disruption. Your RPO
    /// determines the frequency of your backup jobs.
    /// </summary>
    public partial class ArchivePlanRpo :
        Commvault.Powershell.Models.IArchivePlanRpo,
        Commvault.Powershell.Models.IArchivePlanRpoInternal
    {

        /// <summary>Backing field for <see cref="ArchiveFrequency" /> property.</summary>
        private Commvault.Powershell.Models.IBackupFrequencyPattern _archiveFrequency;

        /// <summary>Used to describe the frequency of backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IBackupFrequencyPattern ArchiveFrequency { get => (this._archiveFrequency = this._archiveFrequency ?? new Commvault.Powershell.Models.BackupFrequencyPattern()); set => this._archiveFrequency = value; }

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

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

        /// <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? ArchiveFrequencyFrequency { get => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)ArchiveFrequency).Frequency; set => ((Commvault.Powershell.Models.IBackupFrequencyPatternInternal)ArchiveFrequency).Frequency = value ?? default(long); }

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

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

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

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

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

        /// <summary>Backing field for <see cref="ArchiveWindow" /> property.</summary>
        private Commvault.Powershell.Models.IDayAndTime[] _archiveWindow;

        /// <summary>Archive job will run only in the specified archive window</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IDayAndTime[] ArchiveWindow { get => this._archiveWindow; set => this._archiveWindow = value; }

        /// <summary>Internal Acessors for ArchiveFrequency</summary>
        Commvault.Powershell.Models.IBackupFrequencyPattern Commvault.Powershell.Models.IArchivePlanRpoInternal.ArchiveFrequency { get => (this._archiveFrequency = this._archiveFrequency ?? new Commvault.Powershell.Models.BackupFrequencyPattern()); set { {_archiveFrequency = value;} } }

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

        }
    }
    /// Recovery Point Objective (RPO) is the maximum amount of time that data can be lost during a service disruption. Your RPO
    /// determines the frequency of your backup jobs.
    public partial interface IArchivePlanRpo :
        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? ArchiveFrequencyDayOfMonth { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"dayOfWeek",
        PossibleTypes = new [] { typeof(string) })]
        string ArchiveFrequencyDayOfWeek { 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? ArchiveFrequencyFrequency { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"monthOfYear",
        PossibleTypes = new [] { typeof(string) })]
        string ArchiveFrequencyMonthOfYear { 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 ArchiveFrequencyScheduleFrequencyType { 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? ArchiveFrequencyStartTime { 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 ArchiveFrequencyWeekOfMonth { 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[] ArchiveFrequencyWeeklyDays { get; set; }
        /// <summary>Archive job will run only in the specified archive window</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Archive job will run only in the specified archive window",
        SerializedName = @"archiveWindow",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IDayAndTime) })]
        Commvault.Powershell.Models.IDayAndTime[] ArchiveWindow { get; set; }

    }
    /// Recovery Point Objective (RPO) is the maximum amount of time that data can be lost during a service disruption. Your RPO
    /// determines the frequency of your backup jobs.
    internal partial interface IArchivePlanRpoInternal

    {
        /// <summary>Used to describe the frequency of backup</summary>
        Commvault.Powershell.Models.IBackupFrequencyPattern ArchiveFrequency { get; set; }
        /// <summary>Day on which to run the schedule, applicable for monthly, yearly</summary>
        long? ArchiveFrequencyDayOfMonth { get; set; }

        string ArchiveFrequencyDayOfWeek { 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? ArchiveFrequencyFrequency { get; set; }

        string ArchiveFrequencyMonthOfYear { get; set; }
        /// <summary>schedule frequency type</summary>
        string ArchiveFrequencyScheduleFrequencyType { get; set; }
        /// <summary>start time of schedule in seconds for daily, weekly, monthly, yearly frequency</summary>
        long? ArchiveFrequencyStartTime { get; set; }
        /// <summary>Specific week of a month</summary>
        string ArchiveFrequencyWeekOfMonth { get; set; }
        /// <summary>Days of the week for weekly frequency</summary>
        string[] ArchiveFrequencyWeeklyDays { get; set; }
        /// <summary>Archive job will run only in the specified archive window</summary>
        Commvault.Powershell.Models.IDayAndTime[] ArchiveWindow { get; set; }

    }
}