Public/Get-P1Environments.ps1

function Get-P1Environments {
    <#
    .Synopsis
    Get PlannerOne environments.
 
    .Description
    Return the PlannerOne environments informations
 
    .Parameter Product
    The PlannerOne product (Project or Production).
 
    .Parameter Tenant
    The PlannerOne tenant.
     
    .Parameter WebPort
    The PlannerOne web application port.
 
    .Parameter WebAppName
    The PlannerOne web application name.
 
    .Example
    # Get the list of environments using a tenant
    Get-P1Environments -Product "Project" -Tenant "PlannerOneProd" -WebPort 80
 
    .Example
    # Get the list of environments using the WebAppName
    Get-P1Environments -Product "Project" -WebPort 80 -WebAppName "PlannerOneDev"
    #>

    [cmdletbinding()]
    param( 
        [Parameter(Mandatory=$true)]
        [string] $Product,
        [int] $WebPort,
        [string] $Tenant,
        [string] $WebAppName
    )
    Process
    {
    
    $TenantInfo = Get-P1Tenant $Tenant

    if ($WebPort -eq 0) {
        $WebPort = $TenantInfo.SitePort
    }
        
    if (!$WebAppName) {
        $WebAppName = $TenantInfo.WebApplicationName
    }

    $url = "http://localhost:$WebPort/$WebAppName/configure/ConfigurationService.svc/environments/" + $Product

    $conf = Invoke-RestMethod -Method GET -Uri $url -ContentType "application/json" -UseDefaultCredentials
    $objEnv = $conf | ConvertFrom-Json
    $environments = @()
    for($i=0; ($i -le $objEnv.Length); $i++)
    {
        $environments += $objEnv[$i].Value
    }

    return $environments
    }
}