Public/Set-PegasusAdminOrgUnitFull.ps1

<#
.SYNOPSIS
Updates an organizational unit in the Pegasus system.

.EXAMPLE
Set-PegasusAdminOrgUnitFull

#>

function Set-PegasusAdminOrgUnitFull {
    [CmdletBinding(SupportsShouldProcess = $true)]

    Param
    (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        $InputObject
    )
    
    Process {
        if ($null -eq $InputObject.id) {
            throw "id is required"
        }

        if ($null -eq $InputObject.displayname) {
            throw "displayname is required"
        }

        if ($PSCmdlet.ShouldProcess("OrgUnit $($InputObject.id)", "Update")) {
            $InputObject | Invoke-PegasusRequest -Endpoint "/admin/orgunits/$($InputObject.id)" -Method PATCH
        }
    }
}