DSCResources/FirewallRules/FirewallRules.schema.psm1

configuration FirewallRules {
    param (
        [Parameter(Mandatory = $true)]
        [hashtable[]]$Rules
    )

    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xPSDesiredStateConfiguration
    Import-DscResource -ModuleName NetworkingDsc

    foreach ($item in $Rules)
    {
        $executionName = "Firewall_$($item.Name)"
        (Get-DscSplattedResource -ResourceName Firewall -ExecutionName $executionName -Properties $item -NoInvoke).Invoke($item)
    }

}