exports/Get-SysManCollection.ps1

<#
.Synopsis
Get collections from SCCM
.Description
Get collections from SCCM
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/get-sysmancollection
#>

function Get-SysManCollection {
[OutputType('SysMan.Powershell.Models.IPagedResultOfCollectionSearchItem')]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[SysMan.Powershell.Description('Get collections from SCCM')]
param(
    [Parameter(HelpMessage='Built in collection filter. If true then only built in collections will be returned. If false then no built in collections will be returned. If null (default) all collections will be fetched.')]
    [SysMan.Powershell.Category('Query')]
    [System.Management.Automation.SwitchParameter]
    ${BuiltInFilter},

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

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

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

    [Parameter(HelpMessage='The targertType filter. Will default to Computer.')]
    [SysMan.Powershell.Category('Query')]
    [System.String]
    ${Type},

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