Private/Invoke-DuneApiAuthBearer.ps1

function Invoke-DuneApiAuthBearer {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [ValidateSet("Prod", "Dev","Test","Local")]
        [string]$DuneInstance,

        [Parameter(Mandatory)]
        [string]$Tenant,

        [Parameter(Mandatory)]
        [string]$BearerToken
    )

    $DuneApiUrl = Get-DuneApiUrl -DuneInstance $DuneInstance

    $BearerTokenExpiryDate = (Get-Date).AddDays(1) #man-made expiry date (session duration)
    $Script:DuneSession = [PSCustomObject]@{
        Type         = 'BearerToken'
        DuneApiUrl   = $DuneApiUrl
        Token        = ($BearerToken | ConvertTo-SecureString -AsPlainText -Force)
        ExpiryDate   = $BearerTokenExpiryDate
        Tenant       = $Tenant
    }
    Write-Verbose "Login successfull"
}