Functions/Public/Get-WHDClient.ps1
|
<#
.SYNOPSIS Get a Client from WHD. .DESCRIPTION This function retrieves a specific Client from WHD, or a list of Clients based on a provided search parameter. .PARAMETER ResourceId The id, username, or email address of the Client to be retrieved. This parameter can also be specified using the Identifier alias. .PARAMETER Qualifier A WHDQualifier object to filter the results. Use New-WHDQualifier and Join-WHDQualifier to build these objects. .PARAMETER QualifierString A WHD API qualifier string to filter the results. This is an alternative to using the Qualifier parameter if you prefer to build the qualifier string manually. .PARAMETER FirstName A firstName to search for. .PARAMETER LastName A lastName to search for. .PARAMETER Location A location.locationName to search for. .PARAMETER Email An email to search for. #> function Get-WHDClient { [CmdletBinding(DefaultParameterSetName = "Search")] param ( [Parameter(ParameterSetName = "Single", Mandatory, Position = 0)] [Alias("Identifier")] [string] $ResourceId, [Parameter(ParameterSetName = "Qualifier", Mandatory)] [WHDQualifier] $Qualifier, [Parameter(ParameterSetName = "QualifierString", Mandatory)] [string] $QualifierString, [Parameter(ParameterSetName = "Search")] [string] $FirstName, [Parameter(ParameterSetName = "Search")] [string] $LastName, [Parameter(ParameterSetName = "Search")] [string] $Location, [Parameter(ParameterSetName = "Search")] [string] $Email ) $AttributeMap = @{ FirstName = "firstName" LastName = "lastName" Location = "location.locationName" Email = "email" } $QueryParameters = @{ ResourceType = [WHDResourceType]::Client } switch ($PSCmdlet.ParameterSetName) { "Single" { $QueryParameters["ResourceId"] = $ResourceId } "Qualifier" { $QueryParameters["Qualifier"] = $Qualifier } "QualifierString" { $QueryParameters["QualifierString"] = $QualifierString } "Search" { $QueryParameters["Qualifier"] = ConvertTo-WHDQualifier ` -BoundParameters $PSBoundParameters ` -AttributeMap $AttributeMap } } return Get-WHDResource @QueryParameters } |