private static List<String> extractListInputParam(
            String key, List<?> values, String taskName, WorkflowDef workflow) {
        ArrayList<String> errorList = new ArrayList<>();
        for (Object listVal : values) {
            if (listVal instanceof String) {
                errorList.addAll(
                        extractParamPathComponentsFromString(
                                key, listVal.toString(), taskName, workflow));
            } else if (listVal instanceof Map) {
                errorList.addAll(
                        validateInputParam((Map<String, Object>) listVal, taskName, workflow));
            } else if (listVal instanceof List) {
                errorList.addAll(extractListInputParam(key, (List<?>) listVal, taskName, workflow));
            }
        }
        return errorList;
    }
Validates inputParam and returns a list of errors if input is not valid.

@param input {@link Map} of inputParameters
@param taskName TaskName of inputParameters
@param workflow WorkflowDef
@return {@link List} of error strings.
common/src/main/java/com/netflix/conductor/common/utils/ConstraintParamUtil.java