Public/Add-IdoItCategory.ps1
Function Add-IdoItCategory { <# .SYNOPSIS Add-IdoItCategory .DESCRIPTION With Add-CmdbCategory you can add a category object for a given object. .PARAMETER Id This parameter contains the id of the object you want to add a category .PARAMETER Category This parameter takes a constant name of a specific category .PARAMETER CatgId With CatgId you can pass an id of a global category from table isysgui_catg .PARAMETER CatsId With CatsId you can pass an id of a specific catgeory from table isysgui_cats .PARAMETER Data The data parameter takes a hashtable with all the key-value pairs of the category you want to add .EXAMPLE PS>Add-IdoItCategory -Id 3411 -Category 'C__CATG__CPU' -Data @{Title='test'} Adds a new category object in the category CPU for object 3411 with the value title=test .NOTES Version 0.1.0 29.12.2017 CB initial release #> [cmdletbinding(SupportsShouldProcess=$true)] Param ( [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)] [int]$Id, [Parameter(Mandatory = $true, ParameterSetName="Category")] [string]$Category, [Parameter(Mandatory = $true, ParameterSetName="CatgId")] [int]$CatgId, [Parameter(Mandatory = $true, ParameterSetName="CatsId")] [int]$CatsId, [Parameter(Mandatory=$true)] [Hashtable]$Data ) $Params = @{} $Params.Add("objID", $Id) Switch ($PSCmdlet.ParameterSetName) { "Category" {$Params.Add("category", $Category); Break } "CatgId" {$Params.Add("catgID", $CatgId); Break } "CatsId" {$Params.Add("catsID", $CatsId); Break } } $Params.Add("data", $Data) If ($PSCmdlet.ShouldProcess("Adding category on object $Id")) { $ResultObj = Invoke-IdoIt -Method "cmdb.category.create" -Params $Params Return $ResultObj } } |