Public/New-P1Tenant.ps1

function New-P1Tenant {
    <#
    .Synopsis
    Install a new PlannerOne tenant (service + web app).
 
    .Description
    Install a new PlannerOne tenant with the given parameters.
 
    .Parameter Tenant
    The tenant name.
 
    .Parameter WebServicePort
    The port to be used by AppServer for REST API.
 
    .Parameter RemotingPort
    The port to be used by AppServer for Remoting API.
 
    .Parameter WebPort
    The port to be used by WebServer site.
 
    .Example
    # Install a PlannerOne tenant named P1Prod.
    New-P1Tenant -Tenant P1Prod
    #>

    [cmdletbinding()]
    param( 
        [string] $Tenant,
        [int] $RemotingPort,
        [int] $WebServicePort,
    [int] $WebPort
    )
    Process
    {
    Write-Section "Creating tenant..."
        if ($RemotingPort -eq 0) {
            $RemotingPort = 9191
        }
        
        if ($WebServicePort -eq 0) {
            $WebServicePort = 8731
        }

        if ($WebPort -eq 0) {
            $WebPort = $DefaultWebPort
        }
        
    Write-Section "Registrating tenant..."
        Register-Tenant -Tenant $Tenant -RemotingPort $RemotingPort -WebServicePort $WebServicePort
    Write-OK "Registration done"

        New-P1ServerInstance -Tenant $Tenant
        
        New-P1WebApp -Tenant $Tenant -Port $WebPort

    Write-Warning "Run 'Set-P1NavConfiguration' to configure NAV Adapter"
    Write-Warning "Run 'Start-P1Manager -Tenant $Tenant' to initialize your ERP environments"
    Write-OK "Tenant '$Tenant' created"
    }
}