generated/api/Models/CloudStorageDetails.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.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>Cloud Storage Details</summary>
    public partial class CloudStorageDetails :
        Commvault.Powershell.Models.ICloudStorageDetails,
        Commvault.Powershell.Models.ICloudStorageDetailsInternal,
        Commvault.Powershell.Runtime.IValidates
    {
        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.ICloudStorageDetailsObject" />
        /// </summary>
        private Commvault.Powershell.Models.ICloudStorageDetailsObject __cloudStorageDetailsObject = new Commvault.Powershell.Models.CloudStorageDetailsObject();

        /// <summary>
        /// Backing field for Inherited model <see cref= "Commvault.Powershell.Models.IIdName" />
        /// </summary>
        private Commvault.Powershell.Models.IIdName __idName = new Commvault.Powershell.Models.IdName();

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdName[] AssociatedPlans { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).AssociatedPlans; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).AssociatedPlans = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdNameStatus[] Bucket { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).Bucket; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).Bucket = value; }

        /// <summary>Tells if cache configuration is enabled for this storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public bool? CacheConfigurationEnable { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurationEnable; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurationEnable = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IMetadataCache[] CacheConfigurationMetadataCache { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurationMetadataCache; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurationMetadataCache = value; }

        /// <summary>CacheConfigurations</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.ICacheConfigurations CacheConfigurations { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurations; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).CacheConfigurations = value; }

        /// <summary>Different ways in which data can be encrypted.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IEncryption Encryption { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).Encryption; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).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.Inherited)]
        public string EncryptionCipher { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionCipher; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionCipher = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public bool? EncryptionEncrypt { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionEncrypt; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionEncrypt = value; }

        /// <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.Inherited)]
        public long? EncryptionKeyLength { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionKeyLength; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionKeyLength = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.IIdName EncryptionKeyManagementServer { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionKeyManagementServer; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).EncryptionKeyManagementServer = value; }

        /// <summary>CloudStorageGeneralInfo</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.ICloudStorageGeneralInfo General { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).General; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).General = value; }

        /// <summary>
        /// Specifies the savings in percentage that occurred due to deduplication. Only available for dedupe cloud storage pools
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string GeneralDeduplicationSavings { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralDeduplicationSavings; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralDeduplicationSavings = value; }

        /// <summary>Free space available on this cloud storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? GeneralFreeSpace { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralFreeSpace; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralFreeSpace = value; }

        /// <summary>Amount of space consumed</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? GeneralSizeOndisk { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralSizeOndisk; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralSizeOndisk = value; }

        /// <summary>Total capacity of this cloud storage</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public long? GeneralTotalCapacity { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralTotalCapacity; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralTotalCapacity = value; }

        /// <summary>Type of the cloud storage server</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string GeneralType { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralType; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralType = value; }

        /// <summary>Cloud server type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string GeneralVendorType { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralVendorType; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).GeneralVendorType = value; }

        [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.Inherited)]
        public long? KeyManagementServerId { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).KeyManagementServerId; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).KeyManagementServerId = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public string KeyManagementServerName { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).KeyManagementServerName; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).KeyManagementServerName = value; }

        [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; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inherited)]
        public Commvault.Powershell.Models.ISecurityAssoc[] Security { get => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).Security; set => ((Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal)__cloudStorageDetailsObject).Security = value; }

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

        }

        /// <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);
            await eventListener.AssertNotNull(nameof(__cloudStorageDetailsObject), __cloudStorageDetailsObject);
            await eventListener.AssertObjectIsValid(nameof(__cloudStorageDetailsObject), __cloudStorageDetailsObject);
        }
    }
    /// Cloud Storage Details
    public partial interface ICloudStorageDetails :
        Commvault.Powershell.Runtime.IJsonSerializable,
        Commvault.Powershell.Models.IIdName,
        Commvault.Powershell.Models.ICloudStorageDetailsObject
    {

    }
    /// Cloud Storage Details
    internal partial interface ICloudStorageDetailsInternal :
        Commvault.Powershell.Models.IIdNameInternal,
        Commvault.Powershell.Models.ICloudStorageDetailsObjectInternal
    {

    }
}