generated/api/Models/ReplicationMonitorDetail.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>Details of continuous replication group</summary>
    public partial class ReplicationMonitorDetail :
        Commvault.Powershell.Models.IReplicationMonitorDetail,
        Commvault.Powershell.Models.IReplicationMonitorDetailInternal
    {

        /// <summary>Internal Acessors for RecoveryOptionRecoverypointStore</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationMonitorDetailInternal.RecoveryOptionRecoverypointStore { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStore; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStore = value; }

        /// <summary>Internal Acessors for RecoveryOptions</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptions Commvault.Powershell.Models.IReplicationMonitorDetailInternal.RecoveryOptions { get => (this._recoveryOptions = this._recoveryOptions ?? new Commvault.Powershell.Models.ReplicationMonitorDetailRecoveryOptions()); set { {_recoveryOptions = value;} } }

        /// <summary>Internal Acessors for Summary</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailSummary Commvault.Powershell.Models.IReplicationMonitorDetailInternal.Summary { get => (this._summary = this._summary ?? new Commvault.Powershell.Models.ReplicationMonitorDetailSummary()); set { {_summary = value;} } }

        /// <summary>Internal Acessors for SummaryDestination</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationMonitorDetailInternal.SummaryDestination { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Destination; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Destination = value; }

        /// <summary>Internal Acessors for SummarySource</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationMonitorDetailInternal.SummarySource { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Source; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Source = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? DestinationId { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).DestinationId; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).DestinationId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string DestinationName { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).DestinationName; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).DestinationName = value ?? null; }

        /// <summary>
        /// Gives information about application consistent recovery point interval in seconds
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionAcrpInterval { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).AcrpInterval; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).AcrpInterval = value ?? default(long); }

        /// <summary>Time interval between crash consistent recovery points in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionCcrpInterval { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).CcrpInterval; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).CcrpInterval = value ?? default(long); }

        /// <summary>Time which should be satisfied to merge recovery points in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionMergeRecoveryPointsOlderThan { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).MergeRecoveryPointsOlderThan; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).MergeRecoveryPointsOlderThan = value ?? default(long); }

        /// <summary>
        /// Boolean which determines Prune and Merge Recovery Points during off peak time only.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? RecoveryOptionPruneAndMergeOffPeakOnly { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).PruneAndMergeOffPeakOnly; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).PruneAndMergeOffPeakOnly = value ?? default(bool); }

        /// <summary>Recovery points retention time in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionRetainRecoveryPointsFor { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RetainRecoveryPointsFor; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RetainRecoveryPointsFor = value ?? default(long); }

        /// <summary>Recovery point interval at the end of retention time in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionRpIntervalAfterRetention { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RpIntervalAfterRetention; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RpIntervalAfterRetention = value ?? default(long); }

        /// <summary>
        /// Gives information about switching to latest recovery point store to latest if it is offline for time in seconds
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionSwitchToLatestIfStoreOfflineFor { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).SwitchToLatestIfStoreOfflineFor; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).SwitchToLatestIfStoreOfflineFor = value ?? default(long); }

        /// <summary>Backing field for <see cref="RecoveryOptions" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptions _recoveryOptions;

        /// <summary>Gives information about the recovery options for replication group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptions RecoveryOptions { get => (this._recoveryOptions = this._recoveryOptions ?? new Commvault.Powershell.Models.ReplicationMonitorDetailRecoveryOptions()); set => this._recoveryOptions = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoverypointStoreId { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStoreId; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStoreId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RecoverypointStoreName { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStoreName; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptionsInternal)RecoveryOptions).RecoverypointStoreName = value ?? null; }

        /// <summary>Backing field for <see cref="ReplicationCopyDetails" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationMonitorDetailReplicationCopyDetails[] _replicationCopyDetails;

        /// <summary>Gives copy details information for replication group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IReplicationMonitorDetailReplicationCopyDetails[] ReplicationCopyDetails { get => this._replicationCopyDetails; set => this._replicationCopyDetails = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SourceId { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SourceId; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SourceId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SourceName { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SourceName; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SourceName = value ?? null; }

        /// <summary>Backing field for <see cref="Statistics" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationMonitorDetailStats[] _statistics;

        /// <summary>Gives statistics information for Replication performance and Journal retention</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IReplicationMonitorDetailStats[] Statistics { get => this._statistics; set => this._statistics = value; }

        /// <summary>Backing field for <see cref="Summary" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationMonitorDetailSummary _summary;

        /// <summary>Gives summary of replication group.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IReplicationMonitorDetailSummary Summary { get => (this._summary = this._summary ?? new Commvault.Powershell.Models.ReplicationMonitorDetailSummary()); set => this._summary = value; }

        /// <summary>additional description of current pair status</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryEventMessage { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).EventMessage; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).EventMessage = value ?? null; }

        /// <summary>Id of replication pair</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryId { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Id; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).Id = value ?? default(long); }

        /// <summary>Gives information about the recovery type of replication group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryRecoveryType { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).RecoveryType; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).RecoveryType = value ?? null; }

        /// <summary>Lag time in seconds</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SummaryReplicationLag { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).ReplicationLag; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).ReplicationLag = value ?? default(long); }

        /// <summary>Gives information about the synchronization status</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummarySynchronizationStatus { get => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SynchronizationStatus; set => ((Commvault.Powershell.Models.IReplicationMonitorDetailSummaryInternal)Summary).SynchronizationStatus = value ?? null; }

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

        }
    }
    /// Details of continuous replication group
    public partial interface IReplicationMonitorDetail :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? DestinationId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string DestinationName { get; set; }
        /// <summary>
        /// Gives information about application consistent recovery point interval in seconds
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives information about application consistent recovery point interval in seconds",
        SerializedName = @"ACRPInterval",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionAcrpInterval { get; set; }
        /// <summary>Time interval between crash consistent recovery points in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Time interval between crash consistent recovery points in seconds",
        SerializedName = @"CCRPInterval",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionCcrpInterval { get; set; }
        /// <summary>Time which should be satisfied to merge recovery points in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Time which should be satisfied to merge recovery points in seconds",
        SerializedName = @"mergeRecoveryPointsOlderThan",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionMergeRecoveryPointsOlderThan { get; set; }
        /// <summary>
        /// Boolean which determines Prune and Merge Recovery Points during off peak time only.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean which determines Prune and Merge Recovery Points during off peak time only.",
        SerializedName = @"pruneAndMergeOffPeakOnly",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RecoveryOptionPruneAndMergeOffPeakOnly { get; set; }
        /// <summary>Recovery points retention time in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Recovery points retention time in seconds",
        SerializedName = @"retainRecoveryPointsFor",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionRetainRecoveryPointsFor { get; set; }
        /// <summary>Recovery point interval at the end of retention time in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Recovery point interval at the end of retention time in seconds",
        SerializedName = @"RPIntervalAfterRetention",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionRpIntervalAfterRetention { get; set; }
        /// <summary>
        /// Gives information about switching to latest recovery point store to latest if it is offline for time in seconds
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives information about switching to latest recovery point store to latest if it is offline for time in seconds",
        SerializedName = @"switchToLatestIfStoreOfflineFor",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionSwitchToLatestIfStoreOfflineFor { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoverypointStoreId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RecoverypointStoreName { get; set; }
        /// <summary>Gives copy details information for replication group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives copy details information for replication group",
        SerializedName = @"replicationCopyDetails",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IReplicationMonitorDetailReplicationCopyDetails) })]
        Commvault.Powershell.Models.IReplicationMonitorDetailReplicationCopyDetails[] ReplicationCopyDetails { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? SourceId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SourceName { get; set; }
        /// <summary>Gives statistics information for Replication performance and Journal retention</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives statistics information for Replication performance and Journal retention",
        SerializedName = @"statistics",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IReplicationMonitorDetailStats) })]
        Commvault.Powershell.Models.IReplicationMonitorDetailStats[] Statistics { get; set; }
        /// <summary>additional description of current pair status</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"additional description of current pair status",
        SerializedName = @"eventMessage",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryEventMessage { get; set; }
        /// <summary>Id of replication pair</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Id of replication pair",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryId { get; set; }
        /// <summary>Gives information about the recovery type of replication group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives information about the recovery type of replication group",
        SerializedName = @"recoveryType",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryRecoveryType { get; set; }
        /// <summary>Lag time in seconds</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Lag time in seconds",
        SerializedName = @"replicationLag",
        PossibleTypes = new [] { typeof(long) })]
        long? SummaryReplicationLag { get; set; }
        /// <summary>Gives information about the synchronization status</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gives information about the synchronization status",
        SerializedName = @"synchronizationStatus",
        PossibleTypes = new [] { typeof(string) })]
        string SummarySynchronizationStatus { get; set; }

    }
    /// Details of continuous replication group
    internal partial interface IReplicationMonitorDetailInternal

    {
        long? DestinationId { get; set; }

        string DestinationName { get; set; }
        /// <summary>
        /// Gives information about application consistent recovery point interval in seconds
        /// </summary>
        long? RecoveryOptionAcrpInterval { get; set; }
        /// <summary>Time interval between crash consistent recovery points in seconds</summary>
        long? RecoveryOptionCcrpInterval { get; set; }
        /// <summary>Time which should be satisfied to merge recovery points in seconds</summary>
        long? RecoveryOptionMergeRecoveryPointsOlderThan { get; set; }
        /// <summary>
        /// Boolean which determines Prune and Merge Recovery Points during off peak time only.
        /// </summary>
        bool? RecoveryOptionPruneAndMergeOffPeakOnly { get; set; }

        Commvault.Powershell.Models.IIdName RecoveryOptionRecoverypointStore { get; set; }
        /// <summary>Recovery points retention time in seconds</summary>
        long? RecoveryOptionRetainRecoveryPointsFor { get; set; }
        /// <summary>Recovery point interval at the end of retention time in seconds</summary>
        long? RecoveryOptionRpIntervalAfterRetention { get; set; }
        /// <summary>
        /// Gives information about switching to latest recovery point store to latest if it is offline for time in seconds
        /// </summary>
        long? RecoveryOptionSwitchToLatestIfStoreOfflineFor { get; set; }
        /// <summary>Gives information about the recovery options for replication group</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailRecoveryOptions RecoveryOptions { get; set; }

        long? RecoverypointStoreId { get; set; }

        string RecoverypointStoreName { get; set; }
        /// <summary>Gives copy details information for replication group</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailReplicationCopyDetails[] ReplicationCopyDetails { get; set; }

        long? SourceId { get; set; }

        string SourceName { get; set; }
        /// <summary>Gives statistics information for Replication performance and Journal retention</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailStats[] Statistics { get; set; }
        /// <summary>Gives summary of replication group.</summary>
        Commvault.Powershell.Models.IReplicationMonitorDetailSummary Summary { get; set; }

        Commvault.Powershell.Models.IIdName SummaryDestination { get; set; }
        /// <summary>additional description of current pair status</summary>
        string SummaryEventMessage { get; set; }
        /// <summary>Id of replication pair</summary>
        long? SummaryId { get; set; }
        /// <summary>Gives information about the recovery type of replication group</summary>
        string SummaryRecoveryType { get; set; }
        /// <summary>Lag time in seconds</summary>
        long? SummaryReplicationLag { get; set; }

        Commvault.Powershell.Models.IIdName SummarySource { get; set; }
        /// <summary>Gives information about the synchronization status</summary>
        string SummarySynchronizationStatus { get; set; }

    }
}