Public/Auth.ps1

function Get-CloudberryAccessToken {
    [cmdletbinding()]
    Param (
        [Parameter(Mandatory = $true)]
        [Alias('CloudberryAdminUsername')]
        [string]$Admin_Username,
        
        [Parameter(Mandatory = $true)]
        [Alias('CloudberryAdminPassword')]
        [string]$Admin_Password
        
        
    )
    
    if ($Admin_Username -and $Admin_Password) {
        $postParams = @{UserName=$Admin_Username;Password=$Admin_Password}
        try {
            $R = Invoke-RESTMethod -Uri "$($Global:APIBaseURI)Provider/Login" -Method POST -Body $postParams -ContentType 'application/x-www-form-urlencoded'
            Write-Verbose 'Authorizing Cloudberry user...Setting Cloudberry_Access_Token as Global variable'
            Write-Verbose "Result is...."
            Write-Verbose $R
            Write-Verbose "Access Token: $($R.access_token)"
            Set-Variable -Name "Cloudberry_Access_Token" -Value $R.access_token -Option ReadOnly -Scope global -Force
            #Return $R
        } catch {
            # Dig into the exception to get the Response details.
            # Note that value__ is not a typo.
            Write-Host $_.Exception.Message
            Write-Host $_.Exception.ItemName
            Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__ 
            Write-Host "StatusDescription:" $_.Exception.Response.StatusDescription
        }  
    }else {
        Write-Host "Admin username or admin password not supplied to get access token"
        Exit 1
    }
}

function Remove-CloudberryAccessToken {
    
    Remove-Variable -Name "Cloudberry_Access_Token" -Scope global -Force
    Write-Verbose "Removing Cloudberry_Access_Token"
}

#New-Alias -Name Set-CloudberryAPIKey -Value Get-CloudberryAccessToken
#New-Alias -Name Add-CloudberryAPIKey -Value Get-CloudberryAccessToken