in dev/import-beats/streams_config_parser.go [345:370]
func variableNamesIfNode(ifNode *parse.IfNode, inputType string, vars []string) []string {
var variables []string
variables = append(variables, vars...)
if isIfNodeEqInput(ifNode) {
if isIfNodeEqInputInputType(ifNode, inputType) {
if ifNode.List != nil {
variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.List, inputType, variables)))
}
} else {
if ifNode.ElseList != nil {
variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.ElseList, inputType, variables)))
}
}
} else {
if ifNode.List != nil {
variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.List, inputType, variables)))
}
if ifNode.ElseList != nil {
variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.ElseList, inputType, variables)))
}
variables = uniqueStringValues(append(variables, variableNamesForNodeArgs(ifNode.Pipe.Cmds[0].Args, variables)...))
}
return variables
}