generated/api/Models/ContinuousReplicationGroup.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>Replication group details pertaining to a continuous replication group</summary>
    public partial class ContinuousReplicationGroup :
        Commvault.Powershell.Models.IContinuousReplicationGroup,
        Commvault.Powershell.Models.IContinuousReplicationGroupInternal
    {

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

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

        /// <summary>Option to create crash-consistent recovery points</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionCrashConsistentRpInterval { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).CrashConsistentRpInterval; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).CrashConsistentRpInterval = value ?? default(long); }

        /// <summary>Option to combine older recovery points into larger recovery points</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionMergeRecoveryPointsOlderThan { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).MergeRecoveryPointsOlderThan; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).MergeRecoveryPointsOlderThan = value ?? default(long); }

        /// <summary>
        /// Specify whether to transfer updates for the oldest recovery points to destination computer during off-peak hours.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? RecoveryOptionPruneAndMergeRecoveryPoints { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).PruneAndMergeRecoveryPoints; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).PruneAndMergeRecoveryPoints = value ?? default(bool); }

        /// <summary>
        /// Option to specify the time interval between the oldest recovery points in the RP Store
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionRecoveryPointInterval { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryPointInterval; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryPointInterval = value ?? default(long); }

        /// <summary>
        /// Select the Recovery Point Store on the destination site where journal entries for each recovery point are stored
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RecoveryOptionRecoveryPointStore { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryPointStore; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryPointStore = value ?? null; }

        /// <summary>Type of recovery. Values are case sensitive</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RecoveryOptionRecoveryType { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryType; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RecoveryType = value ?? null; }

        /// <summary>
        /// Option to specify how long journal entries for a recovery point should be retained
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryOptionRetainRecoveryPointsFor { get => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RetainRecoveryPointsFor; set => ((Commvault.Powershell.Models.IRecoveryOptionsInternal)RecoveryOptions).RetainRecoveryPointsFor = value ?? default(long); }

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

        /// <summary>Recovery options to be specified for a continuous replication group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IRecoveryOptions RecoveryOptions { get => (this._recoveryOptions = this._recoveryOptions ?? new Commvault.Powershell.Models.RecoveryOptions()); set => this._recoveryOptions = value; }

        /// <summary>Backing field for <see cref="ReplicationConfiguration" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationConfigurationVMware[] _replicationConfiguration;

        /// <summary>replication configuration of a continuous group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IReplicationConfigurationVMware[] ReplicationConfiguration { get => this._replicationConfiguration; set => this._replicationConfiguration = value; }

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

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

        /// <summary>Vendor used as destination for replication.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryDestinationVendor { get => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).DestinationVendor; set => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).DestinationVendor = value ?? null; }

        /// <summary>Can be used to identify destination for full VM restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryRecoveryTarget { get => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).RecoveryTarget; set => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).RecoveryTarget = value ?? null; }

        /// <summary>The field specifies the type of replication that is to be performed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryReplicationType { get => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).ReplicationType; set => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).ReplicationType = value ?? null; }

        /// <summary>Source hypervisor</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummarySource { get => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).Source; set => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).Source = value ?? null; }

        /// <summary>State of replication group. Values are case sensitive</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SummaryState { get => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).State; set => ((Commvault.Powershell.Models.IReplicationGroupSummaryInternal)Summary).State = value ?? null; }

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

        }
    }
    /// Replication group details pertaining to a continuous replication group
    public partial interface IContinuousReplicationGroup :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Option to create crash-consistent recovery points</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Option to create crash-consistent recovery points",
        SerializedName = @"crashConsistentRpInterval",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionCrashConsistentRpInterval { get; set; }
        /// <summary>Option to combine older recovery points into larger recovery points</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Option to combine older recovery points into larger recovery points",
        SerializedName = @"mergeRecoveryPointsOlderThan",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionMergeRecoveryPointsOlderThan { get; set; }
        /// <summary>
        /// Specify whether to transfer updates for the oldest recovery points to destination computer during off-peak hours.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specify whether to transfer updates for the oldest recovery points to destination computer during off-peak hours.",
        SerializedName = @"pruneAndMergeRecoveryPoints",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RecoveryOptionPruneAndMergeRecoveryPoints { get; set; }
        /// <summary>
        /// Option to specify the time interval between the oldest recovery points in the RP Store
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Option to specify the time interval between the oldest recovery points in the RP Store",
        SerializedName = @"recoveryPointInterval",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionRecoveryPointInterval { get; set; }
        /// <summary>
        /// Select the Recovery Point Store on the destination site where journal entries for each recovery point are stored
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Select the Recovery Point Store on the destination site where journal entries for each recovery point are stored",
        SerializedName = @"recoveryPointStore",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryOptionRecoveryPointStore { get; set; }
        /// <summary>Type of recovery. Values are case sensitive</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of recovery. Values are case sensitive",
        SerializedName = @"recoveryType",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryOptionRecoveryType { get; set; }
        /// <summary>
        /// Option to specify how long journal entries for a recovery point should be retained
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Option to specify how long journal entries for a recovery point should be retained",
        SerializedName = @"retainRecoveryPointsFor",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryOptionRetainRecoveryPointsFor { get; set; }
        /// <summary>replication configuration of a continuous group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"replication configuration of a continuous group",
        SerializedName = @"replicationConfiguration",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IReplicationConfigurationVMware) })]
        Commvault.Powershell.Models.IReplicationConfigurationVMware[] ReplicationConfiguration { get; set; }
        /// <summary>Vendor used as destination for replication.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Vendor used as destination for replication.",
        SerializedName = @"destinationVendor",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryDestinationVendor { get; set; }
        /// <summary>Can be used to identify destination for full VM restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Can be used to identify destination for full VM restore",
        SerializedName = @"recoveryTarget",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryRecoveryTarget { get; set; }
        /// <summary>The field specifies the type of replication that is to be performed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The field specifies the type of replication that is to be performed",
        SerializedName = @"replicationType",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryReplicationType { get; set; }
        /// <summary>Source hypervisor</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Source hypervisor",
        SerializedName = @"source",
        PossibleTypes = new [] { typeof(string) })]
        string SummarySource { get; set; }
        /// <summary>State of replication group. Values are case sensitive</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"State of replication group. Values are case sensitive",
        SerializedName = @"state",
        PossibleTypes = new [] { typeof(string) })]
        string SummaryState { get; set; }

    }
    /// Replication group details pertaining to a continuous replication group
    internal partial interface IContinuousReplicationGroupInternal

    {
        /// <summary>Option to create crash-consistent recovery points</summary>
        long? RecoveryOptionCrashConsistentRpInterval { get; set; }
        /// <summary>Option to combine older recovery points into larger recovery points</summary>
        long? RecoveryOptionMergeRecoveryPointsOlderThan { get; set; }
        /// <summary>
        /// Specify whether to transfer updates for the oldest recovery points to destination computer during off-peak hours.
        /// </summary>
        bool? RecoveryOptionPruneAndMergeRecoveryPoints { get; set; }
        /// <summary>
        /// Option to specify the time interval between the oldest recovery points in the RP Store
        /// </summary>
        long? RecoveryOptionRecoveryPointInterval { get; set; }
        /// <summary>
        /// Select the Recovery Point Store on the destination site where journal entries for each recovery point are stored
        /// </summary>
        string RecoveryOptionRecoveryPointStore { get; set; }
        /// <summary>Type of recovery. Values are case sensitive</summary>
        string RecoveryOptionRecoveryType { get; set; }
        /// <summary>
        /// Option to specify how long journal entries for a recovery point should be retained
        /// </summary>
        long? RecoveryOptionRetainRecoveryPointsFor { get; set; }
        /// <summary>Recovery options to be specified for a continuous replication group</summary>
        Commvault.Powershell.Models.IRecoveryOptions RecoveryOptions { get; set; }
        /// <summary>replication configuration of a continuous group</summary>
        Commvault.Powershell.Models.IReplicationConfigurationVMware[] ReplicationConfiguration { get; set; }
        /// <summary>Summary of replication group</summary>
        Commvault.Powershell.Models.IReplicationGroupSummary Summary { get; set; }
        /// <summary>Vendor used as destination for replication.</summary>
        string SummaryDestinationVendor { get; set; }
        /// <summary>Can be used to identify destination for full VM restore</summary>
        string SummaryRecoveryTarget { get; set; }
        /// <summary>The field specifies the type of replication that is to be performed</summary>
        string SummaryReplicationType { get; set; }
        /// <summary>Source hypervisor</summary>
        string SummarySource { get; set; }
        /// <summary>State of replication group. Values are case sensitive</summary>
        string SummaryState { get; set; }

    }
}