Public/Invoke-LMUserLogoff.ps1

<#
.SYNOPSIS
    Invokes a session logoff for one or more users in Logic Monitor.

.DESCRIPTION
    The Invoke-LMUserLogoff function is used to log off one or more users from a Logic Monitor session. It checks if the user is logged in and has valid API credentials before making the logoff request. If the user is not logged in, an error message is displayed.

.PARAMETER Usernames
    Specifies an array of usernames for which the session logoff needs to be invoked.

.EXAMPLE
    Invoke-LMUserLogoff -Usernames "user1", "user2"
    Invokes a session logoff for the users "user1" and "user2" in Logic Monitor.

#>

Function Invoke-LMUserLogoff {

    [CmdletBinding()]
    Param (
        [Parameter(Mandatory)]
        [String[]]$Usernames
    )
    #Check if we are logged in and have valid api creds
    Begin {}
    Process {
        If ($Script:LMAuth.Valid) {
            
            #Build header and uri
            $ResourcePath = "/setting/admins/services/logoffUsers"

            $Data = @{
                userNames = $Usernames
            }

            $Data = ($Data | ConvertTo-Json)
            
            Try {

                $Headers = New-LMHeader -Auth $Script:LMAuth -Method "POST" -ResourcePath $ResourcePath -Data $Data
                $Uri = "https://$($Script:LMAuth.Portal).logicmonitor.com/santaba/rest" + $ResourcePath

                Resolve-LMDebugInfo -Url $Uri -Headers $Headers[0] -Command $MyInvocation -Payload $Data

                #Issue request
                $Response = Invoke-RestMethod -Uri $Uri -Method "POST" -Headers $Headers[0] -WebSession $Headers[1] -Body $Data

                Return "Invoke session logoff for username(s): $($Usernames -Join ",")."
            }
            Catch [Exception] {
                $Proceed = Resolve-LMException -LMException $PSItem
                If (!$Proceed) {
                    Return
                }
            }
        }
        Else {
            Write-Error "Please ensure you are logged in before running any commands, use Connect-LMAccount to login and try again."
        }
    }
    End {}
}