public/release/Update-PSTSReleaseDefinitionDeployInput.ps1

function Update-PSTSReleaseDefinitionDeployInput
{
    param(
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][string] $agentName,
        [Parameter(ValueFromPipelineByPropertyName = $true)][string] $artefactAliasName = $null,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][object] $releaseDefinition
    )

    process {

        $releaseDefinition.environments.DeployPhases.deploymentInput.agentSpecification.identifier =  $agentName
        $releaseDefinition.environments.DeployPhases.deploymentInput.artifactsDownloadInput.downloadInputs = @()

        if ($null -ne $artefactAliasName) {
            $downloadInput = [DownloadInput]::new()

            $downloadInput.alias=$artefactAliasName
            $downloadInput.artifactType="Build"
            $downloadInput.artifactDownloadMode = "All"
            $downloadInput.artifactItems = @()

            $releaseDefinition.environments.DeployPhases.deploymentInput.artifactsDownloadInput.downloadInputs+=$downloadInput

        }

        return $releaseDefinition
    }
}