Public/Connect-Dune.ps1

function Connect-Dune {
    [CmdletBinding(DefaultParameterSetName='SocialLogin')]
    param(
        [Parameter(Mandatory)]
        [string]$Tenant,
        [Parameter()]
        [ValidateSet("Prod", "Dev","Test","Local")]
        [string]$DuneInstance = "Prod",
        [Parameter(ParameterSetName="Credential")]
        [PSCredential]$Credential,
        [Parameter(ParameterSetName="BearerToken")]
        [string]$BearerToken
    )

    begin {}

    process {
        $DefaultApiAuthParams = @{
            DuneInstance = $DuneInstance
            Tenant       = $Tenant
        }
        switch ($PSCmdlet.ParameterSetName) {
            "SocialLogin" {
                if ($AuthUrl) {}
                Invoke-DuneApiAuthSocial @DefaultApiAuthParams
            }
            "Credential" {
                Invoke-DuneApiAuthCredential @DefaultApiAuthParams -Credential $Credential
            }
            "BearerToken" {
                Invoke-DuneApiAuthBearer @DefaultApiAuthParams -BearerToken $BearerToken
            }
        }
    }

    end {}
}