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 System.Management.Automation.PSCustomObject Returns an object with the ID and a success message if the OpsNote is successfully removed. #> 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 {} } |