SecretManagement.VMware.CloudFoundation.Extension/private/Test-SecretVaultAccessToken.ps1

function Test-SecretVaultAccessToken {
    [CmdletBinding()]
    param (
        [string] $VaultName,
        [hashtable] $AdditionalParameters,
        [string] $Server,
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string] $AccessToken
    )

    $uri = ('{0}/v1/sddc-managers' -f $Server)

    $script:testHeaders = @{
        'Accept' = 'application/json'
        'Authorization' = ('Bearer {0}' -f $AccessToken)
    }

    $response = Invoke-RestMethod -Uri $uri -Headers $testheaders -Method GET @script:irmSplat

    if ($statusCode -ne '200') {
        switch ($statusCode) {
            '403' {
                Write-Debug 'Access token has insufficient privileges'
            }
            default {
                Write-Debug 'Access token is either invalid or expired'
            }
        }

        $false
    }
    else {
        try {
            [version]$version = $response.elements.version.tostring().split('-')[0]
            
            Write-Debug ("VMware Cloud Foundation instance '{0}' is on version '{1}'" -f $Server, $version)

            $true            
        }
        catch {
            Write-Error ("Received garbled version number from VMware Cloud Foundation instance '{0}': {1}" -f $Server, $_)

            $false
        }
    }
}