exports/Search-SysManPrinterTarget.ps1

<#
.Synopsis
Get the targets that has the provided printer installed. Possible to fetch based on the id of the printer or the name of the printer.\r\nIf both id and name are used, the id will be used when quarying storage.
.Description
Get the targets that has the provided printer installed. Possible to fetch based on the id of the printer or the name of the printer.\r\nIf both id and name are used, the id will be used when quarying storage.
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/search-sysmanprintertarget
#>

function Search-SysManPrinterTarget {
[OutputType('SysMan.Powershell.Models.IPagedResultOfTargetSearchItem')]
[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)]
[SysMan.Powershell.Description('Get the targets that has the provided printer installed. Possible to fetch based on the id of the printer or the name of the printer.\r\nIf both id and name are used, the id will be used when quarying storage.')]
param(
    [Parameter(Mandatory, HelpMessage='The id of the printer to find installed target for. Either use printerName or pritnerId.')]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    ${Id},

    [Parameter(HelpMessage='The filter for the targets')]
    [SysMan.Powershell.Category('Query')]
    [System.String]
    ${Filter},

    [Parameter(HelpMessage='The number of entries to skip')]
    [SysMan.Powershell.Category('Query')]
    [System.Int32]
    ${Skip},

    [Parameter(HelpMessage='The number of entries to take')]
    [SysMan.Powershell.Category('Query')]
    [System.Int32]
    ${Take},

    [Parameter(HelpMessage='The target type')]
    [SysMan.Powershell.Category('Query')]
    [System.String]
    ${TargetType},

    [Parameter(DontShow, HelpMessage='Wait for .NET debugger to attach')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    ${Break},

    [Parameter(DontShow, HelpMessage='SendAsync Pipeline Steps to be appended to the front of the pipeline')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    ${HttpPipelineAppend},

    [Parameter(DontShow, HelpMessage='SendAsync Pipeline Steps to be prepended to the front of the pipeline')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    ${HttpPipelinePrepend},

    [Parameter(DontShow, HelpMessage='The URI for the proxy server to use')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Uri]
    ${Proxy},

    [Parameter(DontShow, HelpMessage='Credentials for a proxy server to use for the remote call')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    ${ProxyCredential},

    [Parameter(DontShow, HelpMessage='Use the default credentials for the proxy')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PsCmdlet.ParameterSetName
        $mapping = @{
            Search = 'SysMan.WebApi.private\Search-SysManPrinterTarget_Search';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {
        throw
    }
}

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}