generated/api/Models/KubernetesApplicationGroupSummaryInfo.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>Summary of a Kubernetes Application</summary>
    public partial class KubernetesApplicationGroupSummaryInfo :
        Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfo,
        Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfoInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IKubernetesApplicationGroupCommonProps" />
        /// </summary>
        private Commvault.Powershell.Models.IKubernetesApplicationGroupCommonProps __kubernetesApplicationGroupCommonProps = new Commvault.Powershell.Models.KubernetesApplicationGroupCommonProps();

        /// <summary>Backing field for <see cref="AccessNodes" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _accessNodes;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] AccessNodes { get => this._accessNodes; set => this._accessNodes = value; }

        /// <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); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdName Backupset { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Backupset; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Backupset = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? BackupsetId { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).BackupsetId; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).BackupsetId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string BackupsetName { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).BackupsetName; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).BackupsetName = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdNameDisplayName Cluster { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Cluster; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Cluster = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string ClusterDisplayName { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterDisplayName; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterDisplayName = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? ClusterId { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterId; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string ClusterName { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterName; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).ClusterName = value; }

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

        /// <summary>Internal Acessors for Content</summary>
        Commvault.Powershell.Models.IKubernetesApplicationGroupContentItem Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfoInternal.Content { get => (this._content = this._content ?? new Commvault.Powershell.Models.KubernetesApplicationGroupContentItem()); set { {_content = value;} } }

        /// <summary>Internal Acessors for Filters</summary>
        Commvault.Powershell.Models.IKubernetesApplicationGroupFilterItem Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfoInternal.Filters { get => (this._filters = this._filters ?? new Commvault.Powershell.Models.KubernetesApplicationGroupFilterItem()); set { {_filters = value;} } }

        /// <summary>Internal Acessors for LastBackup</summary>
        Commvault.Powershell.Models.ILastBackupJobInfo Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfoInternal.LastBackup { get => (this._lastBackup = this._lastBackup ?? new Commvault.Powershell.Models.LastBackupJobInfo()); set { {_lastBackup = value;} } }

        /// <summary>Internal Acessors for OptionWorkerResources</summary>
        Commvault.Powershell.Models.IApplicationGroupWorkerResourcesOptions Commvault.Powershell.Models.IKubernetesApplicationGroupSummaryInfoInternal.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.IKubernetesApplicationGroupSummaryInfoInternal.Options { get => (this._options = this._options ?? new Commvault.Powershell.Models.ApplicationGroupGetOptions()); set { {_options = value;} } }

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

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

        /// <summary>Backing field for <see cref="Content" /> property.</summary>
        private Commvault.Powershell.Models.IKubernetesApplicationGroupContentItem _content;

        /// <summary>Item to describe the applications and label selectors</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IKubernetesApplicationGroupContentItem Content { get => (this._content = this._content ?? new Commvault.Powershell.Models.KubernetesApplicationGroupContentItem()); set => this._content = value; }

        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IKubernetesContentApplications[] ContentApplications { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Content).Applications; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Content).Applications = value ?? null /* arrayOf */; }

        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IKubernetesContentSelectors[] ContentLabelSelectors { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Content).LabelSelectors; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Content).LabelSelectors = value ?? null /* arrayOf */; }

        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IKubernetesContentApplications[] FilterApplications { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Filters).Applications; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Filters).Applications = value ?? null /* arrayOf */; }

        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IKubernetesContentSelectors[] FilterLabelSelectors { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Filters).LabelSelectors; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupContentItemInternal)Filters).LabelSelectors = value ?? null /* arrayOf */; }

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

        /// <summary>Backing field for <see cref="Filters" /> property.</summary>
        private Commvault.Powershell.Models.IKubernetesApplicationGroupFilterItem _filters;

        /// <summary>Item to describe the applications and label selectors for filters</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IKubernetesApplicationGroupFilterItem Filters { get => (this._filters = this._filters ?? new Commvault.Powershell.Models.KubernetesApplicationGroupFilterItem()); set => this._filters = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdName Instance { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Instance; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).Instance = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? InstanceId { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).InstanceId; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).InstanceId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string InstanceName { get => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).InstanceName; set => ((Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal)__kubernetesApplicationGroupCommonProps).InstanceName = value; }

        /// <summary>Backing field for <see cref="IsDefaultApplicationGroup" /> property.</summary>
        private bool? _isDefaultApplicationGroup;

        /// <summary>Describes if the Application Group is a default Application Group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsDefaultApplicationGroup { get => this._isDefaultApplicationGroup; set => this._isDefaultApplicationGroup = value; }

        /// <summary>Backing field for <see cref="IsEtcdApplicationGroup" /> property.</summary>
        private bool? _isEtcdApplicationGroup;

        /// <summary>Describes if the Application Group is an ETCD Application Group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? IsEtcdApplicationGroup { get => this._isEtcdApplicationGroup; set => this._isEtcdApplicationGroup = value; }

        /// <summary>Backing field for <see cref="LastBackup" /> property.</summary>
        private Commvault.Powershell.Models.ILastBackupJobInfo _lastBackup;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ILastBackupJobInfo LastBackup { get => (this._lastBackup = this._lastBackup ?? new Commvault.Powershell.Models.LastBackupJobInfo()); set => this._lastBackup = value; }

        /// <summary>Gives the reason for the last backup job failing, if the last backup job fails.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string LastBackupFailureReason { get => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).FailureReason; set => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).FailureReason = value ?? null; }

        /// <summary>Returns the job id of the last backup job performed.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? LastBackupJobId { get => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).JobId; set => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).JobId = value ?? default(long); }

        /// <summary>Status of the last backup job performed.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string LastBackupStatus { get => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).Status; set => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).Status = value ?? null; }

        /// <summary>
        /// Shows the time when the last back up job was carried out. The time is provided in unix time format.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? LastBackupTime { get => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).Time; set => ((Commvault.Powershell.Models.ILastBackupJobInfoInternal)LastBackup).Time = value ?? default(long); }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? NextBackupTime { get => this._nextBackupTime; set => this._nextBackupTime = 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; }

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdNameValue[] 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="KubernetesApplicationGroupSummaryInfo" /> instance.</summary>
        public KubernetesApplicationGroupSummaryInfo()
        {

        }

        /// <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(__kubernetesApplicationGroupCommonProps), __kubernetesApplicationGroupCommonProps);
            await eventListener.AssertObjectIsValid(nameof(__kubernetesApplicationGroupCommonProps), __kubernetesApplicationGroupCommonProps);
        }
    }
    /// Summary of a Kubernetes Application
    public partial interface IKubernetesApplicationGroupSummaryInfo :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IKubernetesApplicationGroupCommonProps
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"accessNodes",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AccessNodes { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"enableBackup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of applications to be added as content",
        SerializedName = @"applications",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IKubernetesContentApplications) })]
        Commvault.Powershell.Models.IKubernetesContentApplications[] ContentApplications { get; set; }
        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of label selectors to be added as content",
        SerializedName = @"labelSelectors",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IKubernetesContentSelectors) })]
        Commvault.Powershell.Models.IKubernetesContentSelectors[] ContentLabelSelectors { get; set; }
        /// <summary>List of applications to be added as content</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of applications to be added as content",
        SerializedName = @"applications",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IKubernetesContentApplications) })]
        Commvault.Powershell.Models.IKubernetesContentApplications[] FilterApplications { get; set; }
        /// <summary>List of label selectors to be added as content</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of label selectors to be added as content",
        SerializedName = @"labelSelectors",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IKubernetesContentSelectors) })]
        Commvault.Powershell.Models.IKubernetesContentSelectors[] FilterLabelSelectors { get; set; }
        /// <summary>Specify whether to skip backup of stateless applications</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify whether to skip backup of stateless applications",
        SerializedName = @"skipStatelessApps",
        PossibleTypes = new [] { typeof(bool) })]
        bool? FilterSkipStatelessApps { get; set; }
        /// <summary>Describes if the Application Group is a default Application Group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Describes if the Application Group is a default Application Group",
        SerializedName = @"isDefaultApplicationGroup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsDefaultApplicationGroup { get; set; }
        /// <summary>Describes if the Application Group is an ETCD Application Group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Describes if the Application Group is an ETCD Application Group",
        SerializedName = @"isETCDApplicationGroup",
        PossibleTypes = new [] { typeof(bool) })]
        bool? IsEtcdApplicationGroup { get; set; }
        /// <summary>Gives the reason for the last backup job failing, if the last backup job fails.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives the reason for the last backup job failing, if the last backup job fails.",
        SerializedName = @"failureReason",
        PossibleTypes = new [] { typeof(string) })]
        string LastBackupFailureReason { get; set; }
        /// <summary>Returns the job id of the last backup job performed.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Returns the job id of the last backup job performed.",
        SerializedName = @"jobId",
        PossibleTypes = new [] { typeof(long) })]
        long? LastBackupJobId { get; set; }
        /// <summary>Status of the last backup job performed.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Status of the last backup job performed.",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string LastBackupStatus { get; set; }
        /// <summary>
        /// Shows the time when the last back up job was carried out. The time is provided in unix time format.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Shows the time when the last back up job was carried out. The time is provided in unix time format.",
        SerializedName = @"time",
        PossibleTypes = new [] { typeof(long) })]
        long? LastBackupTime { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"nextBackupTime",
        PossibleTypes = new [] { typeof(long) })]
        long? NextBackupTime { 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 = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? PlanId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PlanName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"tags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdNameValue) })]
        Commvault.Powershell.Models.IIdNameValue[] 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; }

    }
    /// Summary of a Kubernetes Application
    internal partial interface IKubernetesApplicationGroupSummaryInfoInternal :
        Commvault.Powershell.Models.IKubernetesApplicationGroupCommonPropsInternal
    {
        Commvault.Powershell.Models.IIdName[] AccessNodes { get; set; }
        /// <summary>Application Group Activity Control Options</summary>
        Commvault.Powershell.Models.IApplicationGroupActivityControl ActivityControl { get; set; }

        bool? ActivityControlEnableBackup { get; set; }
        /// <summary>Item to describe the applications and label selectors</summary>
        Commvault.Powershell.Models.IKubernetesApplicationGroupContentItem Content { get; set; }
        /// <summary>List of applications to be added as content</summary>
        Commvault.Powershell.Models.IKubernetesContentApplications[] ContentApplications { get; set; }
        /// <summary>List of label selectors to be added as content</summary>
        Commvault.Powershell.Models.IKubernetesContentSelectors[] ContentLabelSelectors { get; set; }
        /// <summary>List of applications to be added as content</summary>
        Commvault.Powershell.Models.IKubernetesContentApplications[] FilterApplications { get; set; }
        /// <summary>List of label selectors to be added as content</summary>
        Commvault.Powershell.Models.IKubernetesContentSelectors[] FilterLabelSelectors { get; set; }
        /// <summary>Specify whether to skip backup of stateless applications</summary>
        bool? FilterSkipStatelessApps { get; set; }
        /// <summary>Item to describe the applications and label selectors for filters</summary>
        Commvault.Powershell.Models.IKubernetesApplicationGroupFilterItem Filters { get; set; }
        /// <summary>Describes if the Application Group is a default Application Group</summary>
        bool? IsDefaultApplicationGroup { get; set; }
        /// <summary>Describes if the Application Group is an ETCD Application Group</summary>
        bool? IsEtcdApplicationGroup { get; set; }

        Commvault.Powershell.Models.ILastBackupJobInfo LastBackup { get; set; }
        /// <summary>Gives the reason for the last backup job failing, if the last backup job fails.</summary>
        string LastBackupFailureReason { get; set; }
        /// <summary>Returns the job id of the last backup job performed.</summary>
        long? LastBackupJobId { get; set; }
        /// <summary>Status of the last backup job performed.</summary>
        string LastBackupStatus { get; set; }
        /// <summary>
        /// Shows the time when the last back up job was carried out. The time is provided in unix time format.
        /// </summary>
        long? LastBackupTime { get; set; }

        long? NextBackupTime { 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.IIdName Plan { get; set; }

        long? PlanId { get; set; }

        string PlanName { get; set; }

        Commvault.Powershell.Models.IIdNameValue[] 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; }

    }
}