AzSynapseTriggerDependencies.psm1

<#
     .SYNOPSIS
         This Command provide the list of Pipelines that depend on the Trigger within Synapse.
 
 
 
     .DESCRIPTION
         This function provides the list of Pipelines that depend on the Trigger within Synapse.
 
 
 
     .PARAMETER WorkspaceName
     The WorkspaceName of Synapse
 
 
 
     .PARAMETER TriggerName
     The name of the Trigger in Synapse.
 
 
 
     .EXAMPLE
     Get-AzSynapseTriggerDependencies -WorkspaceName "<<WorkspaceName>>"
     Get-AzSynapseTriggerDependencies -WorkspaceName "<<WorkspaceName>>" -TriggerName "<<TriggerName>>"
 
#>

Function Get-AzSynapseTriggerDependencies
{

 

 

    Param 
    (
    [Parameter(Mandatory=$true)]
    [string] $WorkspaceName ,
    [Parameter(Mandatory=$false)]
    [string] $TriggerName 
    )

 


$htDependee = @{}
if(!$TriggerName)
{
$AllDependencies=Get-AzSynapseTrigger -workspacename $WorkspaceName 
}
else
{
$AllDependencies=Get-AzSynapseTrigger -workspacename $WorkspaceName -Name $TriggerName 
}

 

for($i=0; $i -lt $AllDependencies.Count ; $i++)
{

 

$TRDependantObjects=$AllDependencies[$i].properties.pipelines.pipelinereference.referencename

 

 

if($TRDependantObjects.count -ne 0)
    {

  if ($htDependee.ContainsKey($AllDependencies[$i].Name))
  {

 

       FOREACH($TRDep in $TRDependantObjects){
    if ($htDependee[$AllDependencies[$i].Name] -notcontains $TRDep) 

 

        {

 

        $htDependee[$AllDependencies[$i].Name] += $TRDep
        }
     }
}
else{
     FOREACH($TRDep in $TRDependantObjects){
    if ($htDependee[$AllDependencies[$i].Name] -notcontains $TRDep) 

 

        {

 

        $htDependee[$AllDependencies[$i].Name] += ,$TRDep
        }
     }

 

}
}

 

}

 

for ($i=0;$i -lt $AllDependencies.Count ; $i++)
{

 

if($htDependee.ContainsKey($AllDependencies[$i].Name))
{

 

write-host  $AllDependencies[$i].Name 'has' $($htDependee[$AllDependencies[$i].Name]).Count 'Dependencies'
Write-Host  $AllDependencies[$i].Name "is used in" $($htDependee[$AllDependencies[$i].Name]) `n 
}
else
{
write-host $AllDependencies[$i].Name "has no / 0 Dependency" `n 
}

 

}
}

Export-ModuleMember -Function Get-AzSynapseTriggerDependencies