generated/api/Models/RecoveryConfiguration.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>RecoveryConfiguration</summary>
    public partial class RecoveryConfiguration :
        Commvault.Powershell.Models.IRecoveryConfiguration,
        Commvault.Powershell.Models.IRecoveryConfigurationInternal
    {

        /// <summary>Backing field for <see cref="AdvancedOptions" /> property.</summary>
        private Commvault.Powershell.Models.IAdvancedRecoveryConfiguration _advancedOptions;

        /// <summary>AdvancedRecoveryConfiguration</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IAdvancedRecoveryConfiguration AdvancedOptions { get => (this._advancedOptions = this._advancedOptions ?? new Commvault.Powershell.Models.AdvancedRecoveryConfiguration()); set => this._advancedOptions = value; }

        /// <summary>Create a public IP.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? AzureCreatePublicIP { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureCreatePublicIP; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureCreatePublicIP = value ?? default(bool); }

        /// <summary>Select this option to deploy a VM only when a failover operation is requested</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? AzureDeployVMOnlyDuringfailover { get => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).AzureDeployVMOnlyDuringfailover; set => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).AzureDeployVMOnlyDuringfailover = value ?? default(bool); }

        /// <summary>Destination VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureDestinationVM { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureDestinationVM; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureDestinationVM = value ?? null; }

        /// <summary>Type of the disk</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureDiskType { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureDiskType; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureDiskType = value ?? null; }

        /// <summary>Replication options for Azure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IOverrideReplicationOptionsAzure AzureOverrideReplicationOptions { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureOverrideReplicationOptions; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureOverrideReplicationOptions = value ?? null /* model class */; }

        /// <summary>region of the VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureRegion { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureRegion; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureRegion = value ?? null; }

        /// <summary>Resource group in which the converted virtual machine should be created.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureResourceGroup { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureResourceGroup; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureResourceGroup = value ?? null; }

        /// <summary>Restore the VM as a managed disk for the destination VMs.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? AzureRestoreAsManagedVM { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureRestoreAsManagedVM; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureRestoreAsManagedVM = value ?? default(bool); }

        /// <summary>Source VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureSourceVM { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureSourceVM; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureSourceVM = value ?? null; }

        /// <summary>GUID of the source VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureSourceVMGuid { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureSourceVMGuid; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureSourceVMGuid = value ?? null; }

        /// <summary>Azure Standard or Premium general-purpose storage account.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureStorageAccount { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureStorageAccount; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureStorageAccount = value ?? null; }

        /// <summary>Vm size to be used during the test failover operation</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureTestFailoverVMSize { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureTestFailoverVMSize; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureTestFailoverVMSize = value ?? null; }

        /// <summary>
        /// This will replace the instance at the destination if the instance with the same name already exists.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? AzureUnconditionalOverwrite { get => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).AzureUnconditionalOverwrite; set => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).AzureUnconditionalOverwrite = value ?? default(bool); }

        /// <summary>VM size</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureVMSize { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureVMSize; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).AzureVMSize = value ?? null; }

        /// <summary>Internal Acessors for AdvancedOptionAzure</summary>
        Commvault.Powershell.Models.IReplicationGroupAdvOptionsAzure Commvault.Powershell.Models.IRecoveryConfigurationInternal.AdvancedOptionAzure { get => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).Azure; set => ((Commvault.Powershell.Models.IAdvancedRecoveryConfigurationInternal)AdvancedOptions).Azure = value; }

        /// <summary>Internal Acessors for AdvancedOptions</summary>
        Commvault.Powershell.Models.IAdvancedRecoveryConfiguration Commvault.Powershell.Models.IRecoveryConfigurationInternal.AdvancedOptions { get => (this._advancedOptions = this._advancedOptions ?? new Commvault.Powershell.Models.AdvancedRecoveryConfiguration()); set { {_advancedOptions = value;} } }

        /// <summary>Internal Acessors for Configuration</summary>
        Commvault.Powershell.Models.IVMRecoveryConfiguration Commvault.Powershell.Models.IRecoveryConfigurationInternal.Configuration { get => (this._configuration = this._configuration ?? new Commvault.Powershell.Models.VMRecoveryConfiguration()); set { {_configuration = value;} } }

        /// <summary>Internal Acessors for ConfigurationAzure</summary>
        Commvault.Powershell.Models.IReplicationConfigurationAzure Commvault.Powershell.Models.IRecoveryConfigurationInternal.ConfigurationAzure { get => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).Azure; set => ((Commvault.Powershell.Models.IVMRecoveryConfigurationInternal)Configuration).Azure = value; }

        /// <summary>Internal Acessors for HardwareConfiguration</summary>
        Commvault.Powershell.Models.IHardwareConfiguration Commvault.Powershell.Models.IRecoveryConfigurationInternal.HardwareConfiguration { get => (this._hardwareConfiguration = this._hardwareConfiguration ?? new Commvault.Powershell.Models.HardwareConfiguration()); set { {_hardwareConfiguration = value;} } }

        /// <summary>Internal Acessors for HardwareConfigurationSystemDiskConfiguration</summary>
        Commvault.Powershell.Models.IDiskConfiguration Commvault.Powershell.Models.IRecoveryConfigurationInternal.HardwareConfigurationSystemDiskConfiguration { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfiguration; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfiguration = value; }

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

        /// <summary>Backing field for <see cref="Configuration" /> property.</summary>
        private Commvault.Powershell.Models.IVMRecoveryConfiguration _configuration;

        /// <summary>VMRecoveryConfiguration</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IVMRecoveryConfiguration Configuration { get => (this._configuration = this._configuration ?? new Commvault.Powershell.Models.VMRecoveryConfiguration()); set => this._configuration = value; }

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

        /// <summary>Copy precedence for the copy used for the restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public long? CopyPrecedence { get => this._copyPrecedence; set => this._copyPrecedence = value; }

        /// <summary>Backing field for <see cref="HardwareConfiguration" /> property.</summary>
        private Commvault.Powershell.Models.IHardwareConfiguration _hardwareConfiguration;

        /// <summary>HardwareConfiguration</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IHardwareConfiguration HardwareConfiguration { get => (this._hardwareConfiguration = this._hardwareConfiguration ?? new Commvault.Powershell.Models.HardwareConfiguration()); set => this._hardwareConfiguration = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IDiskConfiguration[] HardwareConfigurationDataDiskConfiguration { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).DataDiskConfiguration; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).DataDiskConfiguration = value ?? null /* arrayOf */; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public Commvault.Powershell.Models.IVolumeConfiguration[] HardwareConfigurationVolumeConfiguration { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).VolumeConfiguration; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).VolumeConfiguration = value ?? null /* arrayOf */; }

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

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

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

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

        /// <summary>Disk size in bytes</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? SystemDiskConfigurationDiskSize { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationDiskSize; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationDiskSize = value ?? default(long); }

        /// <summary>Type of disk controller</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SystemDiskConfigurationDiskType { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationDiskType; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationDiskType = value ?? null; }

        /// <summary>Name of the disk</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SystemDiskConfigurationName { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationName; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationName = value ?? null; }

        /// <summary>Disk provisioning type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string SystemDiskConfigurationProvisioningType { get => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationProvisioningType; set => ((Commvault.Powershell.Models.IHardwareConfigurationInternal)HardwareConfiguration).SystemDiskConfigurationProvisioningType = value ?? null; }

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

        }
    }
    /// RecoveryConfiguration
    public partial interface IRecoveryConfiguration :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Create a public IP.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Create a public IP.",
        SerializedName = @"createPublicIP",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AzureCreatePublicIP { get; set; }
        /// <summary>Select this option to deploy a VM only when a failover operation is requested</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Select this option to deploy a VM only when a failover operation is requested",
        SerializedName = @"deployVmOnlyDuringfailover",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AzureDeployVMOnlyDuringfailover { get; set; }
        /// <summary>Destination VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Destination VM",
        SerializedName = @"destinationVM",
        PossibleTypes = new [] { typeof(string) })]
        string AzureDestinationVM { get; set; }
        /// <summary>Type of the disk</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of the disk",
        SerializedName = @"diskType",
        PossibleTypes = new [] { typeof(string) })]
        string AzureDiskType { get; set; }
        /// <summary>Replication options for Azure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Replication options for Azure",
        SerializedName = @"overrideReplicationOptions",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IOverrideReplicationOptionsAzure) })]
        Commvault.Powershell.Models.IOverrideReplicationOptionsAzure AzureOverrideReplicationOptions { get; set; }
        /// <summary>region of the VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"region of the VM",
        SerializedName = @"region",
        PossibleTypes = new [] { typeof(string) })]
        string AzureRegion { get; set; }
        /// <summary>Resource group in which the converted virtual machine should be created.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Resource group in which the converted virtual machine should be created.",
        SerializedName = @"resourceGroup",
        PossibleTypes = new [] { typeof(string) })]
        string AzureResourceGroup { get; set; }
        /// <summary>Restore the VM as a managed disk for the destination VMs.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Restore the VM as a managed disk for the destination VMs.",
        SerializedName = @"restoreAsManagedVm",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AzureRestoreAsManagedVM { get; set; }
        /// <summary>Source VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Source VM",
        SerializedName = @"sourceVM",
        PossibleTypes = new [] { typeof(string) })]
        string AzureSourceVM { get; set; }
        /// <summary>GUID of the source VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"GUID of the source VM",
        SerializedName = @"sourceVMGuid",
        PossibleTypes = new [] { typeof(string) })]
        string AzureSourceVMGuid { get; set; }
        /// <summary>Azure Standard or Premium general-purpose storage account.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure Standard or Premium general-purpose storage account.",
        SerializedName = @"storageAccount",
        PossibleTypes = new [] { typeof(string) })]
        string AzureStorageAccount { get; set; }
        /// <summary>Vm size to be used during the test failover operation</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Vm size to be used during the test failover operation",
        SerializedName = @"testFailoverVmSize",
        PossibleTypes = new [] { typeof(string) })]
        string AzureTestFailoverVMSize { get; set; }
        /// <summary>
        /// This will replace the instance at the destination if the instance with the same name already exists.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"This will replace the instance at the destination if the instance with the same name already exists.",
        SerializedName = @"unconditionalOverwrite",
        PossibleTypes = new [] { typeof(bool) })]
        bool? AzureUnconditionalOverwrite { get; set; }
        /// <summary>VM size</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VM size",
        SerializedName = @"vmSize",
        PossibleTypes = new [] { typeof(string) })]
        string AzureVMSize { get; set; }
        /// <summary>Copy precedence for the copy used for the restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Copy precedence for the copy used for the restore",
        SerializedName = @"copyPrecedence",
        PossibleTypes = new [] { typeof(long) })]
        long? CopyPrecedence { get; set; }

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

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string MediaAgentName { get; set; }
        /// <summary>Disk size in bytes</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Disk size in bytes",
        SerializedName = @"diskSize",
        PossibleTypes = new [] { typeof(long) })]
        long? SystemDiskConfigurationDiskSize { get; set; }
        /// <summary>Type of disk controller</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Type of disk controller",
        SerializedName = @"diskType",
        PossibleTypes = new [] { typeof(string) })]
        string SystemDiskConfigurationDiskType { get; set; }
        /// <summary>Name of the disk</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of the disk",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string SystemDiskConfigurationName { get; set; }
        /// <summary>Disk provisioning type</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Disk provisioning type",
        SerializedName = @"provisioningType",
        PossibleTypes = new [] { typeof(string) })]
        string SystemDiskConfigurationProvisioningType { get; set; }

    }
    /// RecoveryConfiguration
    internal partial interface IRecoveryConfigurationInternal

    {
        /// <summary>Advanced options for Azure replication group</summary>
        Commvault.Powershell.Models.IReplicationGroupAdvOptionsAzure AdvancedOptionAzure { get; set; }
        /// <summary>AdvancedRecoveryConfiguration</summary>
        Commvault.Powershell.Models.IAdvancedRecoveryConfiguration AdvancedOptions { get; set; }
        /// <summary>Create a public IP.</summary>
        bool? AzureCreatePublicIP { get; set; }
        /// <summary>Select this option to deploy a VM only when a failover operation is requested</summary>
        bool? AzureDeployVMOnlyDuringfailover { get; set; }
        /// <summary>Destination VM</summary>
        string AzureDestinationVM { get; set; }
        /// <summary>Type of the disk</summary>
        string AzureDiskType { get; set; }
        /// <summary>Replication options for Azure</summary>
        Commvault.Powershell.Models.IOverrideReplicationOptionsAzure AzureOverrideReplicationOptions { get; set; }
        /// <summary>region of the VM</summary>
        string AzureRegion { get; set; }
        /// <summary>Resource group in which the converted virtual machine should be created.</summary>
        string AzureResourceGroup { get; set; }
        /// <summary>Restore the VM as a managed disk for the destination VMs.</summary>
        bool? AzureRestoreAsManagedVM { get; set; }
        /// <summary>Source VM</summary>
        string AzureSourceVM { get; set; }
        /// <summary>GUID of the source VM</summary>
        string AzureSourceVMGuid { get; set; }
        /// <summary>Azure Standard or Premium general-purpose storage account.</summary>
        string AzureStorageAccount { get; set; }
        /// <summary>Vm size to be used during the test failover operation</summary>
        string AzureTestFailoverVMSize { get; set; }
        /// <summary>
        /// This will replace the instance at the destination if the instance with the same name already exists.
        /// </summary>
        bool? AzureUnconditionalOverwrite { get; set; }
        /// <summary>VM size</summary>
        string AzureVMSize { get; set; }
        /// <summary>VMRecoveryConfiguration</summary>
        Commvault.Powershell.Models.IVMRecoveryConfiguration Configuration { get; set; }
        /// <summary>Replication configuration for Azure</summary>
        Commvault.Powershell.Models.IReplicationConfigurationAzure ConfigurationAzure { get; set; }
        /// <summary>Copy precedence for the copy used for the restore</summary>
        long? CopyPrecedence { get; set; }
        /// <summary>HardwareConfiguration</summary>
        Commvault.Powershell.Models.IHardwareConfiguration HardwareConfiguration { get; set; }

        Commvault.Powershell.Models.IDiskConfiguration[] HardwareConfigurationDataDiskConfiguration { get; set; }
        /// <summary>DiskConfiguration</summary>
        Commvault.Powershell.Models.IDiskConfiguration HardwareConfigurationSystemDiskConfiguration { get; set; }

        Commvault.Powershell.Models.IVolumeConfiguration[] HardwareConfigurationVolumeConfiguration { get; set; }

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

        long? MediaAgentId { get; set; }

        string MediaAgentName { get; set; }
        /// <summary>Disk size in bytes</summary>
        long? SystemDiskConfigurationDiskSize { get; set; }
        /// <summary>Type of disk controller</summary>
        string SystemDiskConfigurationDiskType { get; set; }
        /// <summary>Name of the disk</summary>
        string SystemDiskConfigurationName { get; set; }
        /// <summary>Disk provisioning type</summary>
        string SystemDiskConfigurationProvisioningType { get; set; }

    }
}