Public/New-LMAlertAck.ps1
<# .SYNOPSIS Creates a new alert acknowledgment in LogicMonitor. .DESCRIPTION The New-LMAlertAck function acknowledges one or more alerts in LogicMonitor and adds a note to the acknowledgment. .PARAMETER Ids The alert IDs to be acknowledged. This parameter is mandatory. .PARAMETER Note The note to be added to the acknowledgment. This parameter is mandatory. .EXAMPLE #Acknowledge multiple alerts New-LMAlertAck -Ids @("12345","67890") -Note "Acknowledging alerts" .NOTES You must run Connect-LMAccount before running this command. .INPUTS None. You cannot pipe objects to this command. .OUTPUTS Returns a success message if the acknowledgment is created successfully. #> Function New-LMAlertAck { [CmdletBinding()] Param ( [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [Alias("Id")] [String[]]$Ids, [Parameter(Mandatory)] [String]$Note ) Begin {} Process { #Check if we are logged in and have valid api creds If ($Script:LMAuth.Valid) { #Build header and uri $ResourcePath = "/alert/alerts/ack" Try { $Data = @{ alertIds = $Ids ackComment = $Note } $Data = ($Data | ConvertTo-Json) $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-WebRequest -Uri $Uri -Method "POST" -Headers $Headers[0] -WebSession $Headers[1] -Body $Data If ($Response.StatusCode -eq 200) { Return "Successfully acknowledged alert id(s): $Ids" } } 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 {} } |