generated/api/Models/VMGroupRestoreRequest.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>VM or VMGroup restore request body</summary>
    public partial class VMGroupRestoreRequest :
        Commvault.Powershell.Models.IVMGroupRestoreRequest,
        Commvault.Powershell.Models.IVMGroupRestoreRequestInternal
    {

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

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

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

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

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

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

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

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

        /// <summary>Adds prefix for VM display name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureNamePrefix { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureNamePrefix; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureNamePrefix = value ?? null; }

        /// <summary>Adds suffix for VM display name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureNameSuffix { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureNameSuffix; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureNameSuffix = value ?? null; }

        /// <summary>List of Azure VMs that are to be restored</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IAzureVMInfo[] AzureVMInfoList { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureVMInfoList; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).AzureVMInfoList = value ?? null /* arrayOf */; }

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

        /// <summary>
        /// Backup source information from where you want to restore. 0 (Automatic), 1 (Snap Copy), 2 (Primary), 3 to N (Aux Copy)
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? BackupSource { get => this._backupSource; set => this._backupSource = value; }

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

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

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

        /// <summary>Internal Acessors for VMDestinationInfo</summary>
        Commvault.Powershell.Models.IVMDestinationInfo Commvault.Powershell.Models.IVMGroupRestoreRequestInternal.VMDestinationInfo { get => (this._vMDestinationInfo = this._vMDestinationInfo ?? new Commvault.Powershell.Models.VMDestinationInfo()); set { {_vMDestinationInfo = value;} } }

        /// <summary>Internal Acessors for VMDestinationInfoAzure</summary>
        Commvault.Powershell.Models.IAzureDestinationInfo Commvault.Powershell.Models.IVMGroupRestoreRequestInternal.VMDestinationInfoAzure { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).Azure; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).Azure = value; }

        /// <summary>Internal Acessors for VMDestinationInfoGoogleCloud</summary>
        Commvault.Powershell.Models.IGoogleCloudDestinationInfo Commvault.Powershell.Models.IVMGroupRestoreRequestInternal.VMDestinationInfoGoogleCloud { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloud; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloud = value; }

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

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

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

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

        /// <summary>Adds prefix for VM display name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GoogleCloudNamePrefix { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudNamePrefix; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudNamePrefix = value ?? null; }

        /// <summary>Adds suffix for VM display name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GoogleCloudNameSuffix { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudNameSuffix; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudNameSuffix = value ?? null; }

        /// <summary>List of Google Cloud VMs that are to be restored</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IGoogleCloudVMInfo[] GoogleCloudVMInfoList { get => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudVMInfoList; set => ((Commvault.Powershell.Models.IVMDestinationInfoInternal)VMDestinationInfo).GoogleCloudVMInfoList = value ?? null /* arrayOf */; }

        /// <summary>Backing field for <see cref="InPlaceRestore" /> property.</summary>
        private bool _inPlaceRestore;

        /// <summary>Flag to set if restore is in-place or out-of-place. Defaults to false.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool InPlaceRestore { get => this._inPlaceRestore; set => this._inPlaceRestore = value; }

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

        /// <summary>Enable email notificaiton for job status. Defaults to false.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? NotifyOnJobCompletion { get => this._notifyOnJobCompletion; set => this._notifyOnJobCompletion = value; }

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

        /// <summary>Unconditionally overwrite VM during restore. Defaults to false.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? OverwriteVM { get => this._overwriteVM; set => this._overwriteVM = value; }

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

        /// <summary>Turn ON virtual machine after restore. Defaults to false.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? PowerOnVMAfterRestore { get => this._powerOnVMAfterRestore; set => this._powerOnVMAfterRestore = value; }

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

        /// <summary>Type of restore for virtual machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string RestoreFlavour { get => this._restoreFlavour; set => this._restoreFlavour = value; }

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

        /// <summary>
        /// Reuse the existing VM client instance of creating new one after restore. Defaults to true for inplace restore and false
        /// for out of place restore.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? ReuseVMClient { get => this._reuseVMClient; set => this._reuseVMClient = value; }

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

        /// <summary>Backup transport modes enum</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string TransportMode { get => this._transportMode; set => this._transportMode = value; }

        /// <summary>Backing field for <see cref="VMDestinationInfo" /> property.</summary>
        private Commvault.Powershell.Models.IVMDestinationInfo _vMDestinationInfo;

        /// <summary>Destination informantion for the VM to restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMDestinationInfo VMDestinationInfo { get => (this._vMDestinationInfo = this._vMDestinationInfo ?? new Commvault.Powershell.Models.VMDestinationInfo()); set => this._vMDestinationInfo = value; }

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

        }
    }
    /// VM or VMGroup restore request body
    public partial interface IVMGroupRestoreRequest :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(long) })]
        long? AccessNodeGroupId { get; set; }

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string AccessNodeName { get; set; }
        /// <summary>Adds prefix for VM display name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Adds prefix for VM display name",
        SerializedName = @"namePrefix",
        PossibleTypes = new [] { typeof(string) })]
        string AzureNamePrefix { get; set; }
        /// <summary>Adds suffix for VM display name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Adds suffix for VM display name",
        SerializedName = @"nameSuffix",
        PossibleTypes = new [] { typeof(string) })]
        string AzureNameSuffix { get; set; }
        /// <summary>List of Azure VMs that are to be restored</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of Azure VMs that are to be restored",
        SerializedName = @"azureVMInfoList",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAzureVMInfo) })]
        Commvault.Powershell.Models.IAzureVMInfo[] AzureVMInfoList { get; set; }
        /// <summary>
        /// Backup source information from where you want to restore. 0 (Automatic), 1 (Snap Copy), 2 (Primary), 3 to N (Aux Copy)
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Backup source information from where you want to restore. 0 (Automatic), 1 (Snap Copy), 2 (Primary), 3 to N (Aux Copy)",
        SerializedName = @"backupSource",
        PossibleTypes = new [] { typeof(long) })]
        long? BackupSource { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string DestinationName { get; set; }
        /// <summary>Adds prefix for VM display name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Adds prefix for VM display name",
        SerializedName = @"namePrefix",
        PossibleTypes = new [] { typeof(string) })]
        string GoogleCloudNamePrefix { get; set; }
        /// <summary>Adds suffix for VM display name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Adds suffix for VM display name",
        SerializedName = @"nameSuffix",
        PossibleTypes = new [] { typeof(string) })]
        string GoogleCloudNameSuffix { get; set; }
        /// <summary>List of Google Cloud VMs that are to be restored</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of Google Cloud VMs that are to be restored",
        SerializedName = @"googleCloudVMInfoList",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IGoogleCloudVMInfo) })]
        Commvault.Powershell.Models.IGoogleCloudVMInfo[] GoogleCloudVMInfoList { get; set; }
        /// <summary>Flag to set if restore is in-place or out-of-place. Defaults to false.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = true,
        ReadOnly = false,
        Description = @"Flag to set if restore is in-place or out-of-place. Defaults to false.",
        SerializedName = @"inPlaceRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool InPlaceRestore { get; set; }
        /// <summary>Enable email notificaiton for job status. Defaults to false.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Enable email notificaiton for job status. Defaults to false.",
        SerializedName = @"notifyOnJobCompletion",
        PossibleTypes = new [] { typeof(bool) })]
        bool? NotifyOnJobCompletion { get; set; }
        /// <summary>Unconditionally overwrite VM during restore. Defaults to false.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Unconditionally overwrite VM during restore. Defaults to false.",
        SerializedName = @"overwriteVM",
        PossibleTypes = new [] { typeof(bool) })]
        bool? OverwriteVM { get; set; }
        /// <summary>Turn ON virtual machine after restore. Defaults to false.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Turn ON virtual machine after restore. Defaults to false.",
        SerializedName = @"powerOnVmAfterRestore",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PowerOnVMAfterRestore { get; set; }
        /// <summary>Type of restore for virtual machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of restore for virtual machine",
        SerializedName = @"restoreFlavour",
        PossibleTypes = new [] { typeof(string) })]
        string RestoreFlavour { get; set; }
        /// <summary>
        /// Reuse the existing VM client instance of creating new one after restore. Defaults to true for inplace restore and false
        /// for out of place restore.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Reuse the existing VM client instance of creating new one after restore. Defaults to true for inplace restore and false for out of place restore.",
        SerializedName = @"reuseVMClient",
        PossibleTypes = new [] { typeof(bool) })]
        bool? ReuseVMClient { get; set; }
        /// <summary>Backup transport modes enum</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Backup transport modes enum",
        SerializedName = @"transportMode",
        PossibleTypes = new [] { typeof(string) })]
        string TransportMode { get; set; }

    }
    /// VM or VMGroup restore request body
    internal partial interface IVMGroupRestoreRequestInternal

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

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

        long? AccessNodeGroupId { get; set; }

        string AccessNodeGroupName { get; set; }

        long? AccessNodeId { get; set; }

        string AccessNodeName { get; set; }
        /// <summary>Adds prefix for VM display name</summary>
        string AzureNamePrefix { get; set; }
        /// <summary>Adds suffix for VM display name</summary>
        string AzureNameSuffix { get; set; }
        /// <summary>List of Azure VMs that are to be restored</summary>
        Commvault.Powershell.Models.IAzureVMInfo[] AzureVMInfoList { get; set; }
        /// <summary>
        /// Backup source information from where you want to restore. 0 (Automatic), 1 (Snap Copy), 2 (Primary), 3 to N (Aux Copy)
        /// </summary>
        long? BackupSource { get; set; }

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

        long? DestinationId { get; set; }

        string DestinationName { get; set; }
        /// <summary>Adds prefix for VM display name</summary>
        string GoogleCloudNamePrefix { get; set; }
        /// <summary>Adds suffix for VM display name</summary>
        string GoogleCloudNameSuffix { get; set; }
        /// <summary>List of Google Cloud VMs that are to be restored</summary>
        Commvault.Powershell.Models.IGoogleCloudVMInfo[] GoogleCloudVMInfoList { get; set; }
        /// <summary>Flag to set if restore is in-place or out-of-place. Defaults to false.</summary>
        bool InPlaceRestore { get; set; }
        /// <summary>Enable email notificaiton for job status. Defaults to false.</summary>
        bool? NotifyOnJobCompletion { get; set; }
        /// <summary>Unconditionally overwrite VM during restore. Defaults to false.</summary>
        bool? OverwriteVM { get; set; }
        /// <summary>Turn ON virtual machine after restore. Defaults to false.</summary>
        bool? PowerOnVMAfterRestore { get; set; }
        /// <summary>Type of restore for virtual machine</summary>
        string RestoreFlavour { get; set; }
        /// <summary>
        /// Reuse the existing VM client instance of creating new one after restore. Defaults to true for inplace restore and false
        /// for out of place restore.
        /// </summary>
        bool? ReuseVMClient { get; set; }
        /// <summary>Backup transport modes enum</summary>
        string TransportMode { get; set; }
        /// <summary>Destination informantion for the VM to restore</summary>
        Commvault.Powershell.Models.IVMDestinationInfo VMDestinationInfo { get; set; }
        /// <summary>Destination information for the Azure VMs to restore</summary>
        Commvault.Powershell.Models.IAzureDestinationInfo VMDestinationInfoAzure { get; set; }
        /// <summary>Destination information for the GCP VMs to restore</summary>
        Commvault.Powershell.Models.IGoogleCloudDestinationInfo VMDestinationInfoGoogleCloud { get; set; }

    }
}