generated/api/Models/CloudDestinationOptions.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>cloudDestinationOptions</summary>
    public partial class CloudDestinationOptions :
        Commvault.Powershell.Models.ICloudDestinationOptions,
        Commvault.Powershell.Models.ICloudDestinationOptionsInternal
    {

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

        /// <summary>Availability zone name for the destination instance</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string AvailabilityZone { get => this._availabilityZone; set => this._availabilityZone = value; }

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

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

        /// <summary>Internal Acessors for Region</summary>
        Commvault.Powershell.Models.IRegion Commvault.Powershell.Models.ICloudDestinationOptionsInternal.Region { get => (this._region = this._region ?? new Commvault.Powershell.Models.Region()); set { {_region = value;} } }

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

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

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

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

        /// <summary>Backing field for <see cref="InstanceTypes" /> property.</summary>
        private string[] _instanceTypes;

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

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

        /// <summary>Name of key pair that associates with the VM for authentication</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string KeyPair { get => this._keyPair; set => this._keyPair = value; }

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

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

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

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

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

        /// <summary>If true, public IP address are configured for destination VMs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? PublicIP { get => this._publicIP; set => this._publicIP = value; }

        /// <summary>Backing field for <see cref="Region" /> property.</summary>
        private Commvault.Powershell.Models.IRegion _region;

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

        /// <summary>GUID of the destination region.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionId { get => ((Commvault.Powershell.Models.IRegionInternal)Region).Id; set => ((Commvault.Powershell.Models.IRegionInternal)Region).Id = value ?? null; }

        /// <summary>
        /// Region name of destination. In-case of VMWare, region name refers to the destination host cluster name.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string RegionName { get => ((Commvault.Powershell.Models.IRegionInternal)Region).Name; set => ((Commvault.Powershell.Models.IRegionInternal)Region).Name = value ?? null; }

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

        /// <summary>If true, restore creates the destination VM as a managed VM in Azure</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? RestoreAsManagedVM { get => this._restoreAsManagedVM; set => this._restoreAsManagedVM = value; }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.INameValue[] SoleTenancyNodes { get => this._soleTenancyNodes; set => this._soleTenancyNodes = value; }

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.INameValue[] Tags { get => this._tags; set => this._tags = value; }

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

        /// <summary>Disk / Volume type for test failover VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string TestDiskType { get => this._testDiskType; set => this._testDiskType = value; }

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

        /// <summary>Instance type that provides the available cpu cores and memory to the machine</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string VMInstanceType { get => this._vMInstanceType; set => this._vMInstanceType = value; }

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

        /// <summary>Volume type of destination VM</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string VolumeType { get => this._volumeType; set => this._volumeType = value; }

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

        }
    }
    /// cloudDestinationOptions
    public partial interface ICloudDestinationOptions :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Availability zone name for the destination instance</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Availability zone name for the destination instance",
        SerializedName = @"availabilityZone",
        PossibleTypes = new [] { typeof(string) })]
        string AvailabilityZone { get; set; }

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

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"instanceTypes",
        PossibleTypes = new [] { typeof(string) })]
        string[] InstanceTypes { get; set; }
        /// <summary>Name of key pair that associates with the VM for authentication</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of key pair that associates with the VM for authentication",
        SerializedName = @"keyPair",
        PossibleTypes = new [] { typeof(string) })]
        string KeyPair { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string MachineTypeName { get; set; }
        /// <summary>If true, public IP address are configured for destination VMs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"If true, public IP address are configured for destination VMs",
        SerializedName = @"publicIP",
        PossibleTypes = new [] { typeof(bool) })]
        bool? PublicIP { get; set; }
        /// <summary>GUID of the destination region.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"GUID of the destination region.",
        SerializedName = @"id",
        PossibleTypes = new [] { typeof(string) })]
        string RegionId { get; set; }
        /// <summary>
        /// Region name of destination. In-case of VMWare, region name refers to the destination host cluster name.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Region name of destination. In-case of VMWare, region name refers to the destination host cluster name.",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string RegionName { get; set; }
        /// <summary>If true, restore creates the destination VM as a managed VM in Azure</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"If true, restore creates the destination VM as a managed VM in Azure",
        SerializedName = @"restoreAsManagedVM",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RestoreAsManagedVM { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"tags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.INameValue) })]
        Commvault.Powershell.Models.INameValue[] Tags { get; set; }
        /// <summary>Disk / Volume type for test failover VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Disk / Volume type for test failover VM",
        SerializedName = @"testDiskType",
        PossibleTypes = new [] { typeof(string) })]
        string TestDiskType { get; set; }
        /// <summary>Instance type that provides the available cpu cores and memory to the machine</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Instance type that provides the available cpu cores and memory to the machine",
        SerializedName = @"vmInstanceType",
        PossibleTypes = new [] { typeof(string) })]
        string VMInstanceType { get; set; }
        /// <summary>Volume type of destination VM</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Volume type of destination VM",
        SerializedName = @"volumeType",
        PossibleTypes = new [] { typeof(string) })]
        string VolumeType { get; set; }

    }
    /// cloudDestinationOptions
    internal partial interface ICloudDestinationOptionsInternal

    {
        /// <summary>Availability zone name for the destination instance</summary>
        string AvailabilityZone { get; set; }

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

        long? EncryptionKeyId { get; set; }

        string EncryptionKeyName { get; set; }

        string[] InstanceTypes { get; set; }
        /// <summary>Name of key pair that associates with the VM for authentication</summary>
        string KeyPair { get; set; }

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

        long? MachineTypeId { get; set; }

        string MachineTypeName { get; set; }
        /// <summary>If true, public IP address are configured for destination VMs</summary>
        bool? PublicIP { get; set; }
        /// <summary>Region</summary>
        Commvault.Powershell.Models.IRegion Region { get; set; }
        /// <summary>GUID of the destination region.</summary>
        string RegionId { get; set; }
        /// <summary>
        /// Region name of destination. In-case of VMWare, region name refers to the destination host cluster name.
        /// </summary>
        string RegionName { get; set; }
        /// <summary>If true, restore creates the destination VM as a managed VM in Azure</summary>
        bool? RestoreAsManagedVM { get; set; }

        Commvault.Powershell.Models.INameValue[] SoleTenancyNodes { get; set; }

        Commvault.Powershell.Models.INameValue[] Tags { get; set; }
        /// <summary>Disk / Volume type for test failover VM</summary>
        string TestDiskType { get; set; }
        /// <summary>Instance type that provides the available cpu cores and memory to the machine</summary>
        string VMInstanceType { get; set; }
        /// <summary>Volume type of destination VM</summary>
        string VolumeType { get; set; }

    }
}