Private/Get-PSURoleDefDetails.ps1

function Get-PSURoleDefDetails {
    param([string] $RoleDefId, [string] $RoleDefName)
    try { $rd = Get-AzRoleDefinition -Id $RoleDefId -ErrorAction Stop } catch { try { $rd = Get-AzRoleDefinition -Name $RoleDefName -ErrorAction SilentlyContinue } catch { $rd = $null } }
    if (-not $rd) { return $null }
    return [PSCustomObject]@{
        Name = $rd.RoleName; Id = $rd.Id; Description = $rd.Description;
        Actions = ($rd.Actions -join ';'); NotActions = ($rd.NotActions -join ';');
        DataActions = ($rd.DataActions -join ';'); NotDataActions = ($rd.NotDataActions -join ';');
        AssignableScopes = $rd.AssignableScopes
    }
}