Public/Connect-ABM.ps1

function Connect-ABM {
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseDeclaredVarsMoreThanAssignments", "")]
    [CmdletBinding(
        SupportsShouldProcess = $False,
        ConfirmImpact = "None",
        SupportsPaging = $False,
        PositionalBinding = $True)
    ]
    param (
        [Parameter(Mandatory = $false)]
        [ValidateSet("Business Manager", "School Manager")]
        [String]
        $Environment = "Business Manager",

        [Parameter(Mandatory = $false)]
        [ValidateScript({ Test-Path $_ })]
        [String]
        $KeyPath,

        [Parameter(Mandatory = $false)]
        [ValidateSet("v1")]
        [String]
        $APIVersion = 'v1',

        [Parameter(Mandatory = $false)]
        [Switch]
        $UseSecretManagement = $false
    )

    $Parameters = @{
        Environment         = $Environment
        KeyPath             = $KeyPath
        APIVersion          = $APIVersion
        UseSecretManagement = $UseSecretManagement
    }

    $script:ABMEnv = Get-ABMEnvironment @Parameters

    # Concatenate full version string with prerelease label if present
    if ($MyInvocation.MyCommand.Module -and
        $MyInvocation.MyCommand.Module.PrivateData -and
        $MyInvocation.MyCommand.Module.PrivateData.PSData) {
        $PrereleaseLabel = $MyInvocation.MyCommand.Module.PrivateData.PSData['Prerelease']
    }
    else {
        $PrereleaseLabel = $null
    }
    $ModuleVersion = $MyInvocation.MyCommand.Module.Version
    if (-not [string]::isNullOrEmpty($PrereleaseLabel)) {
        $VersionString = ("{0}-{1}" -f $ModuleVersion, $PrereleaseLabel)
    }
    else {
        $VersionString = $ModuleVersion
    }
    # Build formatted output using a here-string for alignment
    $ABMInfo = @"

=========================================
        Connected to Apple
=========================================

Environment: Apple $Environment
Client ID: $($script:ABMEnv.ClientId)
Key ID: $($script:ABMEnv.KeyId)
Base URL: $($script:ABMEnv.BaseURL)
API Version: $($script:ABMEnv.APIVersion)
Token Expires: $($script:ABMEnv.ExpiryDateTime)

"@


    # Write the formatted output
    Write-Output $ABMInfo

}