Functions/Get-IAWidgetType.ps1
Function Get-IAWidgetType { <# .SYNOPSIS Returns Widget Types. .DESCRIPTION There are many different Widget Types that can be used. Each Widget Template has its specific Widget Types that can be used. 'Bar', 'List', 'Donut' etc... .EXAMPLE Get-IAWidgetType -All #> [CmdletBinding(DefaultParameterSetName='Name')] Param( [Parameter(Mandatory = $true, ParameterSetName='Filter')] [String] $Filter, [Parameter(Mandatory = $true, ParameterSetName='All')] [switch] $All ) DynamicParam { $Bucket = New-Object -TypeName System.Management.Automation.RuntimeDefinedParameterDictionary $AttributeList = New-Object -TypeName System.Collections.ObjectModel.Collection[System.Attribute] $Values = (Invoke-IAQuery -QueryUrl 'WidgetTypes' -Method Get).Value.Name $AttribValidateSet = New-Object System.Management.Automation.ValidateSetAttribute($Values) $AttributeList.Add($AttribValidateSet) $AttribParameter = New-Object System.Management.Automation.ParameterAttribute $AttribParameter.Mandatory = $true $AttribParameter.ParameterSetName = 'Name' $AttribParameter.Position = 0 $AttributeList.Add($AttribParameter) $ParameterName = 'Name' $Parameter = New-Object -TypeName System.Management.Automation.RuntimeDefinedParameter($ParameterName,[String], $AttributeList) $Bucket.Add($ParameterName, $Parameter) $Bucket } End { Foreach ($key in $PSBoundParameters.Keys) { if ($MyInvocation.MyCommand.Parameters.$key.isDynamic) { Set-Variable -Name $key -Value $PSBoundParameters.$key } } $Uri = "WidgetTypes" if($All){} elseif($Name){ $Uri += "?&`$filter=Name eq '$Name'" } elseif ($Filter) { $Uri += "?&`$filter=$Filter" } $response = Invoke-IAQuery -QueryUrl $Uri -Method Get if ($null -eq $response.value) { return $null } return $response.value } } |