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

function Update-CIEMAzureResourceRelationship {
    [CmdletBinding(DefaultParameterSetName = 'ByProperties')]
    [OutputType('CIEMAzureResourceRelationship[]')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ByProperties')]
        [int]$Id,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$SourceId,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$SourceType,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$TargetId,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$TargetType,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$Relationship,

        [Parameter(ParameterSetName = 'ByProperties')]
        [string]$CollectedAt,

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

        [switch]$PassThru
    )

    process {
        $ErrorActionPreference = 'Stop'
        if ($PSCmdlet.ParameterSetName -eq 'InputObject') {
            foreach ($obj in $InputObject) {
                UpdateCIEMAzureEntity -Entity 'ResourceRelationship' -Filters @{ Id = $obj.Id } -Values @{
                    SourceId = $obj.SourceId
                    SourceType = $obj.SourceType
                    TargetId = $obj.TargetId
                    TargetType = $obj.TargetType
                    Relationship = $obj.Relationship
                    CollectedAt = $obj.CollectedAt
                }
                if ($PassThru) { Get-CIEMAzureResourceRelationship -Id $obj.Id }
            }
        } else {
            $values = @{}
            foreach ($paramName in @('SourceId', 'SourceType', 'TargetId', 'TargetType', 'Relationship', 'CollectedAt')) {
                if ($PSBoundParameters.ContainsKey($paramName)) {
                    $values[$paramName] = $PSBoundParameters[$paramName]
                }
            }
            if ($values.Count -gt 0) {
                UpdateCIEMAzureEntity -Entity 'ResourceRelationship' -Filters @{ Id = $Id } -Values $values
            }
            if ($PassThru) { Get-CIEMAzureResourceRelationship -Id $Id }
        }
    }
}