modules/Devolutions.CIEM.Graph/Public/Get-CIEMGraphEdge.ps1
|
function Get-CIEMGraphEdge { [CmdletBinding()] [OutputType('CIEMGraphEdge[]')] param( [Parameter()] [int]$Id, [Parameter()] [string]$SourceId, [Parameter()] [string]$TargetId, [Parameter()] [string]$Kind, [Parameter()] [int]$Computed ) $ErrorActionPreference = 'Stop' $query = "SELECT id, source_id, target_id, kind, properties, computed, collected_at FROM graph_edges" $conditions = @() $parameters = @{} $columnMap = @{ Id = 'id' SourceId = 'source_id' TargetId = 'target_id' Kind = 'kind' Computed = 'computed' } foreach ($paramName in $columnMap.Keys) { if ($PSBoundParameters.ContainsKey($paramName)) { $col = $columnMap[$paramName] $conditions += "$col = @$col" $parameters[$col] = $PSBoundParameters[$paramName] } } if ($conditions.Count -gt 0) { $query += "`nWHERE " + ($conditions -join ' AND ') } $rows = @(Invoke-CIEMQuery -Query $query -Parameters $parameters) @(foreach ($row in $rows) { $obj = [CIEMGraphEdge]::new() $obj.Id = $row.id $obj.SourceId = $row.source_id $obj.TargetId = $row.target_id $obj.Kind = $row.kind $obj.Properties = $row.properties $obj.Computed = $row.computed $obj.CollectedAt = $row.collected_at $obj }) } |