manifests/collectors/Analytics/Databricks.psd1

#
# GENERATED by scripts/ConvertTo-ScoutCollectorDefinition.ps1 from Modules/Public/InventoryModules/Analytics/Databricks.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.databricks/workspaces'
    )

    ResourceTypeMatching = 'Grouped'

    AdditionalFilter = $null

    FilterPreamble = ''

    RowLoopVariable = '1'

    Preamble = @'
$ResUCount = 1
                $sub1 = $SUB | Where-Object { $_.id -eq $1.subscriptionId }
                $data = $1.PROPERTIES
                $sku = $1.SKU
                $RetDate = ''
                $RetFeature = ''
                $timecreated = $data.createdDateTime
                $timecreated = [datetime]$timecreated
                $timecreated = $timecreated.ToString("yyyy-MM-dd HH:mm")
                $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
                    }
                $PIP = if($data.parameters.enableNoPublicIp.value -eq 'False'){$true}else{$false}
                $VNET = $data.parameters.customVirtualNetworkId.value.split('/')[8]
                $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 = 'Name'
            Expression = '$1.NAME'
        }
        @{
            Name = 'Location'
            Expression = '$1.LOCATION'
        }
        @{
            Name = 'Pricing Tier'
            Expression = '$sku.name'
        }
        @{
            Name = 'Retiring Feature'
            Expression = '$RetiringFeature'
        }
        @{
            Name = 'Retiring Date'
            Expression = '$RetiringDate'
        }
        @{
            Name = 'Managed Resource Group'
            Expression = '$data.managedResourceGroupId.split(''/'')[4]'
        }
        @{
            Name = 'Storage Account'
            Expression = '$data.parameters.storageAccountName.value'
        }
        @{
            Name = 'Storage Account SKU'
            Expression = '$data.parameters.storageAccountSkuName.value'
        }
        @{
            Name = 'Infrastructure Encryption'
            Expression = '$data.parameters.requireInfrastructureEncryption.value'
        }
        @{
            Name = 'Prepare Encryption'
            Expression = '$data.parameters.prepareEncryption.value'
        }
        @{
            Name = 'Enable Public IP'
            Expression = '$PIP'
        }
        @{
            Name = 'Custom Virtual Network'
            Expression = '$VNET'
        }
        @{
            Name = 'Custom Private Subnet'
            Expression = '$data.parameters.customPrivateSubnetName.value'
        }
        @{
            Name = 'Custom Public Subnet'
            Expression = '$data.parameters.customPublicSubnetName.value'
        }
        @{
            Name = 'URL'
            Expression = '$data.workspaceUrl'
        }
        @{
            Name = 'Created Time'
            Expression = '$timecreated'
        }
        @{
            Name = 'Resource U'
            Expression = '$ResUCount'
        }
        @{
            Name = 'Tag Name'
            Expression = '[string]$Tag.Name'
        }
        @{
            Name = 'Tag Value'
            Expression = '[string]$Tag.Value'
        }
    )

    Export = @{
        WorksheetName = 'Databricks'
        TableNamePrefix = 'DBricksTable_'
        Columns = @(
            'Subscription'
            'Resource Group'
            'Name'
            'Location'
            'Retiring Feature'
            'Retiring Date'
            'Pricing Tier'
            'Managed Resource Group'
            'Storage Account'
            'Storage Account SKU'
            'Infrastructure Encryption'
            'Prepare Encryption'
            'Enable Public IP'
            'Custom Virtual Network'
            'Custom Private Subnet'
            'Custom Public Subnet'
            'URL'
            'Created Time'
            'Resource U'
        )
        TagColumns = @(
            'Tag Name'
            'Tag Value'
        )
        TagColumnsBefore = 'Resource U'
        NumberFormat = '0'
        ConditionalText = @(
            'New-ConditionalText -Range E2:E100 -ConditionalType ContainsText'
            'New-ConditionalText FALSE -Range K:K'
            'New-ConditionalText FALSE -Range L:L'
        )
    }

    SourceCollector = 'Modules/Public/InventoryModules/Analytics/Databricks.ps1'
}