generated/api/Models/RecoveryEntity.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>The payload for the creation of recovery entity</summary>
    public partial class RecoveryEntity :
        Commvault.Powershell.Models.IRecoveryEntity,
        Commvault.Powershell.Models.IRecoveryEntityInternal
    {

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? BlockSysrepForRecovery { get => this._blockSysrepForRecovery; set => this._blockSysrepForRecovery = value; }

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

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

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

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

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

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

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

        /// <summary>Internal Acessors for ExecutionOrder</summary>
        Commvault.Powershell.Models.IRecoveryEntityExecutionInfo Commvault.Powershell.Models.IRecoveryEntityInternal.ExecutionOrder { get => (this._executionOrder = this._executionOrder ?? new Commvault.Powershell.Models.RecoveryEntityExecutionInfo()); set { {_executionOrder = value;} } }

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

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

        /// <summary>Internal Acessors for RecoveryPointDetails</summary>
        Commvault.Powershell.Models.IRecoveryEntityRpDetails Commvault.Powershell.Models.IRecoveryEntityInternal.RecoveryPointDetails { get => (this._recoveryPointDetails = this._recoveryPointDetails ?? new Commvault.Powershell.Models.RecoveryEntityRpDetails()); set { {_recoveryPointDetails = value;} } }

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

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

        /// <summary>Internal Acessors for VirtualMachine</summary>
        Commvault.Powershell.Models.INameGuid Commvault.Powershell.Models.IRecoveryEntityInternal.VirtualMachine { get => (this._virtualMachine = this._virtualMachine ?? new Commvault.Powershell.Models.NameGuid()); set { {_virtualMachine = value;} } }

        /// <summary>Backing field for <see cref="ConnectionDetails" /> property.</summary>
        private Commvault.Powershell.Models.IVMConnectionDetails _connectionDetails;

        /// <summary>VMConnectionDetails</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IVMConnectionDetails ConnectionDetails { get => (this._connectionDetails = this._connectionDetails ?? new Commvault.Powershell.Models.VMConnectionDetails()); set => this._connectionDetails = value; }

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

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

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

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

        /// <summary>Backing field for <see cref="ExecutionOrder" /> property.</summary>
        private Commvault.Powershell.Models.IRecoveryEntityExecutionInfo _executionOrder;

        /// <summary>RecoveryEntityExecutionInfo</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IRecoveryEntityExecutionInfo ExecutionOrder { get => (this._executionOrder = this._executionOrder ?? new Commvault.Powershell.Models.RecoveryEntityExecutionInfo()); set => this._executionOrder = value; }

        /// <summary>Group ID to group similar entities together</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ExecutionOrderGroup { get => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Group; set => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Group = value ?? default(long); }

        /// <summary>Decides the priority of entites within a group</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ExecutionOrderOrder { get => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Order; set => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Order = value ?? default(long); }

        /// <summary>Decides the priority of group execution</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? ExecutionOrderPriority { get => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Priority; set => ((Commvault.Powershell.Models.IRecoveryEntityExecutionInfoInternal)ExecutionOrder).Priority = value ?? default(long); }

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

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

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

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

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

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

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

        /// <summary>Last recovery job Id of the entity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? LastRecoveryJobId { get => this._lastRecoveryJobId; set => this._lastRecoveryJobId = value; }

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

        /// <summary>Name of the recovery entity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._name = value; }

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

        /// <summary>OS types</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string OSType { get => this._oSType; set => this._oSType = value; }

        /// <summary>Backing field for <see cref="PostRecoveryActions" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript[] _postRecoveryActions;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IDrOperationScript[] PostRecoveryActions { get => this._postRecoveryActions; set => this._postRecoveryActions = value; }

        /// <summary>Backing field for <see cref="PreRecoveryActions" /> property.</summary>
        private Commvault.Powershell.Models.IDrOperationScript[] _preRecoveryActions;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IDrOperationScript[] PreRecoveryActions { get => this._preRecoveryActions; set => this._preRecoveryActions = value; }

        /// <summary>Backing field for <see cref="RecoveryConfiguration" /> property.</summary>
        private Commvault.Powershell.Models.IRecoveryConfiguration _recoveryConfiguration;

        /// <summary>RecoveryConfiguration</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IRecoveryConfiguration RecoveryConfiguration { get => (this._recoveryConfiguration = this._recoveryConfiguration ?? new Commvault.Powershell.Models.RecoveryConfiguration()); set => this._recoveryConfiguration = value; }

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

        /// <summary>Reason for last recovery job failure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RecoveryFailureReason { get => this._recoveryFailureReason; set => this._recoveryFailureReason = value; }

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

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

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

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

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

        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? RecoveryPoint { get => this._recoveryPoint; set => this._recoveryPoint = value; }

        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? RecoveryPointDetailEntityRecoveryPoint { get => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).EntityRecoveryPoint; set => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).EntityRecoveryPoint = value ?? default(long); }

        /// <summary>Type of recovery point category that can be selected. Default is Latest</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RecoveryPointDetailEntityRecoveryPointCategory { get => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).EntityRecoveryPointCategory; set => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).EntityRecoveryPointCategory = value ?? null; }

        /// <summary>
        /// Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set
        /// at recovery group level
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RecoveryPointDetailInheritedFrom { get => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).InheritedFrom; set => ((Commvault.Powershell.Models.IRecoveryEntityRpDetailsInternal)RecoveryPointDetails).InheritedFrom = value ?? null; }

        /// <summary>Backing field for <see cref="RecoveryPointDetails" /> property.</summary>
        private Commvault.Powershell.Models.IRecoveryEntityRpDetails _recoveryPointDetails;

        /// <summary>
        /// Contains the information regarding the recovery entity level recoveryPoint selection
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IRecoveryEntityRpDetails RecoveryPointDetails { get => (this._recoveryPointDetails = this._recoveryPointDetails ?? new Commvault.Powershell.Models.RecoveryEntityRpDetails()); set => this._recoveryPointDetails = value; }

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

        /// <summary>Status of recovery entity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RecoveryStatus { get => this._recoveryStatus; set => this._recoveryStatus = value; }

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

        /// <summary>Recovery status not ready category</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RecoveryStatusNotReadyCategory { get => this._recoveryStatusNotReadyCategory; set => this._recoveryStatusNotReadyCategory = value; }

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

        /// <summary>Recovery status not ready reason</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RecoveryStatusNotReadyReason { get => this._recoveryStatusNotReadyReason; set => this._recoveryStatusNotReadyReason = value; }

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

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

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

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

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

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

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

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

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

        /// <summary>Reason for last validation failure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ValidationFailureReason { get => this._validationFailureReason; set => this._validationFailureReason = value; }

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

        /// <summary>Validation status of recovery entity</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ValidationStatus { get => this._validationStatus; set => this._validationStatus = value; }

        /// <summary>Backing field for <see cref="VirtualMachine" /> property.</summary>
        private Commvault.Powershell.Models.INameGuid _virtualMachine;

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.INameGuid VirtualMachine { get => (this._virtualMachine = this._virtualMachine ?? new Commvault.Powershell.Models.NameGuid()); set => this._virtualMachine = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string VirtualMachineGuid { get => ((Commvault.Powershell.Models.INameGuidInternal)VirtualMachine).Guid; set => ((Commvault.Powershell.Models.INameGuidInternal)VirtualMachine).Guid = value ?? null; }

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Workload { get => this._workload; set => this._workload = value; }

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

        }
    }
    /// The payload for the creation of recovery entity
    public partial interface IRecoveryEntity :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? BackupSetId { get; set; }

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string ClientName { get; set; }
        /// <summary>VMConnectionDetails</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VMConnectionDetails",
        SerializedName = @"connectionDetails",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMConnectionDetails) })]
        Commvault.Powershell.Models.IVMConnectionDetails ConnectionDetails { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string EntityName { get; set; }
        /// <summary>Group ID to group similar entities together</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Group ID to group similar entities together",
        SerializedName = @"group",
        PossibleTypes = new [] { typeof(long) })]
        long? ExecutionOrderGroup { get; set; }
        /// <summary>Decides the priority of entites within a group</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Decides the priority of entites within a group",
        SerializedName = @"order",
        PossibleTypes = new [] { typeof(long) })]
        long? ExecutionOrderOrder { get; set; }
        /// <summary>Decides the priority of group execution</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Decides the priority of group execution",
        SerializedName = @"priority",
        PossibleTypes = new [] { typeof(long) })]
        long? ExecutionOrderPriority { get; set; }
        /// <summary>Id of the recovery entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Id of the recovery entity",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? Id { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string InstanceName { get; set; }
        /// <summary>Last recovery job Id of the entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Last recovery job Id of the entity",
        SerializedName = @"lastRecoveryJobId",
        PossibleTypes = new [] { typeof(long) })]
        long? LastRecoveryJobId { get; set; }
        /// <summary>Name of the recovery entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of the recovery entity",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }
        /// <summary>OS types</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"OS types",
        SerializedName = @"osType",
        PossibleTypes = new [] { typeof(string) })]
        string OSType { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"postRecoveryActions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IDrOperationScript) })]
        Commvault.Powershell.Models.IDrOperationScript[] PostRecoveryActions { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"preRecoveryActions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IDrOperationScript) })]
        Commvault.Powershell.Models.IDrOperationScript[] PreRecoveryActions { get; set; }
        /// <summary>RecoveryConfiguration</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"RecoveryConfiguration",
        SerializedName = @"recoveryConfiguration",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IRecoveryConfiguration) })]
        Commvault.Powershell.Models.IRecoveryConfiguration RecoveryConfiguration { get; set; }
        /// <summary>Reason for last recovery job failure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Reason for last recovery job failure",
        SerializedName = @"recoveryFailureReason",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryFailureReason { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryGroupName { get; set; }
        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point",
        SerializedName = @"recoveryPoint",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryPoint { get; set; }
        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point",
        SerializedName = @"entityRecoveryPoint",
        PossibleTypes = new [] { typeof(long) })]
        long? RecoveryPointDetailEntityRecoveryPoint { get; set; }
        /// <summary>Type of recovery point category that can be selected. Default is Latest</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of recovery point category that can be selected. Default is Latest",
        SerializedName = @"entityRecoveryPointCategory",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryPointDetailEntityRecoveryPointCategory { get; set; }
        /// <summary>
        /// Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set
        /// at recovery group level
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set at recovery group level",
        SerializedName = @"inheritedFrom",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryPointDetailInheritedFrom { get; set; }
        /// <summary>Status of recovery entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Status of recovery entity",
        SerializedName = @"recoveryStatus",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryStatus { get; set; }
        /// <summary>Recovery status not ready category</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Recovery status not ready category",
        SerializedName = @"recoveryStatusNotReadyCategory",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryStatusNotReadyCategory { get; set; }
        /// <summary>Recovery status not ready reason</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Recovery status not ready reason",
        SerializedName = @"recoveryStatusNotReadyReason",
        PossibleTypes = new [] { typeof(string) })]
        string RecoveryStatusNotReadyReason { get; set; }

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string VMGroupName { get; set; }
        /// <summary>Reason for last validation failure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Reason for last validation failure",
        SerializedName = @"validationFailureReason",
        PossibleTypes = new [] { typeof(string) })]
        string ValidationFailureReason { get; set; }
        /// <summary>Validation status of recovery entity</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Validation status of recovery entity",
        SerializedName = @"validationStatus",
        PossibleTypes = new [] { typeof(string) })]
        string ValidationStatus { get; set; }

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

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

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

    }
    /// The payload for the creation of recovery entity
    internal partial interface IRecoveryEntityInternal

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

        long? BackupSetId { get; set; }

        string BackupSetName { get; set; }

        bool? BlockSysrepForRecovery { get; set; }

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

        long? ClientId { get; set; }

        string ClientName { get; set; }
        /// <summary>VMConnectionDetails</summary>
        Commvault.Powershell.Models.IVMConnectionDetails ConnectionDetails { get; set; }

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

        long? EntityId { get; set; }

        string EntityName { get; set; }
        /// <summary>RecoveryEntityExecutionInfo</summary>
        Commvault.Powershell.Models.IRecoveryEntityExecutionInfo ExecutionOrder { get; set; }
        /// <summary>Group ID to group similar entities together</summary>
        long? ExecutionOrderGroup { get; set; }
        /// <summary>Decides the priority of entites within a group</summary>
        long? ExecutionOrderOrder { get; set; }
        /// <summary>Decides the priority of group execution</summary>
        long? ExecutionOrderPriority { get; set; }
        /// <summary>Id of the recovery entity</summary>
        long? Id { get; set; }

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

        long? InstanceId { get; set; }

        string InstanceName { get; set; }
        /// <summary>Last recovery job Id of the entity</summary>
        long? LastRecoveryJobId { get; set; }
        /// <summary>Name of the recovery entity</summary>
        string Name { get; set; }
        /// <summary>OS types</summary>
        string OSType { get; set; }

        Commvault.Powershell.Models.IDrOperationScript[] PostRecoveryActions { get; set; }

        Commvault.Powershell.Models.IDrOperationScript[] PreRecoveryActions { get; set; }
        /// <summary>RecoveryConfiguration</summary>
        Commvault.Powershell.Models.IRecoveryConfiguration RecoveryConfiguration { get; set; }
        /// <summary>Reason for last recovery job failure</summary>
        string RecoveryFailureReason { get; set; }

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

        long? RecoveryGroupId { get; set; }

        string RecoveryGroupName { get; set; }
        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        long? RecoveryPoint { get; set; }
        /// <summary>
        /// Timestamp for entity restore in case of disaster, default value is 0 as latest recovery point
        /// </summary>
        long? RecoveryPointDetailEntityRecoveryPoint { get; set; }
        /// <summary>Type of recovery point category that can be selected. Default is Latest</summary>
        string RecoveryPointDetailEntityRecoveryPointCategory { get; set; }
        /// <summary>
        /// Describes from where the recovery point is inherited from. If not provided, recovery point will be used as if it is set
        /// at recovery group level
        /// </summary>
        string RecoveryPointDetailInheritedFrom { get; set; }
        /// <summary>
        /// Contains the information regarding the recovery entity level recoveryPoint selection
        /// </summary>
        Commvault.Powershell.Models.IRecoveryEntityRpDetails RecoveryPointDetails { get; set; }
        /// <summary>Status of recovery entity</summary>
        string RecoveryStatus { get; set; }
        /// <summary>Recovery status not ready category</summary>
        string RecoveryStatusNotReadyCategory { get; set; }
        /// <summary>Recovery status not ready reason</summary>
        string RecoveryStatusNotReadyReason { get; set; }

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

        long? TargetId { get; set; }

        string TargetName { get; set; }

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

        long? VMGroupId { get; set; }

        string VMGroupName { get; set; }
        /// <summary>Reason for last validation failure</summary>
        string ValidationFailureReason { get; set; }
        /// <summary>Validation status of recovery entity</summary>
        string ValidationStatus { get; set; }

        Commvault.Powershell.Models.INameGuid VirtualMachine { get; set; }

        string VirtualMachineGuid { get; set; }

        string VirtualMachineName { get; set; }

        string Workload { get; set; }

    }
}