Public/Remove-ManagedObject.ps1
# Code generated from specification version 1.0.0: DO NOT EDIT Function Remove-ManagedObject { <# .SYNOPSIS Delete inventory/s .DESCRIPTION Delete a managed object by id .EXAMPLE PS> Remove-ManagedObject -Id $mo.id Delete a managed object .EXAMPLE PS> Get-ManagedObject -Id $mo.id | Remove-ManagedObject Delete a managed object (using pipeline) .EXAMPLE PS> Get-ManagedObject -Id $Device.id | Remove-ManagedObject -Cascade Delete a managed object and all child devices #> [cmdletbinding(SupportsShouldProcess = $true, PositionalBinding=$true, HelpUri='', ConfirmImpact = 'High')] [Alias()] [OutputType([object])] Param( # ManagedObject id (required) [Parameter(Mandatory = $true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string] $Id, # Remove all child devices and child assets will be deleted recursively. By default, the delete operation is propagated to the subgroups only if the deleted object is a group [Parameter()] [switch] $Cascade, # Include raw response including pagination information [Parameter()] [switch] $Raw, # Outputfile [Parameter()] [string] $OutputFile, # NoProxy [Parameter()] [switch] $NoProxy, # Session path [Parameter()] [string] $Session, # TimeoutSec timeout in seconds before a request will be aborted [Parameter()] [double] $TimeoutSec, # Don't prompt for confirmation [Parameter()] [switch] $Force ) Begin { $Parameters = @{} if ($PSBoundParameters.ContainsKey("Cascade")) { $Parameters["cascade"] = $Cascade } if ($PSBoundParameters.ContainsKey("OutputFile")) { $Parameters["outputFile"] = $OutputFile } if ($PSBoundParameters.ContainsKey("NoProxy")) { $Parameters["noProxy"] = $NoProxy } if ($PSBoundParameters.ContainsKey("Session")) { $Parameters["session"] = $Session } if ($PSBoundParameters.ContainsKey("TimeoutSec")) { $Parameters["timeout"] = $TimeoutSec * 1000 } } Process { foreach ($item in (PSc8y\Expand-Id $Id)) { if ($item) { $Parameters["id"] = if ($item.id) { $item.id } else { $item } } if (!$Force -and !$WhatIfPreference -and !$PSCmdlet.ShouldProcess( (PSc8y\Get-C8ySessionProperty -Name "tenant"), (Format-ConfirmationMessage -Name $PSCmdlet.MyInvocation.InvocationName -InputObject $item) )) { continue } Invoke-Command ` -Noun "inventory" ` -Verb "delete" ` -Parameters $Parameters ` -Type "" ` -ItemType "" ` -ResultProperty "" ` -Raw:$Raw ` -IncludeAll:$IncludeAll } } End {} } |