generated/api/Models/UpdateApplicationGroupRequest.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>Update Application Group Request</summary>
    public partial class UpdateApplicationGroupRequest :
        Commvault.Powershell.Models.IUpdateApplicationGroupRequest,
        Commvault.Powershell.Models.IUpdateApplicationGroupRequestInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IApplicationGroupRequestInputs" />
        /// </summary>
        private Commvault.Powershell.Models.IApplicationGroupRequestInputs __applicationGroupRequestInputs = new Commvault.Powershell.Models.ApplicationGroupRequestInputs();

        /// <summary>Backing field for <see cref="ActivityControl" /> property.</summary>
        private Commvault.Powershell.Models.IApplicationGroupActivityControl _activityControl;

        /// <summary>Application Group Activity Control Options</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IApplicationGroupActivityControl ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ApplicationGroupActivityControl()); set => this._activityControl = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? ActivityControlEnableBackup { get => ((Commvault.Powershell.Models.IApplicationGroupActivityControlInternal)ActivityControl).EnableBackup; set => ((Commvault.Powershell.Models.IApplicationGroupActivityControlInternal)ActivityControl).EnableBackup = value ?? default(bool); }

        /// <summary>Internal Acessors for ActivityControl</summary>
        Commvault.Powershell.Models.IApplicationGroupActivityControl Commvault.Powershell.Models.IUpdateApplicationGroupRequestInternal.ActivityControl { get => (this._activityControl = this._activityControl ?? new Commvault.Powershell.Models.ApplicationGroupActivityControl()); set { {_activityControl = value;} } }

        /// <summary>Internal Acessors for OptionWorkerResources</summary>
        Commvault.Powershell.Models.IApplicationGroupWorkerResourcesOptions Commvault.Powershell.Models.IUpdateApplicationGroupRequestInternal.OptionWorkerResources { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResources; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResources = value; }

        /// <summary>Internal Acessors for Options</summary>
        Commvault.Powershell.Models.IApplicationGroupGetOptions Commvault.Powershell.Models.IUpdateApplicationGroupRequestInternal.Options { get => (this._options = this._options ?? new Commvault.Powershell.Models.ApplicationGroupGetOptions()); set { {_options = value;} } }

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

        /// <summary>Item describing the content for Application Group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesApplicationGroupContent Content { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Content; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Content = value; }

        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesContentApplications[] ContentApplications { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentApplications; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentApplications = value; }

        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesContentSelectors[] ContentLabelSelectors { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentLabelSelectors; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentLabelSelectors = value; }

        /// <summary>Specifies whether content has to be overwritten or appended</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public bool? ContentOverwrite { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentOverwrite; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).ContentOverwrite = value; }

        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesContentApplications[] FilterApplications { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterApplications; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterApplications = value; }

        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesContentSelectors[] FilterLabelSelectors { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterLabelSelectors; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterLabelSelectors = value; }

        /// <summary>Specifies whether content has to be overwritten or appended</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public bool? FilterOverwrite { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterOverwrite; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterOverwrite = value; }

        /// <summary>Specify whether to skip backup of stateless applications</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public bool? FilterSkipStatelessApps { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterSkipStatelessApps; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).FilterSkipStatelessApps = value; }

        /// <summary>Kubernetes Application Group Filter</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IKubernetesApplicationGroupFilters Filters { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Filters; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Filters = value; }

        /// <summary>Specify new name to rename an Application Group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string Name { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Name; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Name = value; }

        /// <summary>Define number of parallel data readers</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? OptionBackupStreams { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).BackupStreams; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).BackupStreams = value ?? default(long); }

        /// <summary>Define the backup job start time in epochs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? OptionJobStartTime { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).JobStartTime; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).JobStartTime = value ?? default(long); }

        /// <summary>Define setting to enable fallback to live volume backup in case of snap failure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? OptionOnSnapFailureFallbackToLiveVolume { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).OnSnapFailureFallbackToLiveVolume; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).OnSnapFailureFallbackToLiveVolume = value ?? default(bool); }

        /// <summary>
        /// Define setting to enable scheduling worker Pods to CV Namespace for CSI-Snapshot enabled backups
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? OptionScheduleWorkerToConfigNamespace { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).ScheduleWorkerToConfigNamespace; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).ScheduleWorkerToConfigNamespace = value ?? default(bool); }

        /// <summary>Backing field for <see cref="Options" /> property.</summary>
        private Commvault.Powershell.Models.IApplicationGroupGetOptions _options;

        /// <summary>Application Group Backup Options</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IApplicationGroupGetOptions Options { get => (this._options = this._options ?? new Commvault.Powershell.Models.ApplicationGroupGetOptions()); set => this._options = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdName Plan { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Plan; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).Plan = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? PlanId { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).PlanId; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).PlanId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string PlanName { get => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).PlanName; set => ((Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal)__applicationGroupRequestInputs).PlanName = value; }

        /// <summary>Backing field for <see cref="Tags" /> property.</summary>
        private Commvault.Powershell.Models.INameValue[] _tags;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.INameValue[] Tags { get => this._tags; set => this._tags = 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>Define limits.cpu to set on the worker Pod</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkerResourceCpuLimits { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceCpuLimits; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceCpuLimits = value ?? null; }

        /// <summary>Define requests.cpu to set on the worker Pod</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkerResourceCpuRequests { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceCpuRequests; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceCpuRequests = value ?? null; }

        /// <summary>Define limits.memory to set on the worker Pod</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkerResourceMemoryLimits { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceMemoryLimits; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceMemoryLimits = value ?? null; }

        /// <summary>Define requests.memory to set on the worker Pod</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string WorkerResourceMemoryRequests { get => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceMemoryRequests; set => ((Commvault.Powershell.Models.IApplicationGroupGetOptionsInternal)Options).WorkerResourceMemoryRequests = value ?? null; }

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

        }

        /// <summary>Validates that this object meets the validation criteria.</summary>
        /// <param name="eventListener">an <see cref="Commvault.Powershell.Runtime.IEventListener" /> instance that will receive validation
        /// events.</param>
        /// <returns>
        /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed.
        /// </returns>
        public async global::System.Threading.Tasks.Task Validate(Commvault.Powershell.Runtime.IEventListener eventListener)
        {
            await eventListener.AssertNotNull(nameof(__applicationGroupRequestInputs), __applicationGroupRequestInputs);
            await eventListener.AssertObjectIsValid(nameof(__applicationGroupRequestInputs), __applicationGroupRequestInputs);
        }
    }
    /// Update Application Group Request
    public partial interface IUpdateApplicationGroupRequest :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IApplicationGroupRequestInputs
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"enableBackup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>Define number of parallel data readers</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define number of parallel data readers",
        SerializedName = @"backupStreams",
        PossibleTypes = new [] { typeof(long) })]
        long? OptionBackupStreams { get; set; }
        /// <summary>Define the backup job start time in epochs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define the backup job start time in epochs",
        SerializedName = @"jobStartTime",
        PossibleTypes = new [] { typeof(long) })]
        long? OptionJobStartTime { get; set; }
        /// <summary>Define setting to enable fallback to live volume backup in case of snap failure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define setting to enable fallback to live volume backup in case of snap failure",
        SerializedName = @"onSnapFailureFallbackToLiveVolume",
        PossibleTypes = new [] { typeof(bool) })]
        bool? OptionOnSnapFailureFallbackToLiveVolume { get; set; }
        /// <summary>
        /// Define setting to enable scheduling worker Pods to CV Namespace for CSI-Snapshot enabled backups
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define setting to enable scheduling worker Pods to CV Namespace for CSI-Snapshot enabled backups",
        SerializedName = @"scheduleWorkerToConfigNamespace",
        PossibleTypes = new [] { typeof(bool) })]
        bool? OptionScheduleWorkerToConfigNamespace { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"tags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.INameValue) })]
        Commvault.Powershell.Models.INameValue[] Tags { 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>Define limits.cpu to set on the worker Pod</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define limits.cpu to set on the worker Pod",
        SerializedName = @"cpuLimits",
        PossibleTypes = new [] { typeof(string) })]
        string WorkerResourceCpuLimits { get; set; }
        /// <summary>Define requests.cpu to set on the worker Pod</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define requests.cpu to set on the worker Pod",
        SerializedName = @"cpuRequests",
        PossibleTypes = new [] { typeof(string) })]
        string WorkerResourceCpuRequests { get; set; }
        /// <summary>Define limits.memory to set on the worker Pod</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define limits.memory to set on the worker Pod",
        SerializedName = @"memoryLimits",
        PossibleTypes = new [] { typeof(string) })]
        string WorkerResourceMemoryLimits { get; set; }
        /// <summary>Define requests.memory to set on the worker Pod</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Define requests.memory to set on the worker Pod",
        SerializedName = @"memoryRequests",
        PossibleTypes = new [] { typeof(string) })]
        string WorkerResourceMemoryRequests { get; set; }

    }
    /// Update Application Group Request
    internal partial interface IUpdateApplicationGroupRequestInternal :
        Commvault.Powershell.Models.IApplicationGroupRequestInputsInternal
    {
        /// <summary>Application Group Activity Control Options</summary>
        Commvault.Powershell.Models.IApplicationGroupActivityControl ActivityControl { get; set; }

        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>Define number of parallel data readers</summary>
        long? OptionBackupStreams { get; set; }
        /// <summary>Define the backup job start time in epochs</summary>
        long? OptionJobStartTime { get; set; }
        /// <summary>Define setting to enable fallback to live volume backup in case of snap failure</summary>
        bool? OptionOnSnapFailureFallbackToLiveVolume { get; set; }
        /// <summary>
        /// Define setting to enable scheduling worker Pods to CV Namespace for CSI-Snapshot enabled backups
        /// </summary>
        bool? OptionScheduleWorkerToConfigNamespace { get; set; }
        /// <summary>Application Group Worker Pod Resources Options</summary>
        Commvault.Powershell.Models.IApplicationGroupWorkerResourcesOptions OptionWorkerResources { get; set; }
        /// <summary>Application Group Backup Options</summary>
        Commvault.Powershell.Models.IApplicationGroupGetOptions Options { get; set; }

        Commvault.Powershell.Models.INameValue[] Tags { get; set; }

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

        long? TimezoneId { get; set; }

        string TimezoneName { get; set; }
        /// <summary>Define limits.cpu to set on the worker Pod</summary>
        string WorkerResourceCpuLimits { get; set; }
        /// <summary>Define requests.cpu to set on the worker Pod</summary>
        string WorkerResourceCpuRequests { get; set; }
        /// <summary>Define limits.memory to set on the worker Pod</summary>
        string WorkerResourceMemoryLimits { get; set; }
        /// <summary>Define requests.memory to set on the worker Pod</summary>
        string WorkerResourceMemoryRequests { get; set; }

    }
}