Public/Remove-LMOpsNote.ps1
<# .SYNOPSIS Removes an OpsNote from LogicMonitor. .DESCRIPTION The Remove-LMOpsNote function removes an OpsNote from LogicMonitor. It requires the user to be logged in and have valid API credentials. .PARAMETER Id Specifies the ID of the OpsNote to be removed. .EXAMPLE Remove-LMOpsNote -Id "12345" Removes the OpsNote with the ID "12345" from LogicMonitor. .INPUTS You can pipe objects to this function. .OUTPUTS Returns a PSCustomObject containing the ID of the removed OpsNote and a message indicating the success of the removal operation. #> Function Remove-LMOpsNote { [CmdletBinding(DefaultParameterSetName = 'Id', SupportsShouldProcess, ConfirmImpact = 'High')] Param ( [Parameter(Mandatory, ParameterSetName = 'Id', ValueFromPipelineByPropertyName)] [String]$Id ) Begin {} Process { #Check if we are logged in and have valid api creds If ($Script:LMAuth.Valid) { #Build header and uri $ResourcePath = "/setting/opsnotes/$Id" $Message = "Id: $Id" #Loop through requests Try { If ($PSCmdlet.ShouldProcess($Message, "Remove OpsNote")) { $Headers = New-LMHeader -Auth $Script:LMAuth -Method "DELETE" -ResourcePath $ResourcePath $Uri = "https://$($Script:LMAuth.Portal).logicmonitor.com/santaba/rest" + $ResourcePath Resolve-LMDebugInfo -Url $Uri -Headers $Headers[0] -Command $MyInvocation #Issue request $Response = Invoke-RestMethod -Uri $Uri -Method "DELETE" -Headers $Headers[0] -WebSession $Headers[1] $Result = [PSCustomObject]@{ Id = $Id Message = "Successfully removed ($Message)" } Return $Result } } 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 {} } |