modules/Azure/Discovery/Public/Update-CIEMAzureEntraResource.ps1

function Update-CIEMAzureEntraResource {
    [CmdletBinding(DefaultParameterSetName = 'ByProperties')]
    [OutputType('CIEMAzureEntraResource[]')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ByProperties')]
        [string]$Id,
        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$Type,
        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$DisplayName,
        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$ParentId,
        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$Properties,
        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$CollectedAt,

        [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)]
        [PSObject[]]$InputObject,

        [switch]$PassThru
    )
    process {
        $ErrorActionPreference = 'Stop'
        if ($PSCmdlet.ParameterSetName -eq 'InputObject') {
            foreach ($item in $InputObject) {
                UpdateCIEMAzureEntity -Entity 'EntraResource' -Filters @{ Id = $item.Id } -Values @{
                    Type = $item.Type
                    DisplayName = $item.DisplayName
                    ParentId = $item.ParentId
                    Properties = $item.Properties
                    CollectedAt = $item.CollectedAt
                    LastSeenAt = $item.LastSeenAt
                }
                if ($PassThru) { Get-CIEMAzureEntraResource -Id $item.Id }
            }
        } else {
            $values = @{}
            foreach ($paramName in @('Type', 'DisplayName', 'ParentId', 'Properties', 'CollectedAt')) {
                if ($PSBoundParameters.ContainsKey($paramName)) {
                    $values[$paramName] = $PSBoundParameters[$paramName]
                }
            }

            if ($values.Count -eq 0) {
                if ($PassThru) { Get-CIEMAzureEntraResource -Id $Id }
                return
            }

            UpdateCIEMAzureEntity -Entity 'EntraResource' -Filters @{ Id = $Id } -Values $values
            if ($PassThru) { Get-CIEMAzureEntraResource -Id $Id }
        }
    }
}