functions/Set-BBTerm.ps1

function Set-BBTerm
{
    [CmdletBinding(SupportsShouldProcess)]
    [Alias()]
    Param
    (
        [Alias("id")]
        [parameter(ValueFromPipelineByPropertyName)]
        [string]$termId,
        [parameter(ValueFromPipelineByPropertyName)]
        [string]$externalId,
        [parameter(ValueFromPipelineByPropertyName)]
        [string]$description,
        [parameter(ValueFromPipelineByPropertyName)]
        [string]$name,
        [parameter(ValueFromPipelineByPropertyName)]
        [string]$dataSourceId,
        [parameter(ValueFromPipelineByPropertyName)]
        $availability,
        [string]$environment = 'Production'

    )

    Begin
    {
        $Body = @{}
        if($externalId){$Body.Add('externalId', $externalId)}
        if($description){$Body.Add('description', $description)}
        if($dataSourceId){$Body.Add('dataSourceId', $dataSourceId)}
        if($name){$Body.Add('name', $Name)}
        if($availability){$Body.Add('availability', $availability)}
    }
    Process
    {
        if($(!$termId -eq "")){
            Invoke-BBRestMethod -API "/learn/api/public/v1/terms/$termId" `
                -Method Patch `
                -ContentType application/json `
                -Body $body `
                -Environment $environment
        }elseif (!$externalId -eq ""){
            Invoke-BBRestMethod -API "/learn/api/public/v1/terms/$externalId"`
                -Method Patch `
                -ContentType application/json `
                -Body $body `
                -Environment $environment
        }
    }
    End
    {
    }
}