manifests/collectors/Containers/ARO.psd1

#
# GENERATED by scripts/ConvertTo-ScoutCollectorDefinition.ps1 from Modules/Public/InventoryModules/Containers/ARO.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.redhatopenshift/openshiftclusters'
    )

    ResourceTypeMatching = 'Grouped'

    AdditionalFilter = $null

    FilterPreamble = ''

    RowLoopVariable = '1'

    Preamble = @'
$ResUCount = 1
                $sub1 = $SUB | Where-Object { $_.id -eq $1.subscriptionId }
                $data = $1.PROPERTIES
                $Retired = Foreach ($Retirement in $Retirements)
                    {
                        if ($Retirement.id -eq $1.id) { $Retirement }
                    }
                if ($Retired)
                    {
                        $RetiredFeature = foreach ($Retire in $Retired)
                            {
                                $RetiredServiceID = $Unsupported | Where-Object {$_.Id -eq $Retired.ServiceID}
                                $tmp0 = [pscustomobject]@{
                                        'RetiredFeature' = $RetiredServiceID.RetiringFeature
                                        'RetiredDate' = $RetiredServiceID.RetirementDate
                                    }
                                $tmp0
                            }
                        $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
                    }
                $Tags = if(![string]::IsNullOrEmpty($1.tags.psobject.properties)){$1.tags.psobject.properties}else{'0'}
'@


    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 = 'Clusters'
            Expression = '$1.NAME'
        }
        @{
            Name = 'Location'
            Expression = '$1.LOCATION'
        }
        @{
            Name = 'Retiring Feature'
            Expression = '$RetiringFeature'
        }
        @{
            Name = 'Retiring Date'
            Expression = '$RetiringDate'
        }
        @{
            Name = 'ARO Version'
            Expression = '$data.clusterProfile.version'
        }
        @{
            Name = 'ARO Domain'
            Expression = '$data.clusterProfile.domain'
        }
        @{
            Name = 'Outbound Type'
            Expression = '$data.networkProfile.outboundType'
        }
        @{
            Name = 'Ingress Profile Name'
            Expression = '$data.ingressProfiles.name'
        }
        @{
            Name = 'Ingress Profile type'
            Expression = '$data.ingressProfiles.visibility'
        }
        @{
            Name = 'Ingress Profile IP'
            Expression = '$data.ingressProfiles.ip'
        }
        @{
            Name = 'API Server type'
            Expression = '$data.apiserverProfile.visibility'
        }
        @{
            Name = 'API Server URL'
            Expression = '$data.apiserverProfile.url'
        }
        @{
            Name = 'API Server IP'
            Expression = '$data.apiserverProfile.ip'
        }
        @{
            Name = 'Docker Pod Cidr'
            Expression = '$data.networkProfile.podCidr'
        }
        @{
            Name = 'Service Cidr'
            Expression = '$data.networkProfile.serviceCidr'
        }
        @{
            Name = 'Console URL'
            Expression = '$data.consoleProfile.url'
        }
        @{
            Name = 'Master SKU'
            Expression = '$data.masterProfile.vmSize'
        }
        @{
            Name = 'Master vNET'
            Expression = 'if($data.masterProfile.subnetId){$data.masterProfile.subnetId.split("/")[8]}'
        }
        @{
            Name = 'Master Subnet'
            Expression = 'if($data.masterProfile.subnetId){$data.masterProfile.subnetId.split("/")[10]}'
        }
        @{
            Name = 'Worker SKU'
            Expression = '$data.workerProfiles.vmSize | Select-Object -Unique'
        }
        @{
            Name = 'Worker DiskSize'
            Expression = '$data.workerProfiles.diskSizeGB | Select-Object -Unique'
        }
        @{
            Name = 'Total Worker Nodes'
            Expression = '@($data.workerProfiles).count'
        }
        @{
            Name = 'Worker vNET'
            Expression = '$data.workerProfiles.subnetId | ForEach-Object { $_.split("/")[8] } | Select-Object -Unique'
        }
        @{
            Name = 'Worker Subnet'
            Expression = '$data.workerProfiles.subnetId | ForEach-Object { $_.split("/")[10] } | Select-Object -Unique'
        }
        @{
            Name = 'Resource U'
            Expression = '$ResUCount'
        }
        @{
            Name = 'Tag Name'
            Expression = '[string]$Tag.Name'
        }
        @{
            Name = 'Tag Value'
            Expression = '[string]$Tag.Value'
        }
    )

    Export = @{
        WorksheetName = 'ARO'
        TableNamePrefix = 'AROTable_'
        Columns = @(
            'Subscription'
            'Resource Group'
            'Clusters'
            'Location'
            'Retiring Feature'
            'Retiring Date'
            'ARO Version'
            'ARO Domain'
            'Outbound Type'
            'Ingress Profile Name'
            'Ingress Profile type'
            'Ingress Profile IP'
            'API Server type'
            'API Server URL'
            'API Server IP'
            'Docker Pod Cidr'
            'Service Cidr'
            'Console URL'
            'Master SKU'
            'Master vNET'
            'Master Subnet'
            'Worker SKU'
            'Worker DiskSize'
            'Total Worker Nodes'
            'Worker vNET'
            'Worker Subnet'
            'Resource U'
        )
        TagColumns = @(
            'Tag Name'
            'Tag Value'
        )
        TagColumnsBefore = 'Resource U'
        NumberFormat = '0'
        ConditionalText = @(
            'New-ConditionalText -Range E2:E100 -ConditionalType ContainsText'
        )
    }

    SourceCollector = 'Modules/Public/InventoryModules/Containers/ARO.ps1'
}