Private/Bulk/Invoke-APIBulkSummaryOnypheIP.ps1

    Function Invoke-APIBulkSummaryOnypheIP {
        <#
          .SYNOPSIS
          create several input for Invoke-OnypheAPIV2 function and then call it to get the all available info for an array of IPs based on a file input from Bulk/summary/ip API
          .DESCRIPTION
          create several input for Invoke-OnypheAPIV2 function and then call it to get the all available info for an array of IPs based on a file input from Bulk/summary/ip API
          
          .PARAMETER FilePath
          -FilePath string{full path to an existing text file}
          full path to input file to send to onyphe API

          .PARAMETER OutFile
          -OutFile string{full path to a new file for exporting json data}
          full path to output file used to write json data from Onyphe

          .PARAMETER APIKEY
          -APIKey string{APIKEY}
          Set APIKEY as global variable.

          .OUTPUTS
          TypeName: System.Management.Automation.PSCustomObject
          
          .EXAMPLE
          export all info available as JSON for all IPs contained in listip.txt
          C:\PS> Invoke-APIBulkSummaryOnypheIP -FilePath .\listip.txt -OutFile .\results.json

          .EXAMPLE
          export all info available as JSON for all IPs contained in listip.txt and set the API Key
          C:\PS> Invoke-APIBulkSummaryOnypheIP -FilePath .\listip.txt -APIKey "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -OutFile .\results.json
    #>

        [cmdletbinding()]
        Param (
              [parameter(ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$true,Mandatory=$true)]
              [Alias("input")]
              [ValidateScript({(test-path $_)})]
                  [string]$FilePath,
              [parameter(Mandatory=$true)]
              [ValidateScript({!(test-path $_)})]
                  [string]$OutFile,
              [parameter(Mandatory=$false)]
              [ValidateLength(40,40)]
                  [string]$APIKey,
            [parameter(Mandatory=$false)]
            [ValidateNotNullOrEmpty()]
                [hashtable]$FuncInput
        )
        process {
            $params = @{
                Endpoint = 'summary/ip'
                FilePath = $FilePath
                OutFile  = $OutFile
            }
            if ($APIKey) { $params.APIKey = $APIKey }
            if ($FuncInput) { $params.FuncInput = $FuncInput }
            Invoke-OnypheBulkFileUpload @params
        }
    }