FinOpsVMMetrics.psm1

# Root module: dot-source all Private + Public functions, export only Public.
$Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private') -Filter '*.ps1' -ErrorAction SilentlyContinue)
$Public  = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public')  -Filter '*.ps1' -ErrorAction SilentlyContinue)

foreach ($file in @($Private + $Public)) {
    try {
        . $file.FullName
    }
    catch {
        Write-Error "Failed to import $($file.FullName): $_"
    }
}

# Process-lifetime cache for SKU -> RAM lookups (keyed by location).
$script:VMSkuRamCache = @{}

Export-ModuleMember -Function $Public.BaseName