generated/api/Models/LaptopPlanDetails.PowerShell.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 Commvault.Powershell.Runtime.PowerShell;

    [System.ComponentModel.TypeConverter(typeof(LaptopPlanDetailsTypeConverter))]
    public partial class LaptopPlanDetails
    {

        /// <summary>
        /// <c>AfterDeserializeDictionary</c> will be called after the deserialization has finished, allowing customization of the
        /// object before it is returned. Implement this method in a partial class to enable this behavior
        /// </summary>
        /// <param name="content">The global::System.Collections.IDictionary content that should be used.</param>

        partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content);

        /// <summary>
        /// <c>AfterDeserializePSObject</c> will be called after the deserialization has finished, allowing customization of the object
        /// before it is returned. Implement this method in a partial class to enable this behavior
        /// </summary>
        /// <param name="content">The global::System.Management.Automation.PSObject content that should be used.</param>

        partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content);

        /// <summary>
        /// <c>BeforeDeserializeDictionary</c> will be called before the deserialization has commenced, allowing complete customization
        /// of the object before it is deserialized.
        /// If you wish to disable the default deserialization entirely, return <c>true</c> in the <see "returnNow" /> output parameter.
        /// Implement this method in a partial class to enable this behavior.
        /// </summary>
        /// <param name="content">The global::System.Collections.IDictionary content that should be used.</param>
        /// <param name="returnNow">Determines if the rest of the serialization should be processed, or if the method should return
        /// instantly.</param>

        partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow);

        /// <summary>
        /// <c>BeforeDeserializePSObject</c> will be called before the deserialization has commenced, allowing complete customization
        /// of the object before it is deserialized.
        /// If you wish to disable the default deserialization entirely, return <c>true</c> in the <see "returnNow" /> output parameter.
        /// Implement this method in a partial class to enable this behavior.
        /// </summary>
        /// <param name="content">The global::System.Management.Automation.PSObject content that should be used.</param>
        /// <param name="returnNow">Determines if the rest of the serialization should be processed, or if the method should return
        /// instantly.</param>

        partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow);

        /// <summary>
        /// Deserializes a <see cref="global::System.Collections.IDictionary" /> into an instance of <see cref="Commvault.Powershell.Models.LaptopPlanDetails"
        /// />.
        /// </summary>
        /// <param name="content">The global::System.Collections.IDictionary content that should be used.</param>
        /// <returns>an instance of <see cref="Commvault.Powershell.Models.ILaptopPlanDetails" />.</returns>
        public static Commvault.Powershell.Models.ILaptopPlanDetails DeserializeFromDictionary(global::System.Collections.IDictionary content)
        {
            return new LaptopPlanDetails(content);
        }

        /// <summary>
        /// Deserializes a <see cref="global::System.Management.Automation.PSObject" /> into an instance of <see cref="Commvault.Powershell.Models.LaptopPlanDetails"
        /// />.
        /// </summary>
        /// <param name="content">The global::System.Management.Automation.PSObject content that should be used.</param>
        /// <returns>an instance of <see cref="Commvault.Powershell.Models.ILaptopPlanDetails" />.</returns>
        public static Commvault.Powershell.Models.ILaptopPlanDetails DeserializeFromPSObject(global::System.Management.Automation.PSObject content)
        {
            return new LaptopPlanDetails(content);
        }

        /// <summary>
        /// Creates a new instance of <see cref="LaptopPlanDetails" />, deserializing the content from a json string.
        /// </summary>
        /// <param name="jsonText">a string containing a JSON serialized instance of this model.</param>
        /// <returns>an instance of the <see cref="className" /> model class.</returns>
        public static Commvault.Powershell.Models.ILaptopPlanDetails FromJsonString(string jsonText) => FromJson(Commvault.Powershell.Runtime.Json.JsonNode.Parse(jsonText));

        /// <summary>
        /// Deserializes a <see cref="global::System.Collections.IDictionary" /> into a new instance of <see cref="Commvault.Powershell.Models.LaptopPlanDetails"
        /// />.
        /// </summary>
        /// <param name="content">The global::System.Collections.IDictionary content that should be used.</param>
        internal LaptopPlanDetails(global::System.Collections.IDictionary content)
        {
            bool returnNow = false;
            BeforeDeserializeDictionary(content, ref returnNow);
            if (returnNow)
            {
                return;
            }
            // actually deserialize
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Plan = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("Plan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Plan, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).General = (Commvault.Powershell.Models.ILaptopPlanGeneralInfo) content.GetValueForProperty("General",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).General, Commvault.Powershell.Models.LaptopPlanGeneralInfoTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatures = (Commvault.Powershell.Models.IAllowedFeatures) content.GetValueForProperty("AllowedFeatures",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatures, Commvault.Powershell.Models.AllowedFeaturesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Rpo = (Commvault.Powershell.Models.ILaptopPlanRpo) content.GetValueForProperty("Rpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Rpo, Commvault.Powershell.Models.LaptopPlanRpoTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContent = (Commvault.Powershell.Models.ILaptopPlanBackupContent) content.GetValueForProperty("BackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContent, Commvault.Powershell.Models.LaptopPlanBackupContentTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Retention = (Commvault.Powershell.Models.ILaptopPlanRetention) content.GetValueForProperty("Retention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Retention, Commvault.Powershell.Models.LaptopPlanRetentionTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictions = (Commvault.Powershell.Models.ILaptopPlanOverrideSettings) content.GetValueForProperty("OverrideRestrictions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictions, Commvault.Powershell.Models.LaptopPlanOverrideSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettings = (Commvault.Powershell.Models.ILaptopPlanInheritSettings) content.GetValueForProperty("InheritSettings",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettings, Commvault.Powershell.Models.LaptopPlanInheritSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptops = (Commvault.Powershell.Models.IAutoRetireDevices) content.GetValueForProperty("OfflineLaptops",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptops, Commvault.Powershell.Models.AutoRetireDevicesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResources = (Commvault.Powershell.Models.ILaptopPlanNetworkResources) content.GetValueForProperty("NetworkResources",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResources, Commvault.Powershell.Models.LaptopPlanNetworkResourcesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalProperties = (Commvault.Powershell.Models.IPlanAdditionalProperties) content.GetValueForProperty("AdditionalProperties",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalProperties, Commvault.Powershell.Models.PlanAdditionalPropertiesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RegionsConfigured = (bool?) content.GetValueForProperty("RegionsConfigured",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RegionsConfigured, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupDestinations = (Commvault.Powershell.Models.IPlanBackupDestination[]) content.GetValueForProperty("BackupDestinations",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupDestinations, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IPlanBackupDestination>(__y, Commvault.Powershell.Models.PlanBackupDestinationTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AssociatedUsersAndUserGroups = (Commvault.Powershell.Models.IPlanUserOrGroups[]) content.GetValueForProperty("AssociatedUsersAndUserGroups",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AssociatedUsersAndUserGroups, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IPlanUserOrGroups>(__y, Commvault.Powershell.Models.PlanUserOrGroupsTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Alerts = (Commvault.Powershell.Models.IIdName[]) content.GetValueForProperty("Alerts",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Alerts, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IIdName>(__y, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowPlanOverride = (bool?) content.GetValueForProperty("AllowPlanOverride",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowPlanOverride, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Permissions = (Commvault.Powershell.Models.IIdName[]) content.GetValueForProperty("Permissions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Permissions, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IIdName>(__y, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchivingRules = (Commvault.Powershell.Models.IArchivingRules) content.GetValueForProperty("AllowedFeatureArchivingRules",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchivingRules, Commvault.Powershell.Models.ArchivingRulesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanId = (long?) content.GetValueForProperty("PlanId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanName, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralUsers = (long?) content.GetValueForProperty("GeneralUsers",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralUsers, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralLaptops = (long?) content.GetValueForProperty("GeneralLaptops",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralLaptops, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralOptimizedForCloudBackups = (bool?) content.GetValueForProperty("GeneralOptimizedForCloudBackups",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralOptimizedForCloudBackups, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralStorageResourcePoolMap = (Commvault.Powershell.Models.IStorageResourcePoolMap[]) content.GetValueForProperty("GeneralStorageResourcePoolMap",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralStorageResourcePoolMap, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IStorageResourcePoolMap>(__y, Commvault.Powershell.Models.StorageResourcePoolMapTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDriveSettings = (Commvault.Powershell.Models.IEdgeDriveSettings) content.GetValueForProperty("AllowedFeatureEdgeDriveSettings",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDriveSettings, Commvault.Powershell.Models.EdgeDriveSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchiving = (bool?) content.GetValueForProperty("AllowedFeatureArchiving",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchiving, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureDlp = (bool?) content.GetValueForProperty("AllowedFeatureDlp",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureDlp, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDrive = (bool?) content.GetValueForProperty("AllowedFeatureEdgeDrive",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDrive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoSla = (Commvault.Powershell.Models.ISlaOptions) content.GetValueForProperty("RpoSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoSla, Commvault.Powershell.Models.SlaOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoBackupFrequency = (long?) content.GetValueForProperty("RpoBackupFrequency",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoBackupFrequency, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsIncludedPaths = (string[]) content.GetValueForProperty("BackupContentWindowsIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsExcludedPaths = (string[]) content.GetValueForProperty("BackupContentWindowsExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacIncludedPaths = (string[]) content.GetValueForProperty("BackupContentMacIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacExcludedPaths = (string[]) content.GetValueForProperty("BackupContentMacExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixIncludedPaths = (string[]) content.GetValueForProperty("BackupContentUnixIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixExcludedPaths = (string[]) content.GetValueForProperty("BackupContentUnixExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentFileSystemQuota = (long?) content.GetValueForProperty("BackupContentFileSystemQuota",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentFileSystemQuota, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionFileVersions = (Commvault.Powershell.Models.ILaptopPlanRetentionFileVersions) content.GetValueForProperty("RetentionFileVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionFileVersions, Commvault.Powershell.Models.LaptopPlanRetentionFileVersionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionDeletedItemRetention = (long?) content.GetValueForProperty("RetentionDeletedItemRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionDeletedItemRetention, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionStoragePool = (string) content.GetValueForProperty("OverrideRestrictionStoragePool",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionStoragePool, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRpo = (string) content.GetValueForProperty("OverrideRestrictionRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRpo, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionBackupContent = (string) content.GetValueForProperty("OverrideRestrictionBackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionBackupContent, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRetention = (string) content.GetValueForProperty("OverrideRestrictionRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRetention, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBasePlan = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("InheritSettingBasePlan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBasePlan, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingStoragePool = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingStoragePool",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingStoragePool, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRpo = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRpo, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBackupContent = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingBackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBackupContent, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRetention = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRetention, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopRetireAfterDays = (long?) content.GetValueForProperty("OfflineLaptopRetireAfterDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopRetireAfterDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopDeleteAfterDays = (long?) content.GetValueForProperty("OfflineLaptopDeleteAfterDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopDeleteAfterDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleSend = (long?) content.GetValueForProperty("NetworkResourceThrottleSend",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleSend, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleReceive = (long?) content.GetValueForProperty("NetworkResourceThrottleReceive",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleReceive, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyAddons = (Commvault.Powershell.Models.IPlanAddons) content.GetValueForProperty("AdditionalPropertyAddons",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyAddons, Commvault.Powershell.Models.PlanAddonsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyRpo = (long?) content.GetValueForProperty("AdditionalPropertyRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyRpo, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyStatus = (string) content.GetValueForProperty("AdditionalPropertyStatus",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyStatus, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStartCleaningIfLessThan = (long?) content.GetValueForProperty("ArchivingRuleStartCleaningIfLessThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStartCleaningIfLessThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStopCleaningIfupto = (long?) content.GetValueForProperty("ArchivingRuleStopCleaningIfupto",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStopCleaningIfupto, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileAccessTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileAccessTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileAccessTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileModifiedTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileModifiedTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileModifiedTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileCreatedTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileCreatedTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileCreatedTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileSizeGreaterThan = (long?) content.GetValueForProperty("ArchivingRuleFileSizeGreaterThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileSizeGreaterThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleMaximumFileSize = (long?) content.GetValueForProperty("ArchivingRuleMaximumFileSize",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleMaximumFileSize, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleArchiveReadOnlyFiles = (bool?) content.GetValueForProperty("ArchivingRuleArchiveReadOnlyFiles",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleArchiveReadOnlyFiles, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleAfterArchiving = (string) content.GetValueForProperty("ArchivingRuleAfterArchiving",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleAfterArchiving, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingIndexServer = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("EdgeDriveSettingIndexServer",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingIndexServer, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingAuditDriveOperations = (bool?) content.GetValueForProperty("EdgeDriveSettingAuditDriveOperations",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingAuditDriveOperations, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingNotificationsForShares = (bool?) content.GetValueForProperty("EdgeDriveSettingNotificationsForShares",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingNotificationsForShares, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingEdgeDriveQuota = (long?) content.GetValueForProperty("EdgeDriveSettingEdgeDriveQuota",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingEdgeDriveQuota, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaUseSystemDefaultSla = (bool?) content.GetValueForProperty("SlaUseSystemDefaultSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaUseSystemDefaultSla, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedSlaPeriod = (long?) content.GetValueForProperty("SlaInheritedSlaPeriod",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedSlaPeriod, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedFrom = (string) content.GetValueForProperty("SlaInheritedFrom",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedFrom, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaPeriod = (long?) content.GetValueForProperty("SlaPeriod",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaPeriod, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExcludeFromSla = (bool?) content.GetValueForProperty("SlaExcludeFromSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExcludeFromSla, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaEnableAfterDelay = (long?) content.GetValueForProperty("SlaEnableAfterDelay",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaEnableAfterDelay, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExclusionReason = (string) content.GetValueForProperty("SlaExclusionReason",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExclusionReason, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaLogSlaMinutes = (long?) content.GetValueForProperty("SlaLogSlaMinutes",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaLogSlaMinutes, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDays = (long?) content.GetValueForProperty("FileVersionDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionVersions = (long?) content.GetValueForProperty("FileVersionVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDailyVersions = (long?) content.GetValueForProperty("FileVersionDailyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDailyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionWeeklyVersions = (long?) content.GetValueForProperty("FileVersionWeeklyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionWeeklyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionMonthlyVersions = (long?) content.GetValueForProperty("FileVersionMonthlyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionMonthlyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanId = (long?) content.GetValueForProperty("BasePlanId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanName = (string) content.GetValueForProperty("BasePlanName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanName, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverrideBase = (string) content.GetValueForProperty("StoragePoolOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverridden = (bool?) content.GetValueForProperty("StoragePoolOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverrideBase = (string) content.GetValueForProperty("RpoOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverridden = (bool?) content.GetValueForProperty("RpoOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverrideBase = (string) content.GetValueForProperty("BackupContentOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverridden = (bool?) content.GetValueForProperty("BackupContentOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverrideBase = (string) content.GetValueForProperty("RetentionOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverridden = (bool?) content.GetValueForProperty("RetentionOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonDatabase = (bool?) content.GetValueForProperty("AddonDatabase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonDatabase, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonFileSystem = (bool?) content.GetValueForProperty("AddonFileSystem",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonFileSystem, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnap = (bool?) content.GetValueForProperty("AddonSnap",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnap, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnapStatus = (string) content.GetValueForProperty("AddonSnapStatus",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnapStatus, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonIndexCopy = (bool?) content.GetValueForProperty("AddonIndexCopy",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonIndexCopy, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerId = (long?) content.GetValueForProperty("IndexServerId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerName = (string) content.GetValueForProperty("IndexServerName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerName, global::System.Convert.ToString);
            AfterDeserializeDictionary(content);
        }

        /// <summary>
        /// Deserializes a <see cref="global::System.Management.Automation.PSObject" /> into a new instance of <see cref="Commvault.Powershell.Models.LaptopPlanDetails"
        /// />.
        /// </summary>
        /// <param name="content">The global::System.Management.Automation.PSObject content that should be used.</param>
        internal LaptopPlanDetails(global::System.Management.Automation.PSObject content)
        {
            bool returnNow = false;
            BeforeDeserializePSObject(content, ref returnNow);
            if (returnNow)
            {
                return;
            }
            // actually deserialize
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Plan = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("Plan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Plan, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).General = (Commvault.Powershell.Models.ILaptopPlanGeneralInfo) content.GetValueForProperty("General",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).General, Commvault.Powershell.Models.LaptopPlanGeneralInfoTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatures = (Commvault.Powershell.Models.IAllowedFeatures) content.GetValueForProperty("AllowedFeatures",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatures, Commvault.Powershell.Models.AllowedFeaturesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Rpo = (Commvault.Powershell.Models.ILaptopPlanRpo) content.GetValueForProperty("Rpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Rpo, Commvault.Powershell.Models.LaptopPlanRpoTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContent = (Commvault.Powershell.Models.ILaptopPlanBackupContent) content.GetValueForProperty("BackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContent, Commvault.Powershell.Models.LaptopPlanBackupContentTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Retention = (Commvault.Powershell.Models.ILaptopPlanRetention) content.GetValueForProperty("Retention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Retention, Commvault.Powershell.Models.LaptopPlanRetentionTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictions = (Commvault.Powershell.Models.ILaptopPlanOverrideSettings) content.GetValueForProperty("OverrideRestrictions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictions, Commvault.Powershell.Models.LaptopPlanOverrideSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettings = (Commvault.Powershell.Models.ILaptopPlanInheritSettings) content.GetValueForProperty("InheritSettings",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettings, Commvault.Powershell.Models.LaptopPlanInheritSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptops = (Commvault.Powershell.Models.IAutoRetireDevices) content.GetValueForProperty("OfflineLaptops",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptops, Commvault.Powershell.Models.AutoRetireDevicesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResources = (Commvault.Powershell.Models.ILaptopPlanNetworkResources) content.GetValueForProperty("NetworkResources",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResources, Commvault.Powershell.Models.LaptopPlanNetworkResourcesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalProperties = (Commvault.Powershell.Models.IPlanAdditionalProperties) content.GetValueForProperty("AdditionalProperties",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalProperties, Commvault.Powershell.Models.PlanAdditionalPropertiesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RegionsConfigured = (bool?) content.GetValueForProperty("RegionsConfigured",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RegionsConfigured, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupDestinations = (Commvault.Powershell.Models.IPlanBackupDestination[]) content.GetValueForProperty("BackupDestinations",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupDestinations, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IPlanBackupDestination>(__y, Commvault.Powershell.Models.PlanBackupDestinationTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AssociatedUsersAndUserGroups = (Commvault.Powershell.Models.IPlanUserOrGroups[]) content.GetValueForProperty("AssociatedUsersAndUserGroups",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AssociatedUsersAndUserGroups, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IPlanUserOrGroups>(__y, Commvault.Powershell.Models.PlanUserOrGroupsTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Alerts = (Commvault.Powershell.Models.IIdName[]) content.GetValueForProperty("Alerts",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Alerts, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IIdName>(__y, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowPlanOverride = (bool?) content.GetValueForProperty("AllowPlanOverride",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowPlanOverride, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Permissions = (Commvault.Powershell.Models.IIdName[]) content.GetValueForProperty("Permissions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).Permissions, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IIdName>(__y, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchivingRules = (Commvault.Powershell.Models.IArchivingRules) content.GetValueForProperty("AllowedFeatureArchivingRules",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchivingRules, Commvault.Powershell.Models.ArchivingRulesTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanId = (long?) content.GetValueForProperty("PlanId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).PlanName, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralUsers = (long?) content.GetValueForProperty("GeneralUsers",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralUsers, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralLaptops = (long?) content.GetValueForProperty("GeneralLaptops",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralLaptops, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralOptimizedForCloudBackups = (bool?) content.GetValueForProperty("GeneralOptimizedForCloudBackups",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralOptimizedForCloudBackups, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralStorageResourcePoolMap = (Commvault.Powershell.Models.IStorageResourcePoolMap[]) content.GetValueForProperty("GeneralStorageResourcePoolMap",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).GeneralStorageResourcePoolMap, __y => TypeConverterExtensions.SelectToArray<Commvault.Powershell.Models.IStorageResourcePoolMap>(__y, Commvault.Powershell.Models.StorageResourcePoolMapTypeConverter.ConvertFrom));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDriveSettings = (Commvault.Powershell.Models.IEdgeDriveSettings) content.GetValueForProperty("AllowedFeatureEdgeDriveSettings",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDriveSettings, Commvault.Powershell.Models.EdgeDriveSettingsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchiving = (bool?) content.GetValueForProperty("AllowedFeatureArchiving",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureArchiving, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureDlp = (bool?) content.GetValueForProperty("AllowedFeatureDlp",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureDlp, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDrive = (bool?) content.GetValueForProperty("AllowedFeatureEdgeDrive",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AllowedFeatureEdgeDrive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoSla = (Commvault.Powershell.Models.ISlaOptions) content.GetValueForProperty("RpoSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoSla, Commvault.Powershell.Models.SlaOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoBackupFrequency = (long?) content.GetValueForProperty("RpoBackupFrequency",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoBackupFrequency, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsIncludedPaths = (string[]) content.GetValueForProperty("BackupContentWindowsIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsExcludedPaths = (string[]) content.GetValueForProperty("BackupContentWindowsExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentWindowsExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacIncludedPaths = (string[]) content.GetValueForProperty("BackupContentMacIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacExcludedPaths = (string[]) content.GetValueForProperty("BackupContentMacExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentMacExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixIncludedPaths = (string[]) content.GetValueForProperty("BackupContentUnixIncludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixIncludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixExcludedPaths = (string[]) content.GetValueForProperty("BackupContentUnixExcludedPaths",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentUnixExcludedPaths, __y => TypeConverterExtensions.SelectToArray<string>(__y, global::System.Convert.ToString));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentFileSystemQuota = (long?) content.GetValueForProperty("BackupContentFileSystemQuota",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentFileSystemQuota, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionFileVersions = (Commvault.Powershell.Models.ILaptopPlanRetentionFileVersions) content.GetValueForProperty("RetentionFileVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionFileVersions, Commvault.Powershell.Models.LaptopPlanRetentionFileVersionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionDeletedItemRetention = (long?) content.GetValueForProperty("RetentionDeletedItemRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionDeletedItemRetention, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionStoragePool = (string) content.GetValueForProperty("OverrideRestrictionStoragePool",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionStoragePool, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRpo = (string) content.GetValueForProperty("OverrideRestrictionRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRpo, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionBackupContent = (string) content.GetValueForProperty("OverrideRestrictionBackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionBackupContent, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRetention = (string) content.GetValueForProperty("OverrideRestrictionRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OverrideRestrictionRetention, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBasePlan = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("InheritSettingBasePlan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBasePlan, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingStoragePool = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingStoragePool",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingStoragePool, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRpo = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRpo, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBackupContent = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingBackupContent",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingBackupContent, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRetention = (Commvault.Powershell.Models.IPlanOverridenOptions) content.GetValueForProperty("InheritSettingRetention",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).InheritSettingRetention, Commvault.Powershell.Models.PlanOverridenOptionsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopRetireAfterDays = (long?) content.GetValueForProperty("OfflineLaptopRetireAfterDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopRetireAfterDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopDeleteAfterDays = (long?) content.GetValueForProperty("OfflineLaptopDeleteAfterDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).OfflineLaptopDeleteAfterDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleSend = (long?) content.GetValueForProperty("NetworkResourceThrottleSend",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleSend, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleReceive = (long?) content.GetValueForProperty("NetworkResourceThrottleReceive",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).NetworkResourceThrottleReceive, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyAddons = (Commvault.Powershell.Models.IPlanAddons) content.GetValueForProperty("AdditionalPropertyAddons",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyAddons, Commvault.Powershell.Models.PlanAddonsTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyRpo = (long?) content.GetValueForProperty("AdditionalPropertyRpo",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyRpo, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyStatus = (string) content.GetValueForProperty("AdditionalPropertyStatus",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AdditionalPropertyStatus, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStartCleaningIfLessThan = (long?) content.GetValueForProperty("ArchivingRuleStartCleaningIfLessThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStartCleaningIfLessThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStopCleaningIfupto = (long?) content.GetValueForProperty("ArchivingRuleStopCleaningIfupto",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleStopCleaningIfupto, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileAccessTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileAccessTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileAccessTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileModifiedTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileModifiedTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileModifiedTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileCreatedTimeOlderThan = (long?) content.GetValueForProperty("ArchivingRuleFileCreatedTimeOlderThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileCreatedTimeOlderThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileSizeGreaterThan = (long?) content.GetValueForProperty("ArchivingRuleFileSizeGreaterThan",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleFileSizeGreaterThan, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleMaximumFileSize = (long?) content.GetValueForProperty("ArchivingRuleMaximumFileSize",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleMaximumFileSize, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleArchiveReadOnlyFiles = (bool?) content.GetValueForProperty("ArchivingRuleArchiveReadOnlyFiles",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleArchiveReadOnlyFiles, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleAfterArchiving = (string) content.GetValueForProperty("ArchivingRuleAfterArchiving",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).ArchivingRuleAfterArchiving, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingIndexServer = (Commvault.Powershell.Models.IIdName) content.GetValueForProperty("EdgeDriveSettingIndexServer",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingIndexServer, Commvault.Powershell.Models.IdNameTypeConverter.ConvertFrom);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingAuditDriveOperations = (bool?) content.GetValueForProperty("EdgeDriveSettingAuditDriveOperations",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingAuditDriveOperations, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingNotificationsForShares = (bool?) content.GetValueForProperty("EdgeDriveSettingNotificationsForShares",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingNotificationsForShares, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingEdgeDriveQuota = (long?) content.GetValueForProperty("EdgeDriveSettingEdgeDriveQuota",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).EdgeDriveSettingEdgeDriveQuota, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaUseSystemDefaultSla = (bool?) content.GetValueForProperty("SlaUseSystemDefaultSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaUseSystemDefaultSla, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedSlaPeriod = (long?) content.GetValueForProperty("SlaInheritedSlaPeriod",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedSlaPeriod, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedFrom = (string) content.GetValueForProperty("SlaInheritedFrom",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaInheritedFrom, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaPeriod = (long?) content.GetValueForProperty("SlaPeriod",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaPeriod, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExcludeFromSla = (bool?) content.GetValueForProperty("SlaExcludeFromSla",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExcludeFromSla, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaEnableAfterDelay = (long?) content.GetValueForProperty("SlaEnableAfterDelay",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaEnableAfterDelay, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExclusionReason = (string) content.GetValueForProperty("SlaExclusionReason",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaExclusionReason, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaLogSlaMinutes = (long?) content.GetValueForProperty("SlaLogSlaMinutes",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).SlaLogSlaMinutes, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDays = (long?) content.GetValueForProperty("FileVersionDays",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDays, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionVersions = (long?) content.GetValueForProperty("FileVersionVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDailyVersions = (long?) content.GetValueForProperty("FileVersionDailyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionDailyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionWeeklyVersions = (long?) content.GetValueForProperty("FileVersionWeeklyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionWeeklyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionMonthlyVersions = (long?) content.GetValueForProperty("FileVersionMonthlyVersions",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).FileVersionMonthlyVersions, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanId = (long?) content.GetValueForProperty("BasePlanId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanName = (string) content.GetValueForProperty("BasePlanName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BasePlanName, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverrideBase = (string) content.GetValueForProperty("StoragePoolOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverridden = (bool?) content.GetValueForProperty("StoragePoolOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).StoragePoolOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverrideBase = (string) content.GetValueForProperty("RpoOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverridden = (bool?) content.GetValueForProperty("RpoOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RpoOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverrideBase = (string) content.GetValueForProperty("BackupContentOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverridden = (bool?) content.GetValueForProperty("BackupContentOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).BackupContentOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverrideBase = (string) content.GetValueForProperty("RetentionOverrideBase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverrideBase, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverridden = (bool?) content.GetValueForProperty("RetentionOverridden",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).RetentionOverridden, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonDatabase = (bool?) content.GetValueForProperty("AddonDatabase",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonDatabase, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonFileSystem = (bool?) content.GetValueForProperty("AddonFileSystem",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonFileSystem, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnap = (bool?) content.GetValueForProperty("AddonSnap",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnap, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnapStatus = (string) content.GetValueForProperty("AddonSnapStatus",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonSnapStatus, global::System.Convert.ToString);
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonIndexCopy = (bool?) content.GetValueForProperty("AddonIndexCopy",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).AddonIndexCopy, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerId = (long?) content.GetValueForProperty("IndexServerId",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerId, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long)));
            ((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerName = (string) content.GetValueForProperty("IndexServerName",((Commvault.Powershell.Models.ILaptopPlanDetailsInternal)this).IndexServerName, global::System.Convert.ToString);
            AfterDeserializePSObject(content);
        }

        /// <summary>Serializes this instance to a json string.</summary>

        /// <returns>a <see cref="System.String" /> containing this model serialized to JSON text.</returns>
        public string ToJsonString() => ToJson(null, Commvault.Powershell.Runtime.SerializationMode.IncludeAll)?.ToString();
    }
    [System.ComponentModel.TypeConverter(typeof(LaptopPlanDetailsTypeConverter))]
    public partial interface ILaptopPlanDetails

    {

    }
}