tooling/ActionTypes/AppendNsgRule.xscript.ps1
#:xheader: #Type=ActionType; #:xheader: @{ Clean = { Param([ConfigAutomationContext] $context,[UIAction] $action) # Return Bool return $true }; Action = { Param([ConfigAutomationContext] $context,[UIAction] $action) $extracted = $action.Parameters().Extract(@("Payload", "CurrentPayload")) $array = ConvertFrom-Json $($extracted.CurrentPayload) $newObj = ConvertFrom-Json $($extracted.Payload) if(-not $array){ $array = @() } if(-not ($array -is [array])){ $array = @($array) } # Append New Rule $array += $newObj # New Array $newPayload = ConvertTo-Json $($array) $context.InjectOutputVariable($action, "CurrentPayload", $newPayload) # Return Bool return $true }; CanExecute = { Param([ConfigAutomationContext] $context,[UIAction] $action) # Return Bool return $true }; Validate = { Param([ConfigAutomationContext] $context,[UIAction] $action) if(-not $action.Parameters().Validate(@("Payload", "CurrentPayload"))){ return $false } $extracted = $action.Parameters().Extract(@("Payload", "CurrentPayload")) Write-Host ("JSON:`r`n$($extracted.Payload)") $newObj = ConvertFrom-Json $($extracted.Payload) if(-not $newObj){ $context.Error("Invalid Json Object") return $false } # Return Bool return $true }; } |