AzurePolicyWatch.psm1
|
# AzurePolicyWatch Module Loader # Azure Policy compliance comparison module - Loads all Private and Public functions # Module-scoped caches (persistent across function calls) $script:PolicyDefinitionCache = @{} $script:PolicySetCache = @{} # Import Utils functions Get-ChildItem "$PSScriptRoot/Private/Utils/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Utils function: $($_.BaseName)" } # Import Azure functions Get-ChildItem "$PSScriptRoot/Private/Azure/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Azure function: $($_.BaseName)" } # Import Baseline functions Get-ChildItem "$PSScriptRoot/Private/Baseline/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Baseline function: $($_.BaseName)" } # Import Scanning functions Get-ChildItem "$PSScriptRoot/Private/Scanning/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Scanning function: $($_.BaseName)" } # Import Comparison functions Get-ChildItem "$PSScriptRoot/Private/Comparison/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Comparison function: $($_.BaseName)" } # Import Export functions Get-ChildItem "$PSScriptRoot/Private/Export/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Export function: $($_.BaseName)" } # Import Public functions (Week 4) Get-ChildItem "$PSScriptRoot/Public/*.ps1" | ForEach-Object { . $_.FullName Write-Verbose "Loaded Public function: $($_.BaseName)" } # Export Public functions only Export-ModuleMember -Function @( 'Get-AzPolicyBaseline', 'Get-AzPolicyAssignmentScan', 'Compare-AzPolicyCompliance', 'Export-PolicyReport', 'Invoke-AzPolicyWatch' ) |