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 { try { $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 } catch [System.Net.WebException] { $CurrentError = $_ throw [System.Net.WebException]::New('Make sure TLS1.2 is allowed!', $currentError.Exception) } catch { $CurrentError = $_ if($CurrentError.Exception.Message -like '*https:///api/Categories*'){ throw [System.ArgumentException]::New('Make sure that you are connected to the environment!', $currentError.Exception) } } } 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 } } |