generated/api/Models/AzureVMInfo.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 restore information for the Azure VM</summary>
    public partial class AzureVMInfo :
        Commvault.Powershell.Models.IAzureVMInfo,
        Commvault.Powershell.Models.IAzureVMInfoInternal
    {

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

        /// <summary>
        /// Azure availablity zones. Defaults to Auto. Values can be as follows: 'Auto' (Select from the source VM config), 'None'
        /// (Will not restore to any zone), '{Zone Number}' (Availablity zone number the restored VM should be in. Ex: 2).
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AvailabilityZone { get => this._availabilityZone; set => this._availabilityZone = value; }

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

        /// <summary>Boolean to specify if VM should have publice IP. Defaults to false.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? CreatePublicIP { get => this._createPublicIP; set => this._createPublicIP = value; }

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

        /// <summary>
        /// Azure Disk Encryption Set ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Compute/diskEncryptionSets/{Disk
        /// Encryption Set}.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DiskEncryptionSetId { get => this._diskEncryptionSetId; set => this._diskEncryptionSetId = value; }

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

        /// <summary>
        /// Azure Disk Encryption Type. Values can be: 'EncryptionAtRestWithCustomerKey' or 'EncryptionAtRestWithPlatformAndCustomerKeys'
        /// or 'EncryptionAtRestWithPlatformAndCustomerKeys'. For reference: learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.compute.models.encryptiontype?view=azure-dotnet&viewFallbackFrom=azure-dotnet
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DiskEncryptionSetTypeId { get => this._diskEncryptionSetTypeId; set => this._diskEncryptionSetTypeId = value; }

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

        /// <summary>Disk type to set after restore. Ex: Standard_LRS.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DiskType { get => this._diskType; set => this._diskType = value; }

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

        /// <summary>Azure VM name to be set after restore. Defaults to source VM name.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Name { get => this._name; set => this._name = value; }

        /// <summary>Backing field for <see cref="Nics" /> property.</summary>
        private Commvault.Powershell.Models.IAzureDestinationInfoNic[] _nics;

        /// <summary>Azure VM network interface list</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IAzureDestinationInfoNic[] Nics { get => this._nics; set => this._nics = value; }

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

        /// <summary>
        /// Azure region name. Ex: For azure region (West US 3) the region value will be westus3. For reference: learn.microsoft.com/en-us/rest/api/resources/subscriptions/list-locations
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Region { get => this._region; set => this._region = value; }

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

        /// <summary>Azure Resource Group Name. Defaults to source VM resource group name.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ResourceGroup { get => this._resourceGroup; set => this._resourceGroup = value; }

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

        /// <summary>Boolean to specify if VM need to be restored as managed VM. Defaults to true.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? RestoreAsManagedVM { get => this._restoreAsManagedVM; set => this._restoreAsManagedVM = value; }

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

        /// <summary>Azure security group to be set for the VM. Defaults to source configuration.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SecurityGroupId { get => this._securityGroupId; set => this._securityGroupId = value; }

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

        /// <summary>Azure VM ID</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SourceVMGuid { get => this._sourceVMGuid; set => this._sourceVMGuid = value; }

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

        /// <summary>Azure staging storage account. Defaults to source storage account.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string StorageAccount { get => this._storageAccount; set => this._storageAccount = value; }

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

        /// <summary>VM size to be after restore. Defaults to --Auto Select--. Ex: Standard_A1.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string VMSize { get => this._vMSize; set => this._vMSize = value; }

        /// <summary>Backing field for <see cref="VMTags" /> property.</summary>
        private Commvault.Powershell.Models.INameValue[] _vMTags;

        /// <summary>Azure VM tag list</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.INameValue[] VMTags { get => this._vMTags; set => this._vMTags = value; }

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

        }
    }
    /// VM restore information for the Azure VM
    public partial interface IAzureVMInfo :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>
        /// Azure availablity zones. Defaults to Auto. Values can be as follows: 'Auto' (Select from the source VM config), 'None'
        /// (Will not restore to any zone), '{Zone Number}' (Availablity zone number the restored VM should be in. Ex: 2).
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure availablity zones. Defaults to Auto. Values can be as follows: 'Auto' (Select from the source VM config), 'None' (Will not restore to any zone), '{Zone Number}' (Availablity zone number the restored VM should be in. Ex: 2).",
        SerializedName = @"availabilityZone",
        PossibleTypes = new [] { typeof(string) })]
        string AvailabilityZone { get; set; }
        /// <summary>Boolean to specify if VM should have publice IP. Defaults to false.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean to specify if VM should have publice IP. Defaults to false.",
        SerializedName = @"createPublicIP",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CreatePublicIP { get; set; }
        /// <summary>
        /// Azure Disk Encryption Set ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Compute/diskEncryptionSets/{Disk
        /// Encryption Set}.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure Disk Encryption Set ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Compute/diskEncryptionSets/{Disk Encryption Set}.",
        SerializedName = @"diskEncryptionSetId",
        PossibleTypes = new [] { typeof(string) })]
        string DiskEncryptionSetId { get; set; }
        /// <summary>
        /// Azure Disk Encryption Type. Values can be: 'EncryptionAtRestWithCustomerKey' or 'EncryptionAtRestWithPlatformAndCustomerKeys'
        /// or 'EncryptionAtRestWithPlatformAndCustomerKeys'. For reference: learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.compute.models.encryptiontype?view=azure-dotnet&viewFallbackFrom=azure-dotnet
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure Disk Encryption Type. Values can be: 'EncryptionAtRestWithCustomerKey' or 'EncryptionAtRestWithPlatformAndCustomerKeys' or 'EncryptionAtRestWithPlatformAndCustomerKeys'. For reference: learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.compute.models.encryptiontype?view=azure-dotnet&viewFallbackFrom=azure-dotnet",
        SerializedName = @"diskEncryptionSetTypeId",
        PossibleTypes = new [] { typeof(string) })]
        string DiskEncryptionSetTypeId { get; set; }
        /// <summary>Disk type to set after restore. Ex: Standard_LRS.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Disk type to set after restore. Ex: Standard_LRS.",
        SerializedName = @"diskType",
        PossibleTypes = new [] { typeof(string) })]
        string DiskType { get; set; }
        /// <summary>Azure VM name to be set after restore. Defaults to source VM name.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure VM name to be set after restore. Defaults to source VM name.",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string Name { get; set; }
        /// <summary>Azure VM network interface list</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure VM network interface list",
        SerializedName = @"nics",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAzureDestinationInfoNic) })]
        Commvault.Powershell.Models.IAzureDestinationInfoNic[] Nics { get; set; }
        /// <summary>
        /// Azure region name. Ex: For azure region (West US 3) the region value will be westus3. For reference: learn.microsoft.com/en-us/rest/api/resources/subscriptions/list-locations
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure region name. Ex: For azure region (West US 3) the region value will be westus3. For reference: learn.microsoft.com/en-us/rest/api/resources/subscriptions/list-locations",
        SerializedName = @"region",
        PossibleTypes = new [] { typeof(string) })]
        string Region { get; set; }
        /// <summary>Azure Resource Group Name. Defaults to source VM resource group name.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure Resource Group Name. Defaults to source VM resource group name.",
        SerializedName = @"resourceGroup",
        PossibleTypes = new [] { typeof(string) })]
        string ResourceGroup { get; set; }
        /// <summary>Boolean to specify if VM need to be restored as managed VM. Defaults to true.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean to specify if VM need to be restored as managed VM. Defaults to true.",
        SerializedName = @"restoreAsManagedVM",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RestoreAsManagedVM { get; set; }
        /// <summary>Azure security group to be set for the VM. Defaults to source configuration.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure security group to be set for the VM. Defaults to source configuration.",
        SerializedName = @"securityGroupId",
        PossibleTypes = new [] { typeof(string) })]
        string SecurityGroupId { get; set; }
        /// <summary>Azure VM ID</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure VM ID",
        SerializedName = @"sourceVMGuid",
        PossibleTypes = new [] { typeof(string) })]
        string SourceVMGuid { get; set; }
        /// <summary>Azure staging storage account. Defaults to source storage account.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure staging storage account. Defaults to source storage account.",
        SerializedName = @"storageAccount",
        PossibleTypes = new [] { typeof(string) })]
        string StorageAccount { get; set; }
        /// <summary>VM size to be after restore. Defaults to --Auto Select--. Ex: Standard_A1.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"VM size to be after restore. Defaults to --Auto Select--. Ex: Standard_A1.",
        SerializedName = @"vmSize",
        PossibleTypes = new [] { typeof(string) })]
        string VMSize { get; set; }
        /// <summary>Azure VM tag list</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Azure VM tag list",
        SerializedName = @"vmTags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.INameValue) })]
        Commvault.Powershell.Models.INameValue[] VMTags { get; set; }

    }
    /// VM restore information for the Azure VM
    internal partial interface IAzureVMInfoInternal

    {
        /// <summary>
        /// Azure availablity zones. Defaults to Auto. Values can be as follows: 'Auto' (Select from the source VM config), 'None'
        /// (Will not restore to any zone), '{Zone Number}' (Availablity zone number the restored VM should be in. Ex: 2).
        /// </summary>
        string AvailabilityZone { get; set; }
        /// <summary>Boolean to specify if VM should have publice IP. Defaults to false.</summary>
        bool? CreatePublicIP { get; set; }
        /// <summary>
        /// Azure Disk Encryption Set ID. Format: /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Compute/diskEncryptionSets/{Disk
        /// Encryption Set}.
        /// </summary>
        string DiskEncryptionSetId { get; set; }
        /// <summary>
        /// Azure Disk Encryption Type. Values can be: 'EncryptionAtRestWithCustomerKey' or 'EncryptionAtRestWithPlatformAndCustomerKeys'
        /// or 'EncryptionAtRestWithPlatformAndCustomerKeys'. For reference: learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.compute.models.encryptiontype?view=azure-dotnet&viewFallbackFrom=azure-dotnet
        /// </summary>
        string DiskEncryptionSetTypeId { get; set; }
        /// <summary>Disk type to set after restore. Ex: Standard_LRS.</summary>
        string DiskType { get; set; }
        /// <summary>Azure VM name to be set after restore. Defaults to source VM name.</summary>
        string Name { get; set; }
        /// <summary>Azure VM network interface list</summary>
        Commvault.Powershell.Models.IAzureDestinationInfoNic[] Nics { get; set; }
        /// <summary>
        /// Azure region name. Ex: For azure region (West US 3) the region value will be westus3. For reference: learn.microsoft.com/en-us/rest/api/resources/subscriptions/list-locations
        /// </summary>
        string Region { get; set; }
        /// <summary>Azure Resource Group Name. Defaults to source VM resource group name.</summary>
        string ResourceGroup { get; set; }
        /// <summary>Boolean to specify if VM need to be restored as managed VM. Defaults to true.</summary>
        bool? RestoreAsManagedVM { get; set; }
        /// <summary>Azure security group to be set for the VM. Defaults to source configuration.</summary>
        string SecurityGroupId { get; set; }
        /// <summary>Azure VM ID</summary>
        string SourceVMGuid { get; set; }
        /// <summary>Azure staging storage account. Defaults to source storage account.</summary>
        string StorageAccount { get; set; }
        /// <summary>VM size to be after restore. Defaults to --Auto Select--. Ex: Standard_A1.</summary>
        string VMSize { get; set; }
        /// <summary>Azure VM tag list</summary>
        Commvault.Powershell.Models.INameValue[] VMTags { get; set; }

    }
}