Private/Get-Formdata.ps1

function Get-Formdata {
<#
.SYNOPSIS
    Outputs a 'Formdata' dictionary from input
.PARAMETER ENDPOINT
    RiskIQ endpoint
.PARAMETER DYNAMIC
    A runtime parameter dictionary to search for input values
#>

    [CmdletBinding()]
    [OutputType()]
    param(
        [Parameter(
            Mandatory = $true,
            Position = 1)]
        [object] $Endpoint,

        [Parameter(
            Mandatory = $true,
            Position = 2)]
        [System.Collections.ArrayList] $Dynamic
    )
    process {
        foreach ($Item in ($Dynamic.Values | Where-Object IsSet)) {
            # Match input parameter with endpoint
            $Param = $Endpoint.Parameters | Where-Object Dynamic -eq $Item.Name

            if ($Param.In -match 'formdata') {
                if (-not($FormdataOutput)) {
                    $FormdataOutput = @{}
                }
                # Add parameter to output
                $FormdataOutput[$Param.Name] = $Item.Value
            }
        }
        if ($FormdataOutput) {
            Write-Debug "[$($MyInvocation.MyCommand.Name)] $(ConvertTo-Json $FormdataOutput)"

            # Output formdata value
            $FormdataOutput
        }
    }
}