exports/Import-SysManUser.ps1

<#
.Synopsis
Imports the provided computers to SysMan. This method should only be used to sync existing computers into SysMan\r\n(from Active Director for example).
.Description
Imports the provided computers to SysMan. This method should only be used to sync existing computers into SysMan\r\n(from Active Director for example).
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/import-sysmanuser
#>

function Import-SysManUser {
[OutputType('SysMan.Powershell.Models.IImportResult', 'SysMan.Powershell.Models.IApiErrorMessage')]
[CmdletBinding(DefaultParameterSetName='Import', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[SysMan.Powershell.Description('Imports the provided computers to SysMan. This method should only be used to sync existing computers into SysMan\r\n(from Active Director for example).')]
param(
    [Parameter(ParameterSetName='Import', ValueFromPipeline, HelpMessage='The required information to import users')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IImportUsersCommand]
    ${Cmd},

    [Parameter(ParameterSetName='ImportExpanded', Mandatory, HelpMessage='The source which performed the import')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${Source},

    [Parameter(ParameterSetName='ImportExpanded', Mandatory, HelpMessage='The users to import')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IImportUser[]]
    ${Users},

    [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 = @{
            Import = 'SysMan.WebApi.private\Import-SysManUser_Import';
            ImportExpanded = 'SysMan.WebApi.private\Import-SysManUser_ImportExpanded';
        }
        $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
    }
}
}