functions/Update-CorrelationIDs.ps1

function Update-CorrelationIDs {
        <#
                .SYNOPSIS
                Updates all existing GUIDs with new GUIDs
                .DESCRIPTION
                Searches and replaces all "CorrelationId" GUIDs found in the .JSON file with new GUIDs
                .PARAMETER Path
                Specify the path to the .JSON file you want to update
                .EXAMPLE
                Update-CorrelationIDs -Path C:\myJsonRepo\exampleFile.json
        #>


        [CmdletBinding()]
        Param (
                [Parameter(Mandatory=$true,Position=0)][string]$Path
        )

        if (Test-Path $Path) {
                $json = Get-Content -Path $filePath | ConvertFrom-Json

                foreach ($globalOperation in $json.globalOperations) {
                        $globalOperation.correlationId = $globalOperation.correlationId -replace "\b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b", (New-Guid)
                }
                foreach ($testOperation in $json.testOperations) {
                        $testOperation.correlationId = $testOperation.correlationId -replace "\b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b", (New-Guid)
                }
                foreach ($firstOperation in $json.firstOperation) {
                        $firstOperation.correlationId = $firstOperation.correlationId -replace "\b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b", (New-Guid)
                }
                foreach ($fastOperation in $json.fastOperations) {
                        $fastOperation.correlationId = $fastOperation.correlationId -replace "\b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b", (New-Guid)
                }
                foreach ($broadOperation in $json.broadOperations) {
                        $broadOperation.correlationId = $broadOperation.correlationId -replace "\b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b", (New-Guid)
                }
                
                $json | ConvertTo-Json -Depth 100 | Set-Content -Path $filePath
        }
        else {
                Write-Host -ForegroundColor Yellow "The file in $Path was not found."
        }
}