generated/api/Models/ReplicationGroupScript.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
// 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>Pre/post failover and failback scripts at group level</summary>
    public partial class ReplicationGroupScript :
        Commvault.Powershell.Models.IReplicationGroupScript,
        Commvault.Powershell.Models.IReplicationGroupScriptInternal
    {

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

        /// <summary>Internal Acessors for PostFailbackGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailbackGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailbackGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailbackGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).GuestCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PostFailbackScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailbackScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailbackScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailbackScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PostFailoverGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailoverGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailoverGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailoverGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).GuestCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PostFailoverScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailoverScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PostFailoverScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PostFailoverScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PreFailbackGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailbackGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailbackGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailbackGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).GuestCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PreFailbackScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailbackScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailbackScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailbackScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PreFailoverGuestCredentials</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailoverGuestCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverGuestCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailoverGuestCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverGuestCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailoverGuestCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).GuestCredentialsSavedCredentials = value; }

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

        /// <summary>Internal Acessors for PreFailoverScriptCredentialsCredentials</summary>
        Commvault.Powershell.Models.IUserNamePassword Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailoverScriptCredentialsCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptCredentialsCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptCredentialsCredentials = value; }

        /// <summary>Internal Acessors for PreFailoverScriptCredentialsSavedCredentials</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IReplicationGroupScriptInternal.PreFailoverScriptCredentialsSavedCredentials { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptCredentialsSavedCredentials; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptCredentialsSavedCredentials = value; }

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

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

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

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

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

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

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

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).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 PostFailbackPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).Path = value ?? null; }

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

        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptContent { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptContent; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptContent = value ?? null; }

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

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

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

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

        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailbackScriptName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailback).ScriptName = value ?? null; }

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

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

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

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

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

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

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

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

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).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 PostFailoverPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).Path = value ?? null; }

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

        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptContent { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptContent; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptContent = value ?? null; }

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

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

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

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

        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PostFailoverScriptName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PostFailover).ScriptName = value ?? null; }

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

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

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

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

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

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

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

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

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).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 PreFailbackPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).Path = value ?? null; }

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

        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptContent { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptContent; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptContent = value ?? null; }

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

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

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

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

        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailbackScriptName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailback).ScriptName = value ?? null; }

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

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

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

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

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

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

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

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

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverOSType { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).OSType; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).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 PreFailoverPath { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).Path; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).Path = value ?? null; }

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

        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptContent { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptContent; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptContent = value ?? null; }

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

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

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

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

        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string PreFailoverScriptName { get => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptName; set => ((Commvault.Powershell.Models.IDrOperationScriptInternal)PreFailover).ScriptName = value ?? null; }

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

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

        }
    }
    /// Pre/post failover and failback scripts at group level
    public partial interface IReplicationGroupScript :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackOSType { 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,
        Read = true,
        Create = true,
        Update = true,
        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 PostFailbackPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PostFailbackReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Content of the script to be executed",
        SerializedName = @"scriptContent",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptContent { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Name of the script",
        SerializedName = @"scriptName",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailbackType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverOSType { 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,
        Read = true,
        Create = true,
        Update = true,
        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 PostFailoverPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PostFailoverReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Content of the script to be executed",
        SerializedName = @"scriptContent",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptContent { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Name of the script",
        SerializedName = @"scriptName",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PostFailoverType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackOSType { 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,
        Read = true,
        Create = true,
        Update = true,
        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 PreFailbackPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PreFailbackReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Content of the script to be executed",
        SerializedName = @"scriptContent",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptContent { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Name of the script",
        SerializedName = @"scriptName",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailbackType { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverGuestCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Unique script identifier string",
        SerializedName = @"guid",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverGuid { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverOSType { 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,
        Read = true,
        Create = true,
        Update = true,
        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 PreFailoverPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"On set to true, resets the script to empty",
        SerializedName = @"reset",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PreFailoverReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Content of the script to be executed",
        SerializedName = @"scriptContent",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptContent { get; set; }
        /// <summary>username to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"username to access the network path",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"password to access the network path",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptCredentialsCredentialsPassword { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Name of the script",
        SerializedName = @"scriptName",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"The type of path being used for DR operation script",
        SerializedName = @"type",
        PossibleTypes = new [] { typeof(string) })]
        string PreFailoverType { get; set; }

    }
    /// Pre/post failover and failback scripts at group level
    internal partial interface IReplicationGroupScriptInternal

    {
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PostFailback { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailbackGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailbackGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailbackGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailbackGuestCredentialsCredentialsPassword { get; set; }

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

        long? PostFailbackGuestCredentialsSavedCredentialsId { get; set; }

        string PostFailbackGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PostFailbackGuid { get; set; }
        /// <summary>OS types</summary>
        string PostFailbackOSType { 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 PostFailbackPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PostFailbackReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        string PostFailbackScriptContent { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailbackScriptCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailbackScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailbackScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailbackScriptCredentialsCredentialsPassword { get; set; }

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

        long? PostFailbackScriptCredentialsSavedCredentialsId { get; set; }

        string PostFailbackScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        string PostFailbackScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PostFailbackType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PostFailover { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailoverGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailoverGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailoverGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailoverGuestCredentialsCredentialsPassword { get; set; }

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

        long? PostFailoverGuestCredentialsSavedCredentialsId { get; set; }

        string PostFailoverGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PostFailoverGuid { get; set; }
        /// <summary>OS types</summary>
        string PostFailoverOSType { 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 PostFailoverPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PostFailoverReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        string PostFailoverScriptContent { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PostFailoverScriptCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PostFailoverScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PostFailoverScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PostFailoverScriptCredentialsCredentialsPassword { get; set; }

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

        long? PostFailoverScriptCredentialsSavedCredentialsId { get; set; }

        string PostFailoverScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        string PostFailoverScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PostFailoverType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PreFailback { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailbackGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailbackGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailbackGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailbackGuestCredentialsCredentialsPassword { get; set; }

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

        long? PreFailbackGuestCredentialsSavedCredentialsId { get; set; }

        string PreFailbackGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PreFailbackGuid { get; set; }
        /// <summary>OS types</summary>
        string PreFailbackOSType { 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 PreFailbackPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PreFailbackReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        string PreFailbackScriptContent { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailbackScriptCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailbackScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailbackScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailbackScriptCredentialsCredentialsPassword { get; set; }

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

        long? PreFailbackScriptCredentialsSavedCredentialsId { get; set; }

        string PreFailbackScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        string PreFailbackScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PreFailbackType { get; set; }
        /// <summary>DR operation scripting information</summary>
        Commvault.Powershell.Models.IDrOperationScript PreFailover { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailoverGuestCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailoverGuestCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailoverGuestCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailoverGuestCredentialsCredentialsPassword { get; set; }

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

        long? PreFailoverGuestCredentialsSavedCredentialsId { get; set; }

        string PreFailoverGuestCredentialsSavedCredentialsName { get; set; }
        /// <summary>Unique script identifier string</summary>
        string PreFailoverGuid { get; set; }
        /// <summary>OS types</summary>
        string PreFailoverOSType { 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 PreFailoverPath { get; set; }
        /// <summary>On set to true, resets the script to empty</summary>
        bool? PreFailoverReset { get; set; }
        /// <summary>Content of the script to be executed</summary>
        string PreFailoverScriptContent { get; set; }
        /// <summary>guestCredentialInfo</summary>
        Commvault.Powershell.Models.IGuestCredentialInfo PreFailoverScriptCredentials { get; set; }

        Commvault.Powershell.Models.IUserNamePassword PreFailoverScriptCredentialsCredentials { get; set; }
        /// <summary>username to access the network path</summary>
        string PreFailoverScriptCredentialsCredentialsName { get; set; }
        /// <summary>password to access the network path</summary>
        string PreFailoverScriptCredentialsCredentialsPassword { get; set; }

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

        long? PreFailoverScriptCredentialsSavedCredentialsId { get; set; }

        string PreFailoverScriptCredentialsSavedCredentialsName { get; set; }
        /// <summary>Name of the script</summary>
        string PreFailoverScriptName { get; set; }
        /// <summary>The type of path being used for DR operation script</summary>
        string PreFailoverType { get; set; }

    }
}