function Update-PlatformElementInventory { <# .SYNOPSIS Adds or Removes the Element name/versions in BoRG to reflect changes. #> [CmdletBinding()] Param ( [Parameter(Mandatory = $false)] [AllowNull()] [object[]]$ElementsToAdd, [Parameter(Mandatory = $false)] [AllowNull()] [object[]]$ElementsToRemove, [Parameter(Mandatory = $true)] [string]$EnvironmentTypeName, [Parameter(Mandatory = $true)] [string]$PlatformVersionName, [Parameter(Mandatory = $true)] [string]$ElementTierName, [Parameter(Mandatory = $true)] [string]$BorgUri, [Parameter(Mandatory = $true)] [string]$ApiKey ) #Remove from BoRG $deletePlatformElementInventory = New-Object System.Collections.ArrayList foreach ($element in $ElementsToRemove) { $delete = New-PlatformElementDetailPSObject ` -EnvironmentTypeName $EnvironmentTypeName ` -ElementName $element.Name $deletePlatformElementInventory.Add($delete) | Out-Null } if ($deletePlatformElementInventory.Count -gt 0) { Write-Host "Deleting [$($deletePlatformElementInventory.Count)] PlatformElementDetail items from BoRG" (Remove-PlatformElementDetails -PlatformElementDetailArray $deletePlatformElementInventory.ToArray() -BorgUri $BorgUri -ApiKey $ApiKey) | Out-Null } else { Write-Host "No PlatformElementDetail items deleted in BoRG" } #Add/Update BoRG $addPlatformElementInventory = New-Object System.Collections.ArrayList foreach ($element in $ElementsToAdd) { $detail = New-PlatformElementDetailPSObject ` -EnvironmentTypeName $EnvironmentTypeName ` -PlatformVersionName $PlatformVersionName ` -ElementTierName $ElementTierName ` -ElementName $element.Name ` -ElementVersionName $element.Version $addPlatformElementInventory.Add($detail) | Out-Null } if ($addPlatformElementInventory.Count -gt 0) { Write-Host "Adding/Updating [$($addPlatformElementInventory.Count)] PlatformElementDetail items in BoRG" (New-PlatformElementDetails -PlatformElementDetailArray $addPlatformElementInventory.ToArray() -BorgUri $BorgUri -ApiKey $ApiKey) | Out-Null } else { Write-Host "No PlatformElementDetail items added to BoRG" } }