functions/Get-ToolProject.ps1

<#
.SYNOPSIS
  
Returns tool project ID for given project name.
  
.DESCRIPTION
Returns tool project ID for given project name using the CodeDx endpoint.
  
.EXAMPLE
Get-ToolProject "selected_project" myProject 54 https://cxprivatecloud.checkmarx.net/ username@email.com mypw1234
 
Output
1
  
#>


Function Get-ToolProject
{
    [cmdletbinding()]
    param(
        [Parameter(Mandatory=$true)]
        [string]$FieldName,
        [Parameter(Mandatory=$true)]
        [string]$ToolProjectName,
        [Parameter(Mandatory=$true)]
        [string]$ConnectorID,
        [Parameter(Mandatory=$true)]
        [string]$HostURL,
        [Parameter(Mandatory=$true)]
        [string]$UserName,
        [Parameter(Mandatory=$true)]
        [string]$Password
    )
    
    $uri = $CDXSERVER + "/x/tool-connector-config/values/" + $ConnectorID + "/populate/" + $FieldName

    $body = Convertto-Json @{
        host_url = $HostURL
        server_url = $HostURL
        username = $UserName
        password = $Password
    }

    $ToolProjects = Invoke-RestMethod -Uri $uri -Method Post -Body $body -Headers $headers -ContentType "application/json" 
    Write-Verbose ( $ToolProjects | Format-Table | Out-String )

    # Get the tool project ID from the name
    $ToolProjects | ForEach-Object {
        if($_.display -eq $ToolProjectName) {
            $ToolProjectID = $_.value
        }
    }
    
    return $ToolProjectID
}