modules/Azure/Discovery/Private/GetCIEMAzureEntityConfig.ps1

function GetCIEMAzureEntityConfig {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [string]$Entity
    )

    $ErrorActionPreference = 'Stop'

    if (-not $script:CIEMAzureEntitiesConfig) {
        throw 'GetCIEMAzureEntityConfig: $script:CIEMAzureEntitiesConfig is not loaded. Module init failed.'
    }

    if (-not $script:CIEMAzureEntitiesConfig.ContainsKey($Entity)) {
        $known = ($script:CIEMAzureEntitiesConfig.Keys | Sort-Object) -join ', '
        throw "GetCIEMAzureEntityConfig: unknown entity '$Entity'. Known entities: $known"
    }

    $config = $script:CIEMAzureEntitiesConfig[$Entity]
    foreach ($requiredKey in 'Table', 'Class', 'KeyColumns', 'SelectColumns', 'InsertColumns', 'FilterColumns', 'WritableColumns', 'PropertyMap') {
        if (-not $config.ContainsKey($requiredKey)) {
            throw "GetCIEMAzureEntityConfig: entity '$Entity' is missing required key '$requiredKey'."
        }
    }

    $config
}