DSCResources/MSFT_SPDiagnosticLoggingSettings/MSFT_SPDiagnosticLoggingSettings.schema.mof

/*
**Description**
 
This resource is responsible for configuring settings to do with the diagnostic (ULS) logging on servers in the farm.
These settings are applied to the diagnostic logging service for the farm and do not need to be applied to each server individually, the settings will be propagated throughout the farm when they are set.
 
**Example**
 
    SPDiagnosticLoggingSettings ApplyDiagnosticLogSettings
    {
        PsDscRunAsCredential = $InstallAccount
        LogPath = "L:\ULSLogs"
        LogSpaceInGB = 10
        AppAnalyticsAutomaticUploadEnabled = $false
        CustomerExperienceImprovementProgramEnabled = $true
        DaysToKeepLogs = 7
        DownloadErrorReportingUpdatesEnabled = $false
        ErrorReportingAutomaticUploadEnabled = $false
        ErrorReportingEnabled = $false
        EventLogFloodProtectionEnabled = $true
        EventLogFloodProtectionNotifyInterval = 5
        EventLogFloodProtectionQuietPeriod = 2
        EventLogFloodProtectionThreshold = 5
        EventLogFloodProtectionTriggerPeriod = 2
        LogCutInterval = 15
        LogMaxDiskSpaceUsageEnabled = $true
        ScriptErrorReportingDelay = 30
        ScriptErrorReportingEnabled = $true
        ScriptErrorReportingRequireAuth = $true
    }
*/
[ClassVersion("1.0.0.0"), FriendlyName("SPDiagnosticLoggingSettings")]
class MSFT_SPDiagnosticLoggingSettings : OMI_BaseResource
{
    [Key, Description("The physical path on each server to store ULS logs")] string LogPath;
    [Required, Description("The space in GB that should be used to store ULS logs")] uint32 LogSpaceInGB;
    [Write, Description("Should app analytics automatically be uploaded")] boolean AppAnalyticsAutomaticUploadEnabled;
    [Write, Description("Should the customer experience program be enabled in this farm")] boolean CustomerExperienceImprovementProgramEnabled;
    [Write, Description("How many days should ULS logs be kept for")] uint32 DaysToKeepLogs;
    [Write, Description("Should updates to error reporting tools be automatically downloaded")] boolean DownloadErrorReportingUpdatesEnabled;
    [Write, Description("Should error reports be automatically uploaded")] boolean ErrorReportingAutomaticUploadEnabled;
    [Write, Description("Should reporting of errors be enabled")] boolean ErrorReportingEnabled;
    [Write, Description("Protect event logs with Event Log Flood Protection")] boolean EventLogFloodProtectionEnabled;
    [Write, Description("What interval should the event logs report a flood event")] uint32 EventLogFloodProtectionNotifyInterval;
    [Write, Description("What quiet period should reset the event log flood protection thresholds")] uint32 EventLogFloodProtectionQuietPeriod;
    [Write, Description("What is the event log flood protection threshold")] uint32 EventLogFloodProtectionThreshold;
    [Write, Description("What is the time period that will trigger event log flood protection")] uint32 EventLogFloodProtectionTriggerPeriod;
    [Write, Description("How many minutes of activity will a ULS log file leep in an individual file")] uint32 LogCutInterval;
    [Write, Description("Will the maximum disk space setting be enabled")] boolean LogMaxDiskSpaceUsageEnabled;
    [Write, Description("What delay will be set before script error reporting is triggered")] uint32 ScriptErrorReportingDelay;
    [Write, Description("Is script error reporting enabled in this farm")] boolean ScriptErrorReportingEnabled;
    [Write, Description("Require users to be authenticated to allow script errors to be reported")] boolean ScriptErrorReportingRequireAuth;
    [Write, Description("POWERSHELL 4 ONLY: The account to run this resource as, use PsDscRunAsAccount if using PowerShell 5"), EmbeddedInstance("MSFT_Credential")] String InstallAccount;
};