exports/Remove-SysManUser.ps1

<#
.Synopsis
Deletes users from SysMan.
Will also create an action with type 'DELUSER' that can be used by external systems\r\nto clean up the user.
.Description
Deletes users from SysMan.
Will also create an action with type 'DELUSER' that can be used by external systems\r\nto clean up the user.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/remove-sysmanuser
.Inputs
SysMan.Powershell.Models.IDeleteUserCommand
.Outputs
SysMan.Powershell.Models.IApiErrorMessage
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
CMD <IDeleteUserCommand>: The required information to remove a user (target)
  Targets <Int64[]>: The ids of the users to remove (in SysMan)
  [DeleteInAd <Boolean?>]: If the user should be deleted in Active Directory or not
  [DeleteInSysman <Boolean?>]: If the user should be deleted in SysMan
  [DisableInAd <Boolean?>]: If the user should be disabled in Active Directory or not. Cannot be true if DeleteInAd is true.
  [DisableInSysMan <Boolean?>]: If the user should be inactivated in SysMan
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/remove-sysmanuser
#>

function Remove-SysManUser {
[OutputType([SysMan.Powershell.Models.IApiErrorMessage])]
[CmdletBinding(DefaultParameterSetName='DeleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory, ValueFromPipeline)]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IDeleteUserCommand]
    # The required information to remove a user (target)
    # To construct, see NOTES section for CMD properties and create a hash table.
    ${Cmd},

    [Parameter(ParameterSetName='DeleteExpanded', Mandatory)]
    [SysMan.Powershell.Category('Body')]
    [System.Int64[]]
    # The ids of the users to remove (in SysMan)
    ${Targets},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the user should be deleted in Active Directory or not
    ${DeleteInAd},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the user should be deleted in SysMan
    ${DeleteInSysman},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the user should be disabled in Active Directory or not.
    # Cannot be true if DeleteInAd is true.
    ${DisableInAd},

    [Parameter(ParameterSetName='DeleteExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the user should be inactivated in SysMan
    ${DisableInSysMan},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter()]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Delete = 'SysMan.WebApi.private\Remove-SysManUser_Delete';
            DeleteExpanded = 'SysMan.WebApi.private\Remove-SysManUser_DeleteExpanded';
        }
        $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
    }
}
}

# SIG # Begin signature block
# MIIWogYJKoZIhvcNAQcCoIIWkzCCFo8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB4nUSCsLozdNo/
# z4IGQif1e/T5pUKtpAFcrLd9FrnQwqCCEdcwggPuMIIDV6ADAgECAhB+k+v7fMZO
# WepLmnfUBvw7MA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJaQTEVMBMGA1UE
# CBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEPMA0GA1UEChMG
# VGhhd3RlMR0wGwYDVQQLExRUaGF3dGUgQ2VydGlmaWNhdGlvbjEfMB0GA1UEAxMW
# VGhhd3RlIFRpbWVzdGFtcGluZyBDQTAeFw0xMjEyMjEwMDAwMDBaFw0yMDEyMzAy
# MzU5NTlaMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh
# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD
# QSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsayzSVRLlxwS
# CtgleZEiVypv3LgmxENza8K/LlBa+xTCdo5DASVDtKHiRfTot3vDdMwi17SUAAL3
# Te2/tLdEJGvNX0U70UTOQxJzF4KLabQry5kerHIbJk1xH7Ex3ftRYQJTpqr1SSwF
# eEWlL4nO55nn/oziVz89xpLcSvh7M+R5CvvwdYhBnP/FA1GZqtdsn5Nph2Upg4XC
# YBTEyMk7FNrAgfAfDXTekiKryvf7dHwn5vdKG3+nw54trorqpuaqJxZ9YfeYcRG8
# 4lChS+Vd+uUOpyyfqmUg09iW6Mh8pU5IRP8Z4kQHkgvXaISAXWp4ZEXNYEZ+VMET
# fMV58cnBcQIDAQABo4H6MIH3MB0GA1UdDgQWBBRfmvVuXMzMdJrU3X3vP9vsTIAu
# 3TAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
# ZS5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADA/BgNVHR8EODA2MDSgMqAwhi5odHRw
# Oi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlVGltZXN0YW1waW5nQ0EuY3JsMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0wGzEZ
# MBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMTANBgkqhkiG9w0BAQUFAAOBgQADCZuP
# ee9/WTCq72i1+uMJHbtPggZdN1+mUp8WjeockglEbvVt61h8MOj5aY0jcwsSb0ep
# rjkR+Cqxm7Aaw47rWZYArc4MTbLQMaYIXCp6/OJ6HVdMqGUY6XlAYiWWbsfHN2qD
# IQiOQerd2Vc/HXdJhyoWBl6mOGoiEqNRGYN+tjCCBJkwggOBoAMCAQICEHGgtzaV
# 3bGvwjsrmhjuVMswDQYJKoZIhvcNAQELBQAwgakxCzAJBgNVBAYTAlVTMRUwEwYD
# VQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vydmlj
# ZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAyMDA2IHRoYXd0ZSwgSW5jLiAtIEZv
# ciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQDExZ0aGF3dGUgUHJpbWFyeSBS
# b290IENBMB4XDTEzMTIxMDAwMDAwMFoXDTIzMTIwOTIzNTk1OVowTDELMAkGA1UE
# BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEmMCQGA1UEAxMddGhhd3RlIFNI
# QTI1NiBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
# AoIBAQCbVQJMFwXp0GbD/Cit08D+7+DpftQe9qobkUb99RbtmAdT+rqHG32eHwEn
# q7nSZ8q3ECVT9OO+m5C47SNcQu9kJVjliCIavvXHrvW+irEREZMaIql0acF0tmiH
# p4Mw+WTxseM4PvTWwfwS/nNXFzVXit1QjQP4Zs3KdoMTyNcOcR3kY8m6F/jRueSI
# 0iwoyCEgDUG3C+IvwoDmiHtTbMNEY4F/aEeMKyrPW/SMSWG6aYX9awB4BSZpEzCA
# OE7xWlXJxVDWqjiJR0Nc/k1zpUnFk2n+d5aar/OMDle6M9kOxkLTA3fEuzmtkfnz
# 95ZcOmSm7SdXwehA81Pyvik0/l/5AgMBAAGjggEXMIIBEzAvBggrBgEFBQcBAQQj
# MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
# BgEB/wIBADAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vdDEuc3ltY2IuY29tL1Ro
# YXd0ZVBDQS5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
# DwEB/wQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0kt
# MS01NjgwHQYDVR0OBBYEFFeGm1S4vqYpiuT2wuITGImFzdy3MB8GA1UdIwQYMBaA
# FHtbRc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQAkO/XXoDYT
# x0P+8AmHaNGYMW4S5D8eH5Z7a0weh56LxWyjsQx7UJLVgZyxjywpt+75kQW5jkHx
# LPbQWS2Y4LnqgAFHQJW4PZ0DvXm7NbatnEwn9mdFEMnFvIdOVXvSh7vd3DDvxtRs
# zJk1bRzgYNPNaI8pWUuJlghGyY78dU/F3AnMTieLRM0HvKwE4LUzpYef9N1zDJHq
# EoFv43XwHrWTbEQX1T6Xyb0HLFZ3H4XdRui/3iyBlKP35benwTefdcpVd01eNinK
# hdhFQXJXdcB5W/o0EAZtZCBCtzrIHx1GZAJfxke+8MQ6KFTa9h5PmqIZQ6RvSfj8
# XkIgKISLRyBuMIIEnTCCA4WgAwIBAgIQCTq3hNaBtvt68SgSwpYLKDANBgkqhkiG
# 9w0BAQsFADBMMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMSYw
# JAYDVQQDEx10aGF3dGUgU0hBMjU2IENvZGUgU2lnbmluZyBDQTAeFw0xODExMTUw
# MDAwMDBaFw0yMjAyMTMyMzU5NTlaMFsxCzAJBgNVBAYTAlNFMRIwEAYDVQQIDAlT
# dG9ja2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTERMA8GA1UECgwISW5lcmEgQUIx
# ETAPBgNVBAMMCEluZXJhIEFCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
# AQEAugUhf2sJ+eCo/qI1qaKLEZCUAnj23JnNmIRHLP5XJbXBmkmIcB7SH8qQW2Xy
# rPzs1PlzeuR5NiVURpWl27+KvfIkEPA8SQIGNV4FaesLQM4iOgaA+sp+aXUiVVZy
# GVaO+S4o1S4ahrb/OjTLUaJNiCYTqhW0o/h5YvSQOZBaQEwAXcFVPxZ5nr1Hbrma
# Z3SVDS/HU55X9BolDjeGQitUXS4pJT8Y5/bFLRDD7oC6rxYomsOawuvC/I3ynD9k
# hT0ye8OmOVGR8jbVCDSPpq1moFSn8pwouScwzdj2+8pRTq2NMBPi7M5VvNrgFNoL
# BEWj4VI2zirGAB88FVFQfl5utQIDAQABo4IBajCCAWYwCQYDVR0TBAIwADAfBgNV
# HSMEGDAWgBRXhptUuL6mKYrk9sLiExiJhc3ctzAdBgNVHQ4EFgQU1IKj1fPFqb20
# KeXXJdxHYD5qoyYwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3RsLnN5bWNiLmNv
# bS90bC5jcmwwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMG4G
# A1UdIARnMGUwYwYGZ4EMAQQBMFkwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRo
# YXd0ZS5jb20vY3BzMC8GCCsGAQUFBwICMCMMIWh0dHBzOi8vd3d3LnRoYXd0ZS5j
# b20vcmVwb3NpdG9yeTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6
# Ly90bC5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly90bC5zeW1jYi5jb20v
# dGwuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCDoioJABkoQWDuBN5tIKJAs9iRTySw
# UN/HoYSGdSOvO4UNhv889/fKcBJHY/WlTDFDoT/ULOcnQxOxNIWxw7gh/wjVX3hd
# 6eU2wCcwGXaHqLQ/Sx1RwRPGmn8fxB1Q8cgSkdYbUh8HyQcEv6Q0qTjb1rD9MaLj
# bP3ZQjDJ7gS5tLh/FQhBlLoGOA/z2LIfhiAsPLKgXuzNVJzUdjgRr06LoYmicwFX
# NyifRupyMTeRhIXxwFy1FHgFvZgL9ZstnqzgZ2kwpsClzoKljltRZMpYe64uWnKI
# fbU8agdhIH9kg/o2d2cypienAepMvxXyEtscrIWfTYn+Sd2RHVLDqcmsMIIEozCC
# A4ugAwIBAgIQDs/0OMj+vzVuBNhqmBsaUDANBgkqhkiG9w0BAQUFADBeMQswCQYD
# VQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMT
# J1N5bWFudGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjAeFw0xMjEw
# MTgwMDAwMDBaFw0yMDEyMjkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMR0wGwYDVQQK
# ExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrU3ltYW50ZWMgVGltZSBT
# dGFtcGluZyBTZXJ2aWNlcyBTaWduZXIgLSBHNDCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAKJjCzlEuLsjp0RJuw7/ofBhClOTsJjbrSwPSsVu/4Y8U1UP
# Fc4EPyv9qZaW2b5heQtbyUyGduXgQ0sile7CK0PBn9hotI5AT+6FOLkRxSPyZFjw
# FTJvTlehroikAtcqHs1L4d1j1ReJMluwXplaqJ0oUA4X7pbbYTtFUR3PElYLkkf8
# q672Zj1HrHBy55LnX80QucSDZJQZvSWA4ejSIqXQugJ6oXeTW2XD7hd0vEGGKtwI
# TIySjJEtnndEH2jWqHR32w5bMotWizO92WPISZ06xcXqMwvS8aMb9Iu+2bNXizve
# BKd6IrIkri7HcMW+ToMmCPsLvalPmQjhEChyqs0CAwEAAaOCAVcwggFTMAwGA1Ud
# EwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeA
# MHMGCCsGAQUFBwEBBGcwZTAqBggrBgEFBQcwAYYeaHR0cDovL3RzLW9jc3Aud3Mu
# c3ltYW50ZWMuY29tMDcGCCsGAQUFBzAChitodHRwOi8vdHMtYWlhLndzLnN5bWFu
# dGVjLmNvbS90c3MtY2EtZzIuY2VyMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly90
# cy1jcmwud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jcmwwKAYDVR0RBCEwH6Qd
# MBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTIwHQYDVR0OBBYEFEbGaaMOShQe
# 1UzaUmMXP142vA3mMB8GA1UdIwQYMBaAFF+a9W5czMx0mtTdfe8/2+xMgC7dMA0G
# CSqGSIb3DQEBBQUAA4IBAQB4O7SRKgBM8I9iMDd4o4QnB28Yst4l3KDUlAOqhk4l
# n5pAAxzdzuN5yyFoBtq2MrRtv/QsJmMz5ElkbQ3mw2cO9wWkNWx8iRbG6bLfsund
# IMZxD82VdNy2XN69Nx9DeOZ4tc0oBCCjqvFLxIgpkQ6A0RH83Vx2bk9eDkVGQW4N
# sOo4mrE62glxEPwcebSAe6xp9P2ctgwWK/F/Wwk9m1viFsoTgW0ALjgNqCmPLOGy
# 9FqpAa8VnCwvSRvbIrvD/niUUcOGsYKIXfA9tFGheTMrLnu53CAJE3Hrahlbz+il
# MFcsiUk/uc9/yb8+ImhjU5q9aXSsxR08f5Lgw7wc2AR1MYIEITCCBB0CAQEwYDBM
# MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMSYwJAYDVQQDEx10
# aGF3dGUgU0hBMjU2IENvZGUgU2lnbmluZyBDQQIQCTq3hNaBtvt68SgSwpYLKDAN
# BglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqG
# SIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
# AgEVMC8GCSqGSIb3DQEJBDEiBCD0ZqHDD2BCl3/wmnHREim+Y9DSVw5ZDSAFXCUJ
# pP7urjANBgkqhkiG9w0BAQEFAASCAQCcPr+8l94O3wnkt5cpebuRvbkhD32znxqg
# xPH+gW/I4nxSYvluZDxvNQwZBg4mIpZgOK/ZWAZUeq2TQQD+kuKlkVUOovxNGYvv
# c3vkFN+Z6/HdJraVcU2LO8Es1sA3zRaDgjKam9BSHSCiVVQ6YdJaAvP9QhQuJR9W
# RSVvAcTbMF3bNn5xvrHeGiXoCyPra3FwzQ1qI0ncZNcZK1hnCXyW+4fb35eToWgT
# LbLTmDvGoXW0FWv62RGP49T1eLkY9WNvpgmUC6kWvtNAYM9IYxmJaqrjc0y8VqVm
# 6IPuHp9E1Ohy6U7VCs5BQJwbRIgOp16ORq1dSc8S98vqrCZ2mhmUoYICCzCCAgcG
# CSqGSIb3DQEJBjGCAfgwggH0AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
# FFN5bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1hbnRlYyBUaW1lIFN0
# YW1waW5nIFNlcnZpY2VzIENBIC0gRzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4D
# AhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
# DTIwMDExNDEwMjcwNlowIwYJKoZIhvcNAQkEMRYEFIL42fazJT/5QPdYNcOPChye
# PNFqMA0GCSqGSIb3DQEBAQUABIIBAGDx2Kc7tZ5a0yI+WzalJr2kakAt3dV5W7lY
# AqR6mmQrGB/K7SYNDKUvRZGtfIv1N47S4qDRN5Wv+jnb8enAdR4HZLW1pxcBvsxI
# Gbm+TjFqqPWnJGbdDWd6yqfpdML2Jy7zUhX2dfVkw9/txktTCMvgNQqNhGpHs/7q
# TDkQVLWA4JRFbz9SI7vGNHKpvt9BXlNd7hr/IRY2luzmgmDdmBdTNCd3i1Rc6Lr+
# 7susXjrACMg9fWViv1Pm9ZB60lF1DFoQCNq4+frASnzfU6gWnHVbPG0ceMhipO+0
# nx4W/oDkrrvRVRfFr+Wz0Er4gNGf7qZZ4vEUifkCRDeNPjoDMUA=
# SIG # End signature block