Functions/BloxOne/BloxOneTD/Remove-B1SecurityPolicy.ps1
function Remove-B1SecurityPolicy { <# .SYNOPSIS Removes a BloxOne Threat Defense Security Policy .DESCRIPTION This function is used to remove a BloxOne Threat Defense Security Policy .PARAMETER Object The BloxOne Threat Defense Security Policy Object(s) to remove. Accepts pipeline input .PARAMETER Name The name of the BloxOne Threat Defense Security Policy to delete. .PARAMETER Force Perform the operation without prompting for confirmation. By default, this function will always prompt for confirmation unless -Confirm:$false or -Force is specified, or $ConfirmPreference is set to None. .EXAMPLE PS> Remove-B1SecurityPolicy -Name "Remote Users" .EXAMPLE PS> Get-B1SecurityPolicy -Name "Remote Users" | Remove-B1SecurityPolicy .FUNCTIONALITY BloxOneDDI .FUNCTIONALITY Threat Defense #> [CmdletBinding( DefaultParameterSetName="Default", SupportsShouldProcess, ConfirmImpact = 'High' )] param( [parameter(ParameterSetName="Default")] [String]$Name, [Parameter( ValueFromPipeline = $true, ParameterSetName="Pipeline", Mandatory=$true )] [System.Object]$Object, [Switch]$Force ) process { $ConfirmPreference = Confirm-ShouldProcess $PSBoundParameters if ($Name) { $SecurityPolicy = Get-B1SecurityPolicy -Name $Name -Strict } elseif ($Object) { $SecurityPolicy = Get-B1SecurityPolicy -id $Object.id } else { Write-Error "No security policy was selected." break } if (($SecurityPolicy).Count -gt 1) { Write-Error "More than one Security Policy returned. To remove multiple objects, you should use pipe Get-B1SecurityPolicy into Remove-B1SecurityPolicy instead." break } if ($SecurityPolicy) { if($PSCmdlet.ShouldProcess("$($Object.name) ($($Object.id))")){ $null = Invoke-CSP -Method DELETE -Uri "$(Get-B1CSPUrl)/api/atcfw/v1/security_policies/$($SecurityPolicy.id)" if ($Name) { $SecurityPolicyCheck = Get-B1SecurityPolicy -Name $Name -ErrorAction SilentlyContinue -WarningAction SilentlyContinue } elseif ($id) { $SecurityPolicyCheck = Get-B1SecurityPolicy -id $($Object.id) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue 6> $null } if ($SecurityPolicyCheck) { Write-Error "Failed to delete security policy: $($SecurityPolicy.name)" } else { Write-Host "Successfully deleted security policy: $($SecurityPolicy.name)" -ForegroundColor Green } } } else { Write-Error "Unable to find security policy." } } } |