Scripts/Clusters/Remove-CohesityExternalClient.ps1
function Remove-CohesityExternalClient { <# .SYNOPSIS Remove an external client from global whitelist. .DESCRIPTION The Remove-CohesityExternalClient function is used to remove external client (global whitelist) IP. .NOTES Published by Cohesity .LINK https://cohesity.github.io/cohesity-powershell-module/#/README .EXAMPLE Remove-CohesityExternalClient -IP4 "1.1.1.1" #> [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = "High")] Param( [Parameter(Mandatory = $true)] $IP4 ) Begin { if (-not (Test-Path -Path "$HOME/.cohesity")) { throw "Failed to authenticate. Please connect to the Cohesity Cluster using 'Connect-CohesityCluster'" } $cohesitySession = Get-Content -Path $HOME/.cohesity | ConvertFrom-Json $cohesityCluster = $cohesitySession.ClusterUri $cohesityToken = $cohesitySession.Accesstoken.Accesstoken } Process { $whiteList = Get-CohesityExternalClient $foundIP = $whiteList | where-object {$_.ip -eq $IP4} if($null -eq $foundIP) { Write-Host "Cannot proceed, IP '$IP4' not found" return } if ($PSCmdlet.ShouldProcess($IP4)) { $whiteList = $whiteList | where-object {$_.ip -ne $IP4} $arrList = [System.Collections.ArrayList]::new() if($whiteList) { $whiteList = $arrList + $whiteList } else { $whiteList = $arrList } $payload = @{clientSubnets = $whiteList} $cohesityClusterURL = $cohesityCluster + '/irisservices/api/v1/public/externalClientSubnets' $cohesityHeaders = @{'Authorization' = 'Bearer ' + $cohesityToken } $payloadJson = $payload | ConvertTo-Json $resp = Invoke-RestApi -Method Put -Uri $cohesityClusterURL -Headers $cohesityHeaders -Body $payloadJson if ($resp) { if($resp.clientSubnets) { $arr = [System.Collections.ArrayList]::new() $na = $arr.Add($resp.clientSubnets) $arr } } else { $errorMsg = "External client : Failed to remove" Write-Host $errorMsg CSLog -Message $errorMsg } } else { Write-Host "Operation aborted" } } End { } } |