private/Start-Trigger.ps1

function Start-Trigger {
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true)] [string] $ResourceGroupName,
        [parameter(Mandatory = $true)] [string] $DataFactoryName,
        [parameter(Mandatory = $true)] [string] $Name
    )
    Write-Debug "BEGIN: Start-Trigger()"

    Write-Host "- Enabling trigger: $Name"
    $attempts = 5;
    $i = 0
    while ($i -lt $attempts)
    {
        $i++
        try {
            Start-AzDataFactoryV2Trigger `
                -ResourceGroupName $ResourceGroupName `
                -DataFactoryName $DataFactoryName `
                -Name $Name `
                -Force | Out-Null
            # If successful, break out of the loop
            break
        }
        catch {
            $errMsg = $_.Exception.Message
            if ($i -lt $attempts)
            {
                if ($errMsg -like "*cannot be updated during provisioning*") {
                    Write-Verbose "Attempt #${i}: Trigger '$Name' is still provisioning. Waiting for provisioning to complete..."
                    $provisioningTimeout = 300
                    $pollInterval = 10
                    $elapsed = 0
                    while ($elapsed -lt $provisioningTimeout) {
                        Start-Sleep -Seconds $pollInterval
                        $elapsed += $pollInterval
                        $trigger = Get-AzDataFactoryV2Trigger `
                            -ResourceGroupName $ResourceGroupName `
                            -DataFactoryName $DataFactoryName `
                            -Name $Name
                        $provState = $trigger.Properties.ProvisioningState
                        Write-Verbose "Trigger provisioning state: $provState ($elapsed sec elapsed)"
                        if ($provState -ne 'Provisioning') { break }
                    }
                } else {
                    Write-Verbose "Attempt #$i of starting trigger failed. Retry in 2 seconds."
                    Start-Sleep -Seconds 2
                }
            }
            else
            {
                Write-Host "Failed starting trigger after $attempts attempts."
                Write-Warning -Message $errMsg
            }
        }
    }

    Write-Debug "END: Start-Trigger()"
}