Functions/Remove-LSAsset.ps1
|
function Remove-LSAsset { Param ( [Parameter(Mandatory=$true)] [String]$Url, [Parameter(Mandatory=$true)] [String]$TicketID, [Parameter(Mandatory = $true, ParameterSetName = 'ByIP')] [string]$IPAddress, [Parameter(Mandatory = $true, ParameterSetName = 'ByName')] [string]$AssetName ) # Input either by name or ip $Asset = if ($PSCmdlet.ParameterSetName -eq 'ByIP') { "IPAddress=$IPAddress" } else { "AssetName=$AssetName" } # API call to remove asset from ticket $Url = ($Url + "action=RemoveAsset&" + "TicketID=$TicketID&" + $Asset) $Request = Invoke-WebRequest -Uri $Url -UseBasicParsing # Checking response if($Request.StatusCode -ne 200) { throw ("{0} {1}" -f $Request.StatusCode, $Request.StatusDescription) } $Data = $Request.Content | ConvertFrom-Json if($Data.Success) { return $Data } elseif($Data.Message -eq "This asset is not assigned and can not be unassigned") { Write-Warning "Cant remove an asset that is not assigned." return } else { Write-Error "Something went wrong, check output message." return $Data } } |