Public/Add-Dependency.ps1

<#
.SYNOPSIS
Adds a dependency to a pipeline activity.
 
.DESCRIPTION
Adds a dependency on a predecessor activity to the specified activity's dependsOn collection. Each dependency can specify one or more conditions.
 
.LINK
https://abbgrade.github.io/PsDataFactory/docs/Add-AdfDependency.html
 
.LINK
https://learn.microsoft.com/en-us/rest/api/datafactory/pipelines/create-or-update?view=rest-datafactory-2018-06-01
 
.EXAMPLE
$activity | Add-AdfDependency -OnActivity $predecessorActivity -Condition Succeeded
Adds a dependency that allows the activity to proceed when the predecessor succeeds.
#>

function Add-Dependency {

    [CmdletBinding()]
    param (
        # The pipeline activity to which the dependency will be added.
        [Parameter( Mandatory, ValueFromPipeline )]
        [ValidateNotNullOrEmpty()]
        [PsCustomObject] $Activity,

        # The predecessor activity to add as a dependency.
        [Parameter( Mandatory )]
        [PsCustomObject] $OnActivity,

        # One or more conditions: Succeeded, Failed, Completed, or Skipped.
        [Parameter( Mandatory )]
        [ValidateSet('Succeeded', 'Failed', 'Completed', 'Skipped')]
        [string[]] $Condition

    )

    process {
        if ( -not $Activity.dependsOn ) {
            $Activity.dependsOn = @()
        } else {
            $Activity.dependsOn = @() + $Activity.dependsOn
        }

        $Activity.dependsOn += [PsCustomObject]@{
            activity = $OnActivity.Name
            dependencyConditions = @(
                $Condition
            )
        }
    }
}