FinOpsVMMetrics.psd1

@{
    RootModule        = 'FinOpsVMMetrics.psm1'
    ModuleVersion     = '0.1.2'
    GUID              = 'a557d45a-3cba-4998-a4b1-ef32536ae958'
    Author            = 'FinCops / AIforFinOpsNavigator'
    CompanyName       = 'Well Architected'
    Copyright         = '(c) Well Architected. All rights reserved.'
    Description       = 'Reads Azure VM utilisation from Azure Monitor platform metrics (no guest agent) and exports VMPerformance-compatible monthly rows (CPU percentiles + memory) for FinOps rightsizing.'

    PowerShellVersion = '7.2'

    # NB: Az modules are intentionally NOT declared as RequiredModules. Pinning Az submodule
    # versions makes Install-Module pull newer Az packages that conflict with the Az already
    # loaded in Azure Cloud Shell, so the module fails to import there. The functions only
    # *call* Az cmdlets (Get-AzVM, Get-AzMetric, Get-AzComputeResourceSku, Set-AzStorageBlobContent),
    # which auto-load on demand from whatever Az is present. Required: Az.Accounts, Az.Monitor,
    # Az.Compute, Az.Storage (all present in Cloud Shell).

    FunctionsToExport = @(
        'Invoke-VMMetricsCollection',
        'Get-AzVMUtilization',
        'Export-VMPerformanceData',
        'Publish-VMPerformanceData'
    )
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @()

    PrivateData = @{
        PSData = @{
            Tags         = @('Azure', 'FinOps', 'Rightsizing', 'Metrics', 'AzureMonitor', 'VM')
            ProjectUri   = 'https://github.com/wellarchitectedch/AIforFinOpsNavigator'
            ReleaseNotes = 'v0.1.2: drop hard Az RequiredModules pins (fixes import failure in Azure Cloud Shell). v0.1.1: multi-subscription sweep into one CSV; SAS-token upload for cross-tenant Cloud Shell. v0.1.0: initial platform-metric collection.'
        }
    }
}