manifests/collectors/Hybrid/ArcExtensions.psd1
|
# # GENERATED by scripts/ConvertTo-ScoutCollectorDefinition.ps1 from Modules/Public/InventoryModules/Hybrid/ArcExtensions.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.hybridcompute/machines/extensions' ) ResourceTypeMatching = 'Grouped' AdditionalFilter = $null FilterPreamble = '' RowLoopVariable = '1' Preamble = @' $ResUCount = 1 $sub1 = $SUB | Where-Object { $_.id -eq $1.subscriptionId } $data = $1.PROPERTIES $Tags = if (![string]::IsNullOrEmpty($1.tags.psobject.properties)) { $1.tags.psobject.properties } else { '0' } $Retired = $Retirements | Where-Object { $_.id -eq $1.id } if ($Retired) { $RetiredFeature = foreach ($Retire in $Retired) { $RetiredServiceID = $Unsupported | Where-Object { $_.Id -eq $Retired.ServiceID } [pscustomobject]@{ 'RetiredFeature' = $RetiredServiceID.RetiringFeature 'RetiredDate' = $RetiredServiceID.RetirementDate } } $RetiringFeature = if (@($RetiredFeature.RetiredFeature).count -gt 1) { $RetiredFeature.RetiredFeature | ForEach-Object { $_ + ' ,' } } else { $RetiredFeature.RetiredFeature } $RetiringFeature = [string]$RetiringFeature $RetiringFeature = if ($RetiringFeature -like '* ,*') { $RetiringFeature -replace ".$" } else { $RetiringFeature } $RetiringDate = if (@($RetiredFeature.RetiredDate).count -gt 1) { $RetiredFeature.RetiredDate | ForEach-Object { $_ + ' ,' } } else { $RetiredFeature.RetiredDate } $RetiringDate = [string]$RetiringDate $RetiringDate = if ($RetiringDate -like '* ,*') { $RetiringDate -replace ".$" } else { $RetiringDate } } else { $RetiringFeature = $null $RetiringDate = $null } # Extract machine name from resource id # Format: .../machines/{machineName}/extensions/{extensionName} $MachineName = if ($1.id -match '/machines/([^/]+)/extensions/') { $Matches[1] } else { $null } # Status message $StatusMessage = if ($data.instanceView.status.message) { $data.instanceView.status.message.Substring(0, [Math]::Min($data.instanceView.status.message.Length, 100)) } else { $null } # Deep config additions $SettingsJson = if ($data.settings) { ($data.settings | ConvertTo-Json -Compress -Depth 3) } else { 'N/A' } $HasProtectedSet = if ($data.protectedSettings) { 'Yes' } else { 'No' } $InstanceViewTime = if ($data.instanceView.status.time) { $data.instanceView.status.time } else { 'N/A' } '@ AdditionalRowLoops = @() TagLoop = @{ Variable = 'Tag' Source = '$Tags' Preamble = '' } Fields = @( @{ Name = 'ID' Expression = '$1.id' } @{ Name = 'Subscription' Expression = '$sub1.name' } @{ Name = 'Resource Group' Expression = '$1.RESOURCEGROUP' } @{ Name = 'Machine Name' Expression = '$MachineName' } @{ Name = 'Extension Name' Expression = '$1.NAME' } @{ Name = 'Location' Expression = '$1.LOCATION' } @{ Name = 'Retiring Feature' Expression = '$RetiringFeature' } @{ Name = 'Retiring Date' Expression = '$RetiringDate' } @{ Name = 'Provisioning State' Expression = '$data.provisioningState' } @{ Name = 'Publisher' Expression = '$data.publisher' } @{ Name = 'Type' Expression = '$data.type' } @{ Name = 'Type Handler Version' Expression = '$data.typeHandlerVersion' } @{ Name = 'Auto Upgrade Minor' Expression = '$data.autoUpgradeMinorVersion' } @{ Name = 'Enable Auto Upgrade' Expression = '$data.enableAutomaticUpgrade' } @{ Name = 'Status' Expression = '$data.instanceView.status.code' } @{ Name = 'Status Message' Expression = '$StatusMessage' } @{ Name = 'Instance View Time' Expression = '$InstanceViewTime' } @{ Name = 'Settings' Expression = '$SettingsJson' } @{ Name = 'Has Protected Settings' Expression = '$HasProtectedSet' } @{ Name = 'Resource U' Expression = '$ResUCount' } @{ Name = 'Tag Name' Expression = '[string]$Tag.Name' } @{ Name = 'Tag Value' Expression = '[string]$Tag.Value' } ) Export = @{ WorksheetName = 'Arc Extensions' TableNamePrefix = 'ArcExtensions_' Columns = @( 'Subscription' 'Resource Group' 'Machine Name' 'Extension Name' 'Location' 'Provisioning State' 'Retiring Feature' 'Retiring Date' 'Publisher' 'Type' 'Type Handler Version' 'Auto Upgrade Minor' 'Enable Auto Upgrade' 'Status' 'Status Message' 'Instance View Time' 'Settings' 'Has Protected Settings' 'Resource U' ) TagColumns = @( 'Tag Name' 'Tag Value' ) TagColumnsBefore = 'Resource U' NumberFormat = '0' ConditionalText = @( 'New-ConditionalText -Range F2:F100 -ConditionalType ContainsText' 'New-ConditionalText Failed -Range H:H' ) } SourceCollector = 'Modules/Public/InventoryModules/Hybrid/ArcExtensions.ps1' } |