exports/Get-SysManClientHealth.ps1

<#
.Synopsis
Depending on which parameter used the following scenarios are available:\r\n \r\n* TargetId or TargetName is set and onlyLatest = false: All the health entries for the provided target will be fetched.\r\n* TargetId or TargetName is set and onlyLatest = true: Only the latest health entry for the provided target will be fetched.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = true: Only the latest health entry for all targets will be fetched. Not recommended for performance reasons.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = false: NOT supported.
.Description
Depending on which parameter used the following scenarios are available:\r\n \r\n* TargetId or TargetName is set and onlyLatest = false: All the health entries for the provided target will be fetched.\r\n* TargetId or TargetName is set and onlyLatest = true: Only the latest health entry for the provided target will be fetched.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = true: Only the latest health entry for all targets will be fetched. Not recommended for performance reasons.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = false: NOT supported.
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/get-sysmanclienthealth
#>

function Get-SysManClientHealth {
[OutputType('SysMan.Powershell.Models.IComputerHealth', 'SysMan.Powershell.Models.IApiErrorMessage')]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[SysMan.Powershell.Description('Depending on which parameter used the following scenarios are available:\r\n \r\n* TargetId or TargetName is set and onlyLatest = false: All the health entries for the provided target will be fetched.\r\n* TargetId or TargetName is set and onlyLatest = true: Only the latest health entry for the provided target will be fetched.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = true: Only the latest health entry for all targets will be fetched. Not recommended for performance reasons.\r\n* TargetId and TargetName is null (or empty string) and onlyLatest = false: NOT supported.')]
param(
    [Parameter(HelpMessage='If only the latest entry should be fetched or all entries')]
    [SysMan.Powershell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    ${OnlyLatest},

    [Parameter(HelpMessage='The id of the target to find health entries for. TargetName can be provided instead. Only works if using SysMan own client health reporting (i.e NOT the client health component provided by Anders Rodland).')]
    [SysMan.Powershell.Category('Query')]
    [System.Int64]
    ${TargetId},

    [Parameter(HelpMessage='The name of the target to find health entries for. TargetId can be provided instead.')]
    [SysMan.Powershell.Category('Query')]
    [System.String]
    ${TargetName},

    [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-SysManClientHealth_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
    }
}
}