exports/Start-SysManMobileDeviceBypassActivationLock.ps1

<#
.Synopsis
Bypass activation lock on the provided device. Only supported when running in Intune mode.
.Description
Bypass activation lock on the provided device. Only supported when running in Intune mode.
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/start-sysmanmobiledevicebypassactivationlock
#>

function Start-SysManMobileDeviceBypassActivationLock {
[OutputType('System.Boolean')]
[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[SysMan.Powershell.Description('Bypass activation lock on the provided device. Only supported when running in Intune mode.')]
param(
    [Parameter(ParameterSetName='Start', ValueFromPipeline, HelpMessage='Bypass the activation lock in the device')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IBypassActivationLockCommand]
    ${Cmd},

    [Parameter(HelpMessage='When specified, PassThru will force the cmdlet return a ''bool'' given that there isn''t a return type by default.')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${PassThru},

    [Parameter(ParameterSetName='StartExpanded', HelpMessage='The id of the mobile device. Use Id or Name to identify the mobile device.')]
    [SysMan.Powershell.Category('Body')]
    [System.Int64]
    ${Id},

    [Parameter(ParameterSetName='StartExpanded', HelpMessage='The name of the device. Use Id or Name to identify the mobile device.')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${Name},

    [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 = @{
            Start = 'SysMan.WebApi.private\Start-SysManMobileDeviceBypassActivationLock_Start';
            StartExpanded = 'SysMan.WebApi.private\Start-SysManMobileDeviceBypassActivationLock_StartExpanded';
        }
        $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
    }
}
}