generated/api/Models/FailoverGroupReplicationPair.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>A replication pair for failover group</summary>
    public partial class FailoverGroupReplicationPair :
        Commvault.Powershell.Models.IFailoverGroupReplicationPair,
        Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal
    {

        /// <summary>Internal Acessors for PostFailbackScript</summary>
        Commvault.Powershell.Models.IDrOperationScript Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScript { get => (this._postFailbackScript = this._postFailbackScript ?? new Commvault.Powershell.Models.DrOperationScript()); set { {_postFailbackScript = value;} } }

        /// <summary>Internal Acessors for PostFailbackScriptCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailbackScriptScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScript</summary>
        Commvault.Powershell.Models.IDrOperationScript Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScript { get => (this._postFailoverScript = this._postFailoverScript ?? new Commvault.Powershell.Models.DrOperationScript()); set { {_postFailoverScript = value;} } }

        /// <summary>Internal Acessors for PostFailoverScriptCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PostFailoverScriptScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScript</summary>
        Commvault.Powershell.Models.IDrOperationScript Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScript { get => (this._preFailbackScript = this._preFailbackScript ?? new Commvault.Powershell.Models.DrOperationScript()); set { {_preFailbackScript = value;} } }

        /// <summary>Internal Acessors for PreFailbackScriptCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailbackScriptScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScript</summary>
        Commvault.Powershell.Models.IDrOperationScript Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScript { get => (this._preFailoverScript = this._preFailoverScript ?? new Commvault.Powershell.Models.DrOperationScript()); set { {_preFailoverScript = value;} } }

        /// <summary>Internal Acessors for PreFailoverScriptCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IFailoverGroupReplicationPairInternal.PreFailoverScriptScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentials = value; }

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

        /// <summary>The copy precedence of replication pair</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? CopyPrecedence { get => this._copyPrecedence; set => this._copyPrecedence = value; }

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

        /// <summary>The id of the destination machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? DestinationId { get => this._destinationId; set => this._destinationId = value; }

        /// <summary>Backing field for <see cref="DestinationName" /> property.</summary>
        private string _destinationName;

        /// <summary>The name of the destination machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DestinationName { get => this._destinationName; set => this._destinationName = value; }

        /// <summary>Backing field for <see cref="Guid" /> property.</summary>
        private string _guid;

        /// <summary>The GUID of the source of replication pair</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Guid { get => this._guid; set => this._guid = value; }

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

        /// <summary>The ID of the replication pair</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? Id { get => this._id; set => this._id = value; }

        /// <summary>Backing field for <see cref="PostFailbackScript" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript _postFailbackScript;

        /// <summary>DR operation scripting information</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IDrOperationScript PostFailbackScript { get => (this._postFailbackScript = this._postFailbackScript ?? new Commvault.Powershell.Models.DrOperationScript()); set => this._postFailbackScript = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptGuestCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptGuestCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PostFailbackScriptGuestCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptGuestCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).GuestCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptGuid { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Guid; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Guid = value ?? null; }

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).OSType = value ?? null; }

        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Path = value ?? null; }

        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PostFailbackScriptReset { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Reset; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Reset = value ?? default(bool); }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptScriptCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptScriptCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PostFailbackScriptScriptCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptScriptCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).ScriptCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Type; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailbackScript).Type = value ?? null; }

        /// <summary>Backing field for <see cref="PostFailoverScript" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript _postFailoverScript;

        /// <summary>DR operation scripting information</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IDrOperationScript PostFailoverScript { get => (this._postFailoverScript = this._postFailoverScript ?? new Commvault.Powershell.Models.DrOperationScript()); set => this._postFailoverScript = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptGuestCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptGuestCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PostFailoverScriptGuestCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptGuestCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).GuestCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptGuid { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Guid; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Guid = value ?? null; }

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).OSType = value ?? null; }

        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Path = value ?? null; }

        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PostFailoverScriptReset { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Reset; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Reset = value ?? default(bool); }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptScriptCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptScriptCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PostFailoverScriptScriptCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptScriptCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).ScriptCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Type; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailoverScript).Type = value ?? null; }

        /// <summary>Backing field for <see cref="PreFailbackScript" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript _preFailbackScript;

        /// <summary>DR operation scripting information</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IDrOperationScript PreFailbackScript { get => (this._preFailbackScript = this._preFailbackScript ?? new Commvault.Powershell.Models.DrOperationScript()); set => this._preFailbackScript = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptGuestCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptGuestCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PreFailbackScriptGuestCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptGuestCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).GuestCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptGuid { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Guid; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Guid = value ?? null; }

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).OSType = value ?? null; }

        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Path = value ?? null; }

        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PreFailbackScriptReset { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Reset; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Reset = value ?? default(bool); }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptScriptCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptScriptCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PreFailbackScriptScriptCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptScriptCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).ScriptCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Type; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailbackScript).Type = value ?? null; }

        /// <summary>Backing field for <see cref="PreFailoverScript" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript _preFailoverScript;

        /// <summary>DR operation scripting information</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IDrOperationScript PreFailoverScript { get => (this._preFailoverScript = this._preFailoverScript ?? new Commvault.Powershell.Models.DrOperationScript()); set => this._preFailoverScript = value; }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptGuestCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptGuestCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PreFailoverScriptGuestCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptGuestCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).GuestCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptGuid { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Guid; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Guid = value ?? null; }

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).OSType = value ?? null; }

        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Path = value ?? null; }

        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? PreFailoverScriptReset { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Reset; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Reset = value ?? default(bool); }

        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptScriptCredentialsCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentialsName = value ?? null; }

        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptScriptCredentialsCredentialsPassword { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentialsPassword; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsCredentialsPassword = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? PreFailoverScriptScriptCredentialsSavedCredentialsId { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentialsId; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentialsId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptScriptCredentialsSavedCredentialsName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentialsName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).ScriptCredentialsSavedCredentialsName = value ?? null; }

        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Type; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailoverScript).Type = value ?? null; }

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

        /// <summary>
        /// The priority of the replication pair for DR operation in failover group. The lower values signify higher priority
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? Priority { get => this._priority; set => this._priority = value; }

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

        /// <summary>The id of the source machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? SourceId { get => this._sourceId; set => this._sourceId = value; }

        /// <summary>Backing field for <see cref="SourceName" /> property.</summary>
        private string _sourceName;

        /// <summary>The name of the source machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SourceName { get => this._sourceName; set => this._sourceName = value; }

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

        }
    }
    /// A replication pair for failover group
    public partial interface IFailoverGroupReplicationPair :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>The copy precedence of replication pair</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The copy precedence of replication pair",
        SerializedName = @"copyPrecedence",
        PossibleTypes = new [] { typeof(long) })]
        long? CopyPrecedence { get; set; }
        /// <summary>The id of the destination machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The id of the destination machine",
        SerializedName = @"destinationId",
        PossibleTypes = new [] { typeof(long) })]
        long? DestinationId { get; set; }
        /// <summary>The name of the destination machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The name of the destination machine",
        SerializedName = @"destinationName",
        PossibleTypes = new [] { typeof(string) })]
        string DestinationName { get; set; }
        /// <summary>The GUID of the source of replication pair</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The GUID of the source of replication pair",
        SerializedName = @"GUID",
        PossibleTypes = new [] { typeof(string) })]
        string Guid { get; set; }
        /// <summary>The ID of the replication pair</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The ID of the replication pair",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? Id { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The path of the script to be executed. Can be local path on VM or UNC path accessible by access node",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PostFailbackScriptReset { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The path of the script to be executed. Can be local path on VM or UNC path accessible by access node",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PostFailoverScriptReset { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The path of the script to be executed. Can be local path on VM or UNC path accessible by access node",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PreFailbackScriptReset { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The path of the script to be executed. Can be local path on VM or UNC path accessible by access node",
        SerializedName = @"path",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PreFailoverScriptReset { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptType { get; set; }
        /// <summary>
        /// The priority of the replication pair for DR operation in failover group. The lower values signify higher priority
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The priority of the replication pair for DR operation in failover group. The lower values signify higher priority",
        SerializedName = @"priority",
        PossibleTypes = new [] { typeof(long) })]
        long? Priority { get; set; }
        /// <summary>The id of the source machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The id of the source machine",
        SerializedName = @"sourceId",
        PossibleTypes = new [] { typeof(long) })]
        long? SourceId { get; set; }
        /// <summary>The name of the source machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The name of the source machine",
        SerializedName = @"sourceName",
        PossibleTypes = new [] { typeof(string) })]
        string SourceName { get; set; }

    }
    /// A replication pair for failover group
    internal partial interface IFailoverGroupReplicationPairInternal

    {
        /// <summary>The copy precedence of replication pair</summary>
        long? CopyPrecedence { get; set; }
        /// <summary>The id of the destination machine</summary>
        long? DestinationId { get; set; }
        /// <summary>The name of the destination machine</summary>
        string DestinationName { get; set; }
        /// <summary>The GUID of the source of replication pair</summary>
        string Guid { get; set; }
        /// <summary>The ID of the replication pair</summary>
        long? Id { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PostFailbackScript { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailbackScriptCredentials { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailbackScriptGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailbackScriptGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailbackScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailbackScriptGuestCredentialsCredentialsPassword { get; set; }

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

        long? PostFailbackScriptGuestCredentialsSavedCredentialsId { get; set; }

        string PostFailbackScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PostFailbackScriptGuid { get; set; }
        /// <summary>OS types</summary>
        string PostFailbackScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        string PostFailbackScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PostFailbackScriptReset { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailbackScriptScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailbackScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailbackScriptScriptCredentialsCredentialsPassword { get; set; }

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

        long? PostFailbackScriptScriptCredentialsSavedCredentialsId { get; set; }

        string PostFailbackScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PostFailbackScriptType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PostFailoverScript { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailoverScriptCredentials { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailoverScriptGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailoverScriptGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailoverScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailoverScriptGuestCredentialsCredentialsPassword { get; set; }

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

        long? PostFailoverScriptGuestCredentialsSavedCredentialsId { get; set; }

        string PostFailoverScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PostFailoverScriptGuid { get; set; }
        /// <summary>OS types</summary>
        string PostFailoverScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        string PostFailoverScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PostFailoverScriptReset { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailoverScriptScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailoverScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailoverScriptScriptCredentialsCredentialsPassword { get; set; }

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

        long? PostFailoverScriptScriptCredentialsSavedCredentialsId { get; set; }

        string PostFailoverScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PostFailoverScriptType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PreFailbackScript { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailbackScriptCredentials { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailbackScriptGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailbackScriptGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailbackScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailbackScriptGuestCredentialsCredentialsPassword { get; set; }

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

        long? PreFailbackScriptGuestCredentialsSavedCredentialsId { get; set; }

        string PreFailbackScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PreFailbackScriptGuid { get; set; }
        /// <summary>OS types</summary>
        string PreFailbackScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        string PreFailbackScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PreFailbackScriptReset { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailbackScriptScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailbackScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailbackScriptScriptCredentialsCredentialsPassword { get; set; }

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

        long? PreFailbackScriptScriptCredentialsSavedCredentialsId { get; set; }

        string PreFailbackScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PreFailbackScriptType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PreFailoverScript { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailoverScriptCredentials { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailoverScriptGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailoverScriptGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailoverScriptGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailoverScriptGuestCredentialsCredentialsPassword { get; set; }

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

        long? PreFailoverScriptGuestCredentialsSavedCredentialsId { get; set; }

        string PreFailoverScriptGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PreFailoverScriptGuid { get; set; }
        /// <summary>OS types</summary>
        string PreFailoverScriptOSType { get; set; }
        /// <summary>
        /// The path of the script to be executed. Can be local path on VM or UNC path accessible by access node
        /// </summary>
        string PreFailoverScriptPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PreFailoverScriptReset { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailoverScriptScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailoverScriptScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailoverScriptScriptCredentialsCredentialsPassword { get; set; }

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

        long? PreFailoverScriptScriptCredentialsSavedCredentialsId { get; set; }

        string PreFailoverScriptScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PreFailoverScriptType { get; set; }
        /// <summary>
        /// The priority of the replication pair for DR operation in failover group. The lower values signify higher priority
        /// </summary>
        long? Priority { get; set; }
        /// <summary>The id of the source machine</summary>
        long? SourceId { get; set; }
        /// <summary>The name of the source machine</summary>
        string SourceName { get; set; }

    }
}