Private/Runtime/Get-OpenApiTokenUri.ps1

function Get-OpenApiTokenUri {
    <#
    .SYNOPSIS
        Returns the OAuth2 token endpoint: the context's TokenUri, else the scheme's clientCredentials flow TokenUrl.
    #>

    [CmdletBinding()]
    [OutputType([string])]
    param(
        [Parameter()]
        [AllowNull()]
        [object]$Scheme,

        [Parameter(Mandatory)]
        [pscustomobject]$Context
    )

    if (-not [string]::IsNullOrEmpty($Context.TokenUri)) {
        return $Context.TokenUri
    }
    $flows = Get-OpenApiMember -InputObject $Scheme -Name 'Flows'
    $clientCredentials = Get-OpenApiMember -InputObject $flows -Name 'clientCredentials'
    $tokenUrl = Get-OpenApiMember -InputObject $clientCredentials -Name 'TokenUrl'
    if ([string]::IsNullOrEmpty($tokenUrl)) {
        $tokenUrl = Get-OpenApiMember -InputObject $clientCredentials -Name 'tokenUrl'
    }
    return [string]$tokenUrl
}