Public/Get-RBACProvider.ps1

function Get-RBACProvider {
    <#
    .SYNOPSIS
        Lists the registered RBAC probe providers (platforms).
 
    .DESCRIPTION
        Returns the distinct providers registered with the module: their canonical
        name, accepted aliases, and whether they support live probing. Useful for
        discovering valid -Platform values and which platforms can derive a
        requirement from a live failure (only Azure, today).
 
    .PARAMETER Platform
        Optional name or alias to resolve a single provider.
 
    .EXAMPLE
        Get-RBACProvider
 
    .EXAMPLE
        Get-RBACProvider -Platform Fabric
 
    .OUTPUTS
        PSCustomObject with Name, Aliases, SupportsLiveProbe.
    #>

    [CmdletBinding()]
    [OutputType([pscustomobject])]
    param(
        [Parameter()]
        [string]$Platform
    )

    Write-PSFMessage -Level Debug -Message "Get-RBACProvider: listing provider(s)$(if ($Platform) { " matching '$Platform'" })." -Tag 'PSAutoRBAC', 'Public'
    $providers = if ($Platform) { @(Get-RBACProviderInternal -Platform $Platform) }
                 else { @(Get-RBACRegisteredProvider) }

    foreach ($p in $providers) {
        [pscustomobject]@{
            PSTypeName        = 'PSAutoRBAC.ProviderInfo'
            Name              = $p.Name
            Aliases           = $p.Aliases
            SupportsLiveProbe = $p.SupportsLiveProbe
        }
    }
}