resources/customproperty.ps1
function Get-QlikCustomProperty { [CmdletBinding()] param ( [parameter(Position = 0)] [string]$id, [string]$filter, [switch]$full, [switch]$raw ) PROCESS { $path = "/qrs/custompropertydefinition" If ( $id ) { $path += "/$id" } If ( $full ) { $path += "/full" } If ( $raw ) { $rawOutput = $true } return Invoke-QlikGet $path $filter } } function New-QlikCustomProperty { [CmdletBinding()] param ( [string]$name, [string]$valueType = "Text", [string[]]$choiceValues, [ValidateSet("App", "ContentLibrary", "DataConnection", "EngineService", "Extension", "ProxyService", "ReloadTask", "RepositoryService", "SchedulerService", "ServerNodeConfiguration", "Stream", "User", "UserSyncTask", "VirtualProxyConfig", IgnoreCase = $false)] [string[]]$objectTypes ) PROCESS { $json = @{ name = $name; valueType = $valueType; objectTypes = $objectTypes } if ($ChoiceValues) { $json.Add("ChoiceValues", $ChoiceValues) } $json = $json | ConvertTo-Json -Compress -Depth 10 return Invoke-QlikPost "/qrs/custompropertydefinition" $json } } function Remove-QlikCustomProperty { [CmdletBinding()] param ( [parameter(Position = 0, ValueFromPipelinebyPropertyName = $true)] [string]$id ) PROCESS { return Invoke-QlikDelete "/qrs/custompropertydefinition/$id" } } function Update-QlikCustomProperty { [CmdletBinding()] param ( [parameter(Mandatory = $true, ValueFromPipeline = $True, ValueFromPipelinebyPropertyName = $True, Position = 0)] [string]$id, [string]$name, [string]$valueType = "Text", [string[]]$choiceValues, [ValidateSet("App", "ContentLibrary", "DataConnection", "EngineService", "Extension", "ProxyService", "ReloadTask", "RepositoryService", "SchedulerService", "ServerNodeConfiguration", "Stream", "User", "UserSyncTask", "VirtualProxyConfig", IgnoreCase = $false)] [string[]]$objectTypes ) PROCESS { $prop = Get-QlikCustomProperty $id -raw if ( $name ) { $prop.name = $name } if ( $valueType ) { $prop.valueType = $valueType } if ( $choiceValues -is [array]) { $prop.choiceValues = $choiceValues } if ( $objectTypes ) { $prop.objectTypes = $objectTypes } $json = $prop | ConvertTo-Json -Compress -Depth 10 return Invoke-QlikPut "/qrs/custompropertydefinition/$id" $json } } |