manifests/collectors/Management/AdvisorScore.psd1

#
# GENERATED by scripts/ConvertTo-ScoutCollectorDefinition.ps1 from Modules/Public/InventoryModules/Management/AdvisorScore.ps1 (AB#5660).
# Field expressions are copied verbatim from the original collector and evaluate in an
# equivalent scope -- see docs/design/decisions/declarative-collectors.md.
# Review before trusting; regenerate rather than hand-patch if the source collector changes.
#
@{
    ResourceTypes = @(
        'Microsoft.Advisor/advisorScore'
    )

    ResourceTypeMatching = 'Grouped'

    AdditionalFilter = $null

    FilterPreamble = ''

    RowLoopVariable = '1'

    Preamble = @'
$ResUCount = 1
                        $SubId = (Get-AZSCIdSegment -Id $1.id -Index 2)
                        $sub1 = $SUB | Where-Object { $_.id -eq $SubId }
                        $data = $1.PROPERTIES
                        $Series = $data.timeSeries | Where-Object {$_.aggregationLevel -eq 'Monthly'}
 
                        $RefreshDate = $data.lastRefreshedScore.date
                        $RefreshDate = [datetime]$RefreshDate
                        $RefreshDate = $RefreshDate.ToString("yyyy-MM-dd")
'@


    RowCondition = '$1.name -in (''Cost'',''OperationalExcellence'',''Performance'',''Security'',''HighAvailability'',''Advisor'')'

    AdditionalRowLoops = @(
        @{
            Variable = 'Serie'
            Source = '$Series.scoreHistory'
            Preamble = @'
$Date = $Serie.date
                                $Date = [datetime]$Date
                                $Date = $Date.ToString("yyyy-MM-dd")
'@

        }
    )

    TagLoop = $null

    Fields = @(
        @{
            Name = 'ID'
            Expression = '$1.id'
        }
        @{
            Name = 'Subscription'
            Expression = '$sub1.Name'
        }
        @{
            Name = 'Category'
            Expression = '$1.Name'
        }
        @{
            Name = 'Latest Score (%)'
            Expression = '$data.lastRefreshedScore.score'
        }
        @{
            Name = 'Latest Refresh Score'
            Expression = '$RefreshDate'
        }
        @{
            Name = 'Score Date'
            Expression = '$Date'
        }
        @{
            Name = 'Score'
            Expression = '$Serie.score'
        }
        @{
            Name = 'Impacted Resources'
            Expression = '$Serie.impactedResourceCount'
        }
        @{
            Name = 'Consumption Units'
            Expression = '$Serie.consumptionUnits'
        }
        @{
            Name = 'Potential Score Increase'
            Expression = '$Serie.potentialScoreIncrease'
        }
        @{
            Name = 'Resource U'
            Expression = '$ResUCount'
        }
    )

    Export = @{
        WorksheetName = 'AdvisorScore'
        TableNamePrefix = 'AdvScTab_'
        Columns = @(
            'Subscription'
            'Category'
            'Latest Score (%)'
            'Latest Refresh Score'
            'Score Date'
            'Score'
            'Impacted Resources'
            'Consumption Units'
            'Potential Score Increase'
        )
        TagColumns = @()
        TagColumnsBefore = $null
        NumberFormat = '0'
        ConditionalText = @()
    }

    SourceCollector = 'Modules/Public/InventoryModules/Management/AdvisorScore.ps1'
}