generated/api/Models/VMRecoveryConfiguration.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>VMRecoveryConfiguration</summary>
    public partial class VMRecoveryConfiguration :
        Commvault.Powershell.Models.IVMRecoveryConfiguration,
        Commvault.Powershell.Models.IVMRecoveryConfigurationInternal
    {

        /// <summary>Backing field for <see cref="Azure" /> property.</summary>
        private Commvault.Powershell.Models.IReplicationConfigurationAzure _azure;

        /// <summary>Replication configuration for Azure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IReplicationConfigurationAzure Azure { get => (this._azure = this._azure ?? new Commvault.Powershell.Models.ReplicationConfigurationAzure()); set => this._azure = value; }

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

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

        /// <summary>Type of the disk</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureDiskType { get => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).DiskType; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).DiskType = 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.IReplicationConfigurationAzureInternal)Azure).OverrideReplicationOptions; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).OverrideReplicationOptions = value ?? null /* model class */; }

        /// <summary>region of the VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureRegion { get => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).Region; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).Region = 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.IReplicationConfigurationAzureInternal)Azure).ResourceGroup; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).ResourceGroup = 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.IReplicationConfigurationAzureInternal)Azure).RestoreAsManagedVM; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).RestoreAsManagedVM = value ?? default(bool); }

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

        /// <summary>GUID of the source VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string AzureSourceVMGuid { get => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).SourceVMGuid; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).SourceVMGuid = 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.IReplicationConfigurationAzureInternal)Azure).StorageAccount; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).StorageAccount = 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.IReplicationConfigurationAzureInternal)Azure).TestFailoverVMSize; set => ((Commvault.Powershell.Models.IReplicationConfigurationAzureInternal)Azure).TestFailoverVMSize = value ?? null; }

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

        /// <summary>Internal Acessors for Azure</summary>
        Commvault.Powershell.Models.IReplicationConfigurationAzure Commvault.Powershell.Models.IVMRecoveryConfigurationInternal.Azure { get => (this._azure = this._azure ?? new Commvault.Powershell.Models.ReplicationConfigurationAzure()); set { {_azure = value;} } }

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

        }
    }
    /// VMRecoveryConfiguration
    public partial interface IVMRecoveryConfiguration :
        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>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>VM size</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VM size",
        SerializedName = @"vmSize",
        PossibleTypes = new [] { typeof(string) })]
        string AzureVMSize { get; set; }

    }
    /// VMRecoveryConfiguration
    internal partial interface IVMRecoveryConfigurationInternal

    {
        /// <summary>Replication configuration for Azure</summary>
        Commvault.Powershell.Models.IReplicationConfigurationAzure Azure { get; set; }
        /// <summary>Create a public IP.</summary>
        bool? AzureCreatePublicIP { 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>VM size</summary>
        string AzureVMSize { get; set; }

    }
}