Functions/Public/Get-WHDTicket.ps1
|
<#
.SYNOPSIS Get a Ticket from WHD. .DESCRIPTION This function retrieves a specific Ticket from WHD, or a list of Tickets based on a provided search parameter. .PARAMETER ResourceId The id of the Ticket to be retrieved. .PARAMETER TicketListType A WHDTicketListType to filter the results. Required if no Qualifier, QualifierString, or Search options are provided. .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 Status A statustype.statusTypeName to search for. .PARAMETER Location A location.locationName to search for. .PARAMETER Expand If specified, list results will use the detailed format. #> function Get-WHDTicket { [CmdletBinding(DefaultParameterSetName = "Search")] param ( [Parameter(ParameterSetName = "Single", Mandatory, Position = 0)] [int] $ResourceId, [Parameter(ParameterSetName = "Qualifier")] [Parameter(ParameterSetName = "QualifierString")] [Parameter(ParameterSetName = "Search")] [WHDTicketListType] $TicketListType, [Parameter(ParameterSetName = "Qualifier", Mandatory)] [WHDQualifier] $Qualifier, [Parameter(ParameterSetName = "QualifierString", Mandatory)] [string] $QualifierString, [Parameter(ParameterSetName = "Search")] [string] $Status, [Parameter(ParameterSetName = "Search")] [string] $Location, [Parameter(ParameterSetName = "Search")] [Parameter(ParameterSetName = "Qualifier")] [Parameter(ParameterSetName = "QualifierString")] [switch] $Expand ) $AttributeMap = @{ Status = "statustype.statusTypeName" Location = "location.locationName" } $QueryParameters = @{ ResourceType = [WHDResourceType]::Tickets Expand = $Expand.IsPresent } if ($PSBoundParameters.ContainsKey("TicketListType")) { $QueryParameters["TicketListType"] = $TicketListType } switch ($PSCmdlet.ParameterSetName) { "Single" { $QueryParameters["ResourceId"] = $ResourceId } "Qualifier" { $QueryParameters["Qualifier"] = $Qualifier } "QualifierString" { $QueryParameters["QualifierString"] = $QualifierString } "Search" { $QueryParameters["Qualifier"] = ConvertTo-WHDQualifier ` -BoundParameters $PSBoundParameters ` -AttributeMap $AttributeMap } } if ( ($PSCmdlet.ParameterSetName -ne "Single") -and ($null -eq $QueryParameters["Qualifier"]) -and [string]::IsNullOrWhiteSpace($QueryParameters["QualifierString"]) -and (-not $PSBoundParameters.ContainsKey("TicketListType")) ) { throw "TicketListType is required when no Qualifier, QualifierString, or Search options are specified." } return Get-WHDResource @QueryParameters } |