generated/api/Models/AwsInstanceInfo.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.2, generator: @autorest/powershell@4.0.708)
// 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 AWS VM</summary>
    public partial class AwsInstanceInfo :
        Commvault.Powershell.Models.IAwsInstanceInfo,
        Commvault.Powershell.Models.IAwsInstanceInfoInternal
    {

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

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

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

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

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

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? EncryptionKeyIsEncrypted { get => ((Commvault.Powershell.Models.IVsaEncryptionOptionInternal)EncryptionKey).IsEncrypted; set => ((Commvault.Powershell.Models.IVsaEncryptionOptionInternal)EncryptionKey).IsEncrypted = value ?? default(bool); }

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

        /// <summary>AWS instance ID</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string InstanceId { get => this._instanceId; set => this._instanceId = value; }

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

        /// <summary>AWS instance name to be set after restore. Defaults to source instance name.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string InstanceName { get => this._instanceName; set => this._instanceName = value; }

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

        /// <summary>Instance size to be after restore. Defaults to source instance size</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string InstanceSize { get => this._instanceSize; set => this._instanceSize = value; }

        /// <summary>Backing field for <see cref="KeyPairs" /> property.</summary>
        private System.Collections.Generic.List<Commvault.Powershell.Models.IVMKeyPairInfo> _keyPairs;

        /// <summary>List of key pairs</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IVMKeyPairInfo> KeyPairs { get => this._keyPairs; set => this._keyPairs = value; }

        /// <summary>Backing field for <see cref="Nics" /> property.</summary>
        private System.Collections.Generic.List<Commvault.Powershell.Models.IAwsNetworkInterfaceInfo> _nics;

        /// <summary>AWS instance network interface list</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IAwsNetworkInterfaceInfo> Nics { get => this._nics; set => this._nics = value; }

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

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

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

        /// <summary>If set to true, we will use the source network configuration during restore</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? RestoreSourceNetworkConfig { get => this._restoreSourceNetworkConfig; set => this._restoreSourceNetworkConfig = value; }

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

        /// <summary>Restore source VM tags.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? RestoreSourceVMTags { get => this._restoreSourceVMTags; set => this._restoreSourceVMTags = value; }

        /// <summary>Backing field for <see cref="SecurityGroups" /> property.</summary>
        private System.Collections.Generic.List<Commvault.Powershell.Models.IVMSecurityGroupInfo> _securityGroups;

        /// <summary>List of AWS security groups to be set for the instance.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public System.Collections.Generic.List<Commvault.Powershell.Models.IVMSecurityGroupInfo> SecurityGroups { get => this._securityGroups; set => this._securityGroups = value; }

        /// <summary>Backing field for <see cref="VMTags" /> property.</summary>
        private System.Collections.Generic.List<Commvault.Powershell.Models.INameValue> _vMTags;

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

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

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

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

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

        /// <summary>AWS Availability zone. Defaults to source instance availability zone.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Zone { get => this._zone; set => this._zone = value; }

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

        }
    }
    /// VM restore information for the AWS VM
    public partial interface IAwsInstanceInfo :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"diskEncryptionSetId",
        PossibleTypes = new [] { typeof(string) })]
        string EncryptionKeyDiskEncryptionSetId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"diskEncryptionSetTypeId",
        PossibleTypes = new [] { typeof(string) })]
        string EncryptionKeyDiskEncryptionSetTypeId { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"isEncrypted",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EncryptionKeyIsEncrypted { get; set; }
        /// <summary>AWS instance ID</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AWS instance ID",
        SerializedName = @"instanceId",
        PossibleTypes = new [] { typeof(string) })]
        string InstanceId { get; set; }
        /// <summary>AWS instance name to be set after restore. Defaults to source instance name.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AWS instance name to be set after restore. Defaults to source instance name.",
        SerializedName = @"instanceName",
        PossibleTypes = new [] { typeof(string) })]
        string InstanceName { get; set; }
        /// <summary>Instance size to be after restore. Defaults to source instance size</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Instance size to be after restore. Defaults to source instance size",
        SerializedName = @"instanceSize",
        PossibleTypes = new [] { typeof(string) })]
        string InstanceSize { get; set; }
        /// <summary>List of key pairs</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of key pairs",
        SerializedName = @"keyPairs",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMKeyPairInfo) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IVMKeyPairInfo> KeyPairs { get; set; }
        /// <summary>AWS instance network interface list</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AWS instance network interface list",
        SerializedName = @"nics",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IAwsNetworkInterfaceInfo) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IAwsNetworkInterfaceInfo> Nics { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"region",
        PossibleTypes = new [] { typeof(string) })]
        string Region { get; set; }
        /// <summary>If set to true, we will use the source network configuration during restore</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"If set to true, we will use the source network configuration during restore",
        SerializedName = @"restoreSourceNetworkConfig",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RestoreSourceNetworkConfig { get; set; }
        /// <summary>Restore source VM tags.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"Restore source VM tags.",
        SerializedName = @"restoreSourceVMTags",
        PossibleTypes = new [] { typeof(bool) })]
        bool? RestoreSourceVMTags { get; set; }
        /// <summary>List of AWS security groups to be set for the instance.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"List of AWS security groups to be set for the instance.",
        SerializedName = @"securityGroups",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IVMSecurityGroupInfo) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.IVMSecurityGroupInfo> SecurityGroups { get; set; }
        /// <summary>AWS VM tag list</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AWS VM tag list",
        SerializedName = @"vmTags",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.INameValue) })]
        System.Collections.Generic.List<Commvault.Powershell.Models.INameValue> VMTags { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"volumeType",
        PossibleTypes = new [] { typeof(string) })]
        string VolumeType { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"",
        SerializedName = @"encryptionKey",
        PossibleTypes = new [] { typeof(string) })]
        string VsaEncryptionOptionEncryptionKey { get; set; }
        /// <summary>AWS Availability zone. Defaults to source instance availability zone.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Read = true,
        Create = true,
        Update = true,
        Description = @"AWS Availability zone. Defaults to source instance availability zone.",
        SerializedName = @"zone",
        PossibleTypes = new [] { typeof(string) })]
        string Zone { get; set; }

    }
    /// VM restore information for the AWS VM
    internal partial interface IAwsInstanceInfoInternal

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

        string EncryptionKeyDiskEncryptionSetId { get; set; }

        string EncryptionKeyDiskEncryptionSetTypeId { get; set; }

        bool? EncryptionKeyIsEncrypted { get; set; }
        /// <summary>AWS instance ID</summary>
        string InstanceId { get; set; }
        /// <summary>AWS instance name to be set after restore. Defaults to source instance name.</summary>
        string InstanceName { get; set; }
        /// <summary>Instance size to be after restore. Defaults to source instance size</summary>
        string InstanceSize { get; set; }
        /// <summary>List of key pairs</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IVMKeyPairInfo> KeyPairs { get; set; }
        /// <summary>AWS instance network interface list</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IAwsNetworkInterfaceInfo> Nics { get; set; }

        string Region { get; set; }
        /// <summary>If set to true, we will use the source network configuration during restore</summary>
        bool? RestoreSourceNetworkConfig { get; set; }
        /// <summary>Restore source VM tags.</summary>
        bool? RestoreSourceVMTags { get; set; }
        /// <summary>List of AWS security groups to be set for the instance.</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.IVMSecurityGroupInfo> SecurityGroups { get; set; }
        /// <summary>AWS VM tag list</summary>
        System.Collections.Generic.List<Commvault.Powershell.Models.INameValue> VMTags { get; set; }

        string VolumeType { get; set; }

        string VsaEncryptionOptionEncryptionKey { get; set; }
        /// <summary>AWS Availability zone. Defaults to source instance availability zone.</summary>
        string Zone { get; set; }

    }
}