exports/Get-SysManDriverResolve.ps1

<#
.Synopsis
Resolves the driver packages based on the provied operating system and hardware model.\r\nInformation from the parent operating system will be consided when calculating the driver package
.Description
Resolves the driver packages based on the provied operating system and hardware model.\r\nInformation from the parent operating system will be consided when calculating the driver package
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/get-sysmandriverresolve
#>

function Get-SysManDriverResolve {
[OutputType('SysMan.Powershell.Models.IResolvedDriverPackage', 'SysMan.Powershell.Models.IApiErrorMessage')]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[SysMan.Powershell.Description('Resolves the driver packages based on the provied operating system and hardware model.\r\nInformation from the parent operating system will be consided when calculating the driver package')]
param(
    [Parameter(Mandatory, HelpMessage='The id of the hardwaremodel')]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    ${HardwareModelId},

    [Parameter(Mandatory, HelpMessage='The id of the operating system')]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    ${OperatingSystemId},

    [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 = @{
            Get = 'SysMan.WebApi.private\Get-SysManDriverResolve_Get';
        }
        $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
    }
}
}