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 }]
    [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)
    }
}