generated/api/Models/CreateServerPlanRpo.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.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;

    public partial class CreateServerPlanRpo :
        Commvault.Powershell.Models.ICreateServerPlanRpo,
        Commvault.Powershell.Models.ICreateServerPlanRpoInternal
    {

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IPlanSchedule[] BackupFrequencySchedules { get => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupFrequencySchedules; set => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupFrequencySchedules = value ?? null /* arrayOf */; }

        /// <summary>Internal Acessors for DatabaseOptions</summary>
        Commvault.Powershell.Models.IServerPlanDatabaseOptions Commvault.Powershell.Models.ICreateServerPlanRpoInternal.DatabaseOptions { get => (this._databaseOptions = this._databaseOptions ?? new Commvault.Powershell.Models.ServerPlanDatabaseOptions()); set { {_databaseOptions = value;} } }

        /// <summary>Internal Acessors for Rpo</summary>
        Commvault.Powershell.Models.IServerBackupPlanRpo Commvault.Powershell.Models.ICreateServerPlanRpoInternal.Rpo { get => (this._rpo = this._rpo ?? new Commvault.Powershell.Models.ServerBackupPlanRpo()); set { {_rpo = value;} } }

        /// <summary>Internal Acessors for RpoBackupFrequency</summary>
        Commvault.Powershell.Models.IPlanSchedules Commvault.Powershell.Models.ICreateServerPlanRpoInternal.RpoBackupFrequency { get => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupFrequency; set => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupFrequency = value; }

        /// <summary>Commit frequency in hours</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DatabaseOptionCommitFrequencyInHours { get => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).CommitFrequencyInHours; set => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).CommitFrequencyInHours = value ?? default(long); }

        /// <summary>Log backup RPO in minutes</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DatabaseOptionLogBackupRpoMins { get => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).LogBackupRpoMins; set => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).LogBackupRpoMins = value ?? default(long); }

        /// <summary>Use disk cache for log backups</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? DatabaseOptionUseDiskCacheForLogBackups { get => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).UseDiskCacheForLogBackups; set => ((Commvault.Powershell.Models.IServerPlanDatabaseOptionsInternal)DatabaseOptions).UseDiskCacheForLogBackups = value ?? default(bool); }

        /// <summary>Backing field for <see cref="DatabaseOptions" /> property.</summary>
        private Commvault.Powershell.Models.IServerPlanDatabaseOptions _databaseOptions;

        /// <summary>This feature applies only to database agents</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IServerPlanDatabaseOptions DatabaseOptions { get => (this._databaseOptions = this._databaseOptions ?? new Commvault.Powershell.Models.ServerPlanDatabaseOptions()); set => this._databaseOptions = value; }

        /// <summary>Backing field for <see cref="Rpo" /> property.</summary>
        private Commvault.Powershell.Models.IServerBackupPlanRpo _rpo;

        /// <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>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IServerBackupPlanRpo Rpo { get => (this._rpo = this._rpo ?? new Commvault.Powershell.Models.ServerBackupPlanRpo()); set => this._rpo = value; }

        /// <summary>Backup window for incremental backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IDayAndTime[] RpoBackupWindow { get => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupWindow; set => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).BackupWindow = value ?? null /* arrayOf */; }

        /// <summary>Backup window for full backup</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IDayAndTime[] RpoFullBackupWindow { get => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).FullBackupWindow; set => ((Commvault.Powershell.Models.IServerBackupPlanRpoInternal)Rpo).FullBackupWindow = value ?? null /* arrayOf */; }

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

        }
    }
    public partial interface ICreateServerPlanRpo :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"schedules",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IPlanSchedule) })]
        Commvault.Powershell.Models.IPlanSchedule[] BackupFrequencySchedules { get; set; }
        /// <summary>Commit frequency in hours</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Commit frequency in hours",
        SerializedName = @"commitFrequencyInHours",
        PossibleTypes = new [] { typeof(long) })]
        long? DatabaseOptionCommitFrequencyInHours { get; set; }
        /// <summary>Log backup RPO in minutes</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Log backup RPO in minutes",
        SerializedName = @"logBackupRPOMins",
        PossibleTypes = new [] { typeof(long) })]
        long? DatabaseOptionLogBackupRpoMins { get; set; }
        /// <summary>Use disk cache for log backups</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Use disk cache for log backups",
        SerializedName = @"useDiskCacheForLogBackups",
        PossibleTypes = new [] { typeof(bool) })]
        bool? DatabaseOptionUseDiskCacheForLogBackups { get; set; }
        /// <summary>Backup window for incremental backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Backup window for incremental backup",
        SerializedName = @"backupWindow",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IDayAndTime) })]
        Commvault.Powershell.Models.IDayAndTime[] RpoBackupWindow { get; set; }
        /// <summary>Backup window for full backup</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Backup window for full backup",
        SerializedName = @"fullBackupWindow",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IDayAndTime) })]
        Commvault.Powershell.Models.IDayAndTime[] RpoFullBackupWindow { get; set; }

    }
    internal partial interface ICreateServerPlanRpoInternal

    {
        Commvault.Powershell.Models.IPlanSchedule[] BackupFrequencySchedules { get; set; }
        /// <summary>Commit frequency in hours</summary>
        long? DatabaseOptionCommitFrequencyInHours { get; set; }
        /// <summary>Log backup RPO in minutes</summary>
        long? DatabaseOptionLogBackupRpoMins { get; set; }
        /// <summary>Use disk cache for log backups</summary>
        bool? DatabaseOptionUseDiskCacheForLogBackups { get; set; }
        /// <summary>This feature applies only to database agents</summary>
        Commvault.Powershell.Models.IServerPlanDatabaseOptions DatabaseOptions { get; set; }
        /// <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>
        Commvault.Powershell.Models.IServerBackupPlanRpo Rpo { get; set; }
        /// <summary>PlanSchedules</summary>
        Commvault.Powershell.Models.IPlanSchedules RpoBackupFrequency { get; set; }
        /// <summary>Backup window for incremental backup</summary>
        Commvault.Powershell.Models.IDayAndTime[] RpoBackupWindow { get; set; }
        /// <summary>Backup window for full backup</summary>
        Commvault.Powershell.Models.IDayAndTime[] RpoFullBackupWindow { get; set; }

    }
}