generated/api/Models/HyperScaleStorageDetails.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>HyperScaleStorageDetails</summary>
    public partial class HyperScaleStorageDetails :
        Commvault.Powershell.Models.IHyperScaleStorageDetails,
        Commvault.Powershell.Models.IHyperScaleStorageDetailsInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IIdName" />
        /// </summary>
        private Commvault.Powershell.Models.IIdName __idName = new Commvault.Powershell.Models.IdName();

        /// <summary>Backing field for <see cref="AssociatedPlans" /> property.</summary>
        private Commvault.Powershell.Models.IIdName[] _associatedPlans;

        /// <summary>List of plans associated with this HyperScale storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdName[] AssociatedPlans { get => this._associatedPlans; set => this._associatedPlans = value; }

        /// <summary>Internal Acessors for Encryption</summary>
        Commvault.Powershell.Models.IEncryption Commvault.Powershell.Models.IHyperScaleStorageDetailsInternal.Encryption { get => (this._encryption = this._encryption ?? new Commvault.Powershell.Models.Encryption()); set { {_encryption = value;} } }

        /// <summary>Internal Acessors for EncryptionKeyProvider</summary>
        Commvault.Powershell.Models.IIdName Commvault.Powershell.Models.IHyperScaleStorageDetailsInternal.EncryptionKeyProvider { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProvider; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProvider = value; }

        /// <summary>Internal Acessors for General</summary>
        Commvault.Powershell.Models.IHyperScaleStorageGeneralInfo Commvault.Powershell.Models.IHyperScaleStorageDetailsInternal.General { get => (this._general = this._general ?? new Commvault.Powershell.Models.HyperScaleStorageGeneralInfo()); set { {_general = value;} } }

        /// <summary>Backing field for <see cref="Encryption" /> property.</summary>
        private Commvault.Powershell.Models.IEncryption _encryption;

        /// <summary>Different ways in which data can be encrypted.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IEncryption Encryption { get => (this._encryption = this._encryption ?? new Commvault.Powershell.Models.Encryption()); set => this._encryption = value; }

        /// <summary>
        /// The different types of encryption keys that can be used for encrypting the data. The values are case sensitive
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string EncryptionCipher { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).Cipher; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).Cipher = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? EncryptionEncrypt { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).Encrypt; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).Encrypt = value ?? default(bool); }

        /// <summary>
        /// Different keylengths are present for different kinds of ciphers. Blowfish,Twofish,AES and Serpent all accept both 128
        /// and 256. DES3 accepts only 192. GOST accepts only 256.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? EncryptionKeyLength { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyLength; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyLength = value ?? default(long); }

        /// <summary>Backing field for <see cref="General" /> property.</summary>
        private Commvault.Powershell.Models.IHyperScaleStorageGeneralInfo _general;

        /// <summary>HyperScaleStorageGeneralInfo</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IHyperScaleStorageGeneralInfo General { get => (this._general = this._general ?? new Commvault.Powershell.Models.HyperScaleStorageGeneralInfo()); set => this._general = value; }

        /// <summary>Specifies the savings in percentage that occurred due to deduplication.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GeneralDeduplicationSavings { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).DeduplicationSavings; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).DeduplicationSavings = value ?? null; }

        /// <summary>The path of the disk storage area in which the data will be stored.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GeneralDevicePath { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).DevicePath; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).DevicePath = value ?? null; }

        /// <summary>Library Name of HyperScale Storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GeneralLibraryName { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).LibraryName; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).LibraryName = value ?? null; }

        /// <summary>Resiliency or redundancy of this HyperScale storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GeneralResiliency { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).Resiliency; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).Resiliency = value ?? null; }

        /// <summary>The total amount of data stored on the disk after deduplication and compression</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? GeneralSizeOndisk { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).SizeOndisk; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).SizeOndisk = value ?? default(long); }

        /// <summary>
        /// The status of the hyperscale storage pool - whether the storage pool is online or offline
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string GeneralStatus { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).Status; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).Status = value ?? null; }

        /// <summary>The total storage capacity of the selected HyperScale Storage Pool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? GeneralTotalCapacity { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).TotalCapacity; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).TotalCapacity = value ?? default(long); }

        /// <summary>The total free space available in the HyperScale storage pool</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? GeneralTotalFreeSpace { get => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).TotalFreeSpace; set => ((Commvault.Powershell.Models.IHyperScaleStorageGeneralInfoInternal)General).TotalFreeSpace = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? Id { get => ((Commvault.Powershell.Models.IIdNameInternal)__idName).Id; set => ((Commvault.Powershell.Models.IIdNameInternal)__idName).Id = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public long? KeyProviderId { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProviderId; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProviderId = value ?? default(long); }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string KeyProviderName { get => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProviderName; set => ((Commvault.Powershell.Models.IEncryptionInternal)Encryption).KeyProviderName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string Name { get => ((Commvault.Powershell.Models.IIdNameInternal)__idName).Name; set => ((Commvault.Powershell.Models.IIdNameInternal)__idName).Name = value; }

        /// <summary>Backing field for <see cref="Nodes" /> property.</summary>
        private Commvault.Powershell.Models.IIdNameStatus[] _nodes;

        /// <summary>List of disks with the Linux MediaAgent</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.IIdNameStatus[] Nodes { get => this._nodes; set => this._nodes = value; }

        /// <summary>Backing field for <see cref="Security" /> property.</summary>
        private Commvault.Powershell.Models.ISecurityAssoc[] _security;

        /// <summary>
        /// List of users or user groups each having a specific set of roles that determine the kind of operations they can perform
        /// on hyperscale storage
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public Commvault.Powershell.Models.ISecurityAssoc[] Security { get => this._security; set => this._security = value; }

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

        }

        /// <summary>Validates that this object meets the validation criteria.</summary>
        /// <param name="eventListener">an <see cref="Commvault.Powershell.Runtime.IEventListener" /> instance that will receive validation
        /// events.</param>
        /// <returns>
        /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed.
        /// </returns>
        public async global::System.Threading.Tasks.Task Validate(Commvault.Powershell.Runtime.IEventListener eventListener)
        {
            await eventListener.AssertNotNull(nameof(__idName), __idName);
            await eventListener.AssertObjectIsValid(nameof(__idName), __idName);
        }
    }
    /// HyperScaleStorageDetails
    public partial interface IHyperScaleStorageDetails :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IIdName
    {
        /// <summary>List of plans associated with this HyperScale storage</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of plans associated with this HyperScale storage",
        SerializedName = @"associatedPlans",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdName) })]
        Commvault.Powershell.Models.IIdName[] AssociatedPlans { get; set; }
        /// <summary>
        /// The different types of encryption keys that can be used for encrypting the data. The values are case sensitive
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The different types of encryption keys that can be used for encrypting the data. The values are case sensitive",
        SerializedName = @"cipher",
        PossibleTypes = new [] { typeof(string) })]
        string EncryptionCipher { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"encrypt",
        PossibleTypes = new [] { typeof(bool) })]
        bool? EncryptionEncrypt { get; set; }
        /// <summary>
        /// Different keylengths are present for different kinds of ciphers. Blowfish,Twofish,AES and Serpent all accept both 128
        /// and 256. DES3 accepts only 192. GOST accepts only 256.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Different keylengths are present for different kinds of ciphers. Blowfish,Twofish,AES and Serpent all accept both 128 and 256. DES3 accepts only 192. GOST accepts only 256. ",
        SerializedName = @"keyLength",
        PossibleTypes = new [] { typeof(long) })]
        long? EncryptionKeyLength { get; set; }
        /// <summary>Specifies the savings in percentage that occurred due to deduplication.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Specifies the savings in percentage that occurred due to deduplication.",
        SerializedName = @"deduplicationSavings",
        PossibleTypes = new [] { typeof(string) })]
        string GeneralDeduplicationSavings { get; set; }
        /// <summary>The path of the disk storage area in which the data will be stored.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The path of the disk storage area in which the data will be stored.",
        SerializedName = @"devicePath",
        PossibleTypes = new [] { typeof(string) })]
        string GeneralDevicePath { get; set; }
        /// <summary>Library Name of HyperScale Storage</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Library Name of HyperScale Storage",
        SerializedName = @"libraryName",
        PossibleTypes = new [] { typeof(string) })]
        string GeneralLibraryName { get; set; }
        /// <summary>Resiliency or redundancy of this HyperScale storage</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Resiliency or redundancy of this HyperScale storage",
        SerializedName = @"resiliency",
        PossibleTypes = new [] { typeof(string) })]
        string GeneralResiliency { get; set; }
        /// <summary>The total amount of data stored on the disk after deduplication and compression</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The total amount of data stored on the disk after deduplication and compression",
        SerializedName = @"sizeOndisk",
        PossibleTypes = new [] { typeof(long) })]
        long? GeneralSizeOndisk { get; set; }
        /// <summary>
        /// The status of the hyperscale storage pool - whether the storage pool is online or offline
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The status of the hyperscale storage pool - whether the storage pool is online or offline",
        SerializedName = @"status",
        PossibleTypes = new [] { typeof(string) })]
        string GeneralStatus { get; set; }
        /// <summary>The total storage capacity of the selected HyperScale Storage Pool</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The total storage capacity of the selected HyperScale Storage Pool",
        SerializedName = @"totalCapacity",
        PossibleTypes = new [] { typeof(long) })]
        long? GeneralTotalCapacity { get; set; }
        /// <summary>The total free space available in the HyperScale storage pool</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"The total free space available in the HyperScale storage pool",
        SerializedName = @"totalFreeSpace",
        PossibleTypes = new [] { typeof(long) })]
        long? GeneralTotalFreeSpace { get; set; }

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

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string KeyProviderName { get; set; }
        /// <summary>List of disks with the Linux MediaAgent</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of disks with the Linux MediaAgent",
        SerializedName = @"nodes",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.IIdNameStatus) })]
        Commvault.Powershell.Models.IIdNameStatus[] Nodes { get; set; }
        /// <summary>
        /// List of users or user groups each having a specific set of roles that determine the kind of operations they can perform
        /// on hyperscale storage
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"List of users or user groups each having a specific set of roles that determine the kind of operations they can perform on hyperscale storage",
        SerializedName = @"security",
        PossibleTypes = new [] { typeof(Commvault.Powershell.Models.ISecurityAssoc) })]
        Commvault.Powershell.Models.ISecurityAssoc[] Security { get; set; }

    }
    /// HyperScaleStorageDetails
    internal partial interface IHyperScaleStorageDetailsInternal :
        Commvault.Powershell.Models.IIdNameInternal
    {
        /// <summary>List of plans associated with this HyperScale storage</summary>
        Commvault.Powershell.Models.IIdName[] AssociatedPlans { get; set; }
        /// <summary>Different ways in which data can be encrypted.</summary>
        Commvault.Powershell.Models.IEncryption Encryption { get; set; }
        /// <summary>
        /// The different types of encryption keys that can be used for encrypting the data. The values are case sensitive
        /// </summary>
        string EncryptionCipher { get; set; }

        bool? EncryptionEncrypt { get; set; }
        /// <summary>
        /// Different keylengths are present for different kinds of ciphers. Blowfish,Twofish,AES and Serpent all accept both 128
        /// and 256. DES3 accepts only 192. GOST accepts only 256.
        /// </summary>
        long? EncryptionKeyLength { get; set; }

        Commvault.Powershell.Models.IIdName EncryptionKeyProvider { get; set; }
        /// <summary>HyperScaleStorageGeneralInfo</summary>
        Commvault.Powershell.Models.IHyperScaleStorageGeneralInfo General { get; set; }
        /// <summary>Specifies the savings in percentage that occurred due to deduplication.</summary>
        string GeneralDeduplicationSavings { get; set; }
        /// <summary>The path of the disk storage area in which the data will be stored.</summary>
        string GeneralDevicePath { get; set; }
        /// <summary>Library Name of HyperScale Storage</summary>
        string GeneralLibraryName { get; set; }
        /// <summary>Resiliency or redundancy of this HyperScale storage</summary>
        string GeneralResiliency { get; set; }
        /// <summary>The total amount of data stored on the disk after deduplication and compression</summary>
        long? GeneralSizeOndisk { get; set; }
        /// <summary>
        /// The status of the hyperscale storage pool - whether the storage pool is online or offline
        /// </summary>
        string GeneralStatus { get; set; }
        /// <summary>The total storage capacity of the selected HyperScale Storage Pool</summary>
        long? GeneralTotalCapacity { get; set; }
        /// <summary>The total free space available in the HyperScale storage pool</summary>
        long? GeneralTotalFreeSpace { get; set; }

        long? KeyProviderId { get; set; }

        string KeyProviderName { get; set; }
        /// <summary>List of disks with the Linux MediaAgent</summary>
        Commvault.Powershell.Models.IIdNameStatus[] Nodes { get; set; }
        /// <summary>
        /// List of users or user groups each having a specific set of roles that determine the kind of operations they can perform
        /// on hyperscale storage
        /// </summary>
        Commvault.Powershell.Models.ISecurityAssoc[] Security { get; set; }

    }
}