Private/Select-ExactMatch.ps1

function Select-ExactMatch {
<#
.SYNOPSIS
Helper function, filters API data when infix search is used to provide an exact match

.DESCRIPTION
This function only selects exact matches based on the name provided in $Parameter

.NOTES
Written by Jaap Brasser for community usage
Twitter: @jaap_brasser
GitHub: jaapbrasser

.EXAMPLE
$result = Select-ExactMatch -Parameter Name -Result $Result

Filters based on the Name parameter, only exact matches will be returned. Additional results supplied by the API endpoints will be filtered out
#>

    [CmdletBinding()]
    param (
        [parameter(Mandatory)]
        [string] $Parameter,
        [parameter(Mandatory)]
        $Result
    )

    begin {
        $Value = (Get-Variable -Name $Parameter).Value
    }

    process {
        $OldCount = @($Result).count

        $result = $result | Where-Object {$Value -eq $_.$Parameter}

        Write-Verbose ('Excluded results not matching -{0} ''{1}'' {2} object(s) filtered, {3} object(s) remaining' -f $Parameter,$Value,($OldCount-@($Result).count),@($Result).count)

        return $result
    }
}