DSCResources/cIntuneAntivirusPolicyWindows10SettingCatalog/cIntuneAntivirusPolicyWindows10SettingCatalog.schema.psm1

configuration cIntuneAntivirusPolicyWindows10SettingCatalog {
    param (
        [Parameter()]
        [hashtable[]]
        $Items
)

<#
IntuneAntivirusPolicyWindows10SettingCatalog [String] #ResourceName
{
    DisplayName = [string]
    [AccessTokens = [string[]]]
    [AllowArchiveScanning = [string]{ 0 | 1 }]
    [AllowBehaviorMonitoring = [string]{ 0 | 1 }]
    [AllowCloudProtection = [string]{ 0 | 1 }]
    [AllowDatagramProcessingOnWinServer = [string]{ 0 | 1 }]
    [AllowEmailScanning = [string]{ 0 | 1 }]
    [AllowFullScanOnMappedNetworkDrives = [string]{ 0 | 1 }]
    [AllowFullScanRemovableDriveScanning = [string]{ 0 | 1 }]
    [AllowIntrusionPreventionSystem = [string]{ 0 | 1 }]
    [AllowIOAVProtection = [string]{ 0 | 1 }]
    [AllowNetworkProtectionDownLevel = [string]{ 0 | 1 }]
    [AllowOnAccessProtection = [string]{ 0 | 1 }]
    [AllowRealtimeMonitoring = [string]{ 0 | 1 }]
    [AllowScanningNetworkFiles = [string]{ 0 | 1 }]
    [AllowScriptScanning = [string]{ 0 | 1 }]
    [AllowUserUIAccess = [string]{ 0 | 1 }]
    [ApplicationId = [string]]
    [ApplicationSecret = [PSCredential]]
    [ArchiveMaxDepth = [Int32]]
    [ArchiveMaxSize = [Int32]]
    [Assignments = [MSFT_DeviceManagementConfigurationPolicyAssignments[]]]
    [AvgCPULoadFactor = [Int32]]
    [CertificateThumbprint = [string]]
    [CheckForSignaturesBeforeRunningScan = [string]{ 0 | 1 }]
    [CloudBlockLevel = [string]{ 0 | 2 | 4 | 6 }]
    [CloudExtendedTimeout = [Int32]]
    [CompanyName = [string]]
    [Credential = [PSCredential]]
    [DaysToRetainCleanedMalware = [Int32]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisableAccountProtectionUI = [string]{ 0 | 1 }]
    [DisableAppBrowserUI = [string]{ 0 | 1 }]
    [DisableCatchupFullScan = [string]{ 0 | 1 }]
    [DisableCatchupQuickScan = [string]{ 0 | 1 }]
    [DisableClearTpmButton = [string]{ 0 | 1 }]
    [DisableCoreServiceECSIntegration = [string]{ 0 | 1 }]
    [DisableCoreServiceTelemetry = [string]{ 0 | 1 }]
    [DisableDeviceSecurityUI = [string]{ 0 | 1 }]
    [DisableDnsOverTcpParsing = [string]{ 0 | 1 }]
    [DisableEnhancedNotifications = [string]{ 0 | 1 }]
    [DisableFamilyUI = [string]{ 0 | 1 }]
    [DisableHealthUI = [string]{ 0 | 1 }]
    [DisableHttpParsing = [string]{ 0 | 1 }]
    [DisableLocalAdminMerge = [string]{ 0 | 1 }]
    [DisableNetworkUI = [string]{ 0 | 1 }]
    [DisableSshParsing = [string]{ 0 | 1 }]
    [DisableTlsParsing = [string]{ 0 | 1 }]
    [DisableTpmFirmwareUpdateWarning = [string]{ 0 | 1 }]
    [DisableVirusUI = [string]{ 0 | 1 }]
    [Email = [string]]
    [EnableCustomizedToasts = [string]{ 0 | 1 }]
    [EnableInAppCustomization = [string]{ 0 | 1 }]
    [EnableLowCPUPriority = [string]{ 0 | 1 }]
    [EnableNetworkProtection = [string]{ 0 | 1 | 2 }]
    [EngineUpdatesChannel = [string]{ 0 | 2 | 3 | 4 | 5 | 6 }]
    [Ensure = [string]{ Absent | Present }]
    [ExcludedExtensions = [string[]]]
    [ExcludedPaths = [string[]]]
    [ExcludedProcesses = [string[]]]
    [HideRansomwareDataRecovery = [string]{ 0 | 1 }]
    [HideWindowsSecurityNotificationAreaControl = [string]{ 0 | 1 }]
    [HighSeverityThreats = [string]{ allow | block | clean | quarantine | remove | userdefined }]
    [Identity = [string]]
    [LowSeverityThreats = [string]{ allow | block | clean | quarantine | remove | userdefined }]
    [ManagedIdentity = [bool]]
    [MeteredConnectionUpdates = [string]]
    [ModerateSeverityThreats = [string]{ allow | block | clean | quarantine | remove | userdefined }]
    [Phone = [string]]
    [PlatformUpdatesChannel = [string]{ 0 | 2 | 3 | 4 | 5 | 6 }]
    [PsDscRunAsCredential = [PSCredential]]
    [PUAProtection = [string]{ 0 | 1 | 2 }]
    [RandomizeScheduleTaskTimes = [string]{ 0 | 1 }]
    [RealTimeScanDirection = [string]{ 0 | 1 | 2 }]
    [ScanParameter = [string]{ 1 | 2 }]
    [ScheduleQuickScanTime = [Int32]]
    [SchedulerRandomizationTime = [Int32]]
    [ScheduleScanDay = [string]{ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 }]
    [ScheduleScanTime = [Int32]]
    [SecurityIntelligenceUpdatesChannel = [string]{ 0 | 4 | 5 }]
    [SevereThreats = [string]{ allow | block | clean | quarantine | remove | userdefined }]
    [SignatureUpdateFallbackOrder = [string[]]]
    [SignatureUpdateFileSharesSources = [string[]]]
    [SignatureUpdateInterval = [Int32]]
    [SubmitSamplesConsent = [string]{ 0 | 1 | 2 | 3 }]
    [TamperProtection = [string]{ 0 | 1 }]
    [TemplateId = [string]{ 45fea5e9-280d-4da1-9792-fb5736da0ca9_1 | 804339ad-1553-4478-a742-138fb5807418_1 | d948ff9b-99cb-4ee0-8012-1fbc09685377_1 | e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1 }]
    [TenantId = [string]]
    [URL = [string]]
}
 
#>



    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName Microsoft365DSC

    $dscResourceName = 'IntuneAntivirusPolicyWindows10SettingCatalog'

    $param = $PSBoundParameters
    $param.Remove("InstanceName")

    $dscParameterKeys = 'DisplayName' -split ', '

        foreach ($item in $Items)
        {
            if (-not $item.ContainsKey('Ensure'))
            {
                $item.Ensure = 'Present'
            }
            $keyValues = foreach ($key in $dscParameterKeys)
        {
            $item.$key
        }
        $executionName = $keyValues -join '_'
        $executionName = $executionName -replace "[\s()\\:*-+/{}```"']", '_'
        (Get-DscSplattedResource -ResourceName $dscResourceName -ExecutionName $executionName -Properties $item -NoInvoke).Invoke($item)
    }
}