public/release/Add-PSTSReleaseDefinitionProcessParameterInput.ps1

function Add-PSTSReleaseDefinitionProcessParameterInput
{
    param(
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][string] $type,
        [Parameter(ParameterSetName="connectedService:AzureRM",ValueFromPipelineByPropertyName = $true)][string] $serviceConnectionId,
        [Parameter(ParameterSetName="pickList",ValueFromPipelineByPropertyName = $true)][string] $webappName,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][object] $releaseDefinition
    )

    process {

        $input = [ProcessParameterInput]::new()

        switch ( $type )
        {
            "connectedService:AzureRM" { 
                
               
                $input.type = $type
                $input.defaultValue = $serviceConnectionId
                $input.aliases = @()
                $input.label = "Azure subscription"
                $input.name = "ConnectedServiceName"
                $input.Required = $true
                $input.helpMarkDown = "Select the Azure Resource Manager subscription for the deployment."
  
            }

            "pickList" {
                $props = New-Object -TypeName "PSCustomObject"
                $props | Add-Member -MemberType NoteProperty -Name "EditableOptions" -Value $true
                $input.Properties=$props
                $input.type = $type
                $input.defaultValue = $webappName
                $input.aliases = @()
                $input.label = "App service name"
                $input.name = "WebAppName"
                $input.Required = $true
                $input.helpMarkDown = "Enter or select the name of an existing Azure App Service."
            }
        }

        $releaseDefinition.environments.processParameters.inputs+=$input

        return $releaseDefinition
    }
}