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
    }
}