private boolean isHttpTaskValid(
                WorkflowTask workflowTask, ConstraintValidatorContext context) {
            boolean valid = true;
            boolean isInputParameterSet = false;
            boolean isInputTemplateSet = false;

            // Either http_request in WorkflowTask inputParam should be set or in inputTemplate
            // Taskdef should be set
            if (workflowTask.getInputParameters() != null
                    && workflowTask.getInputParameters().containsKey("http_request")) {
                isInputParameterSet = true;
            }

            TaskDef taskDef =
                    Optional.ofNullable(workflowTask.getTaskDefinition())
                            .orElse(
                                    ValidationContext.getMetadataDAO()
                                            .getTaskDef(workflowTask.getName()));

            if (taskDef != null
                    && taskDef.getInputTemplate() != null
                    && taskDef.getInputTemplate().containsKey("http_request")) {
                isInputTemplateSet = true;
            }

            if (!(isInputParameterSet || isInputTemplateSet)) {
                String message =
                        String.format(
                                PARAM_REQUIRED_STRING_FORMAT,
                                "inputParameters.http_request",
                                TaskType.HTTP,
                                workflowTask.getName());
                context.buildConstraintViolationWithTemplate(message).addConstraintViolation();
                valid = false;
            }

            return valid;
        }
This constraint class validates following things. 1. Correct parameters are set depending on task
type.
core/src/main/java/com/netflix/conductor/validations/WorkflowTaskTypeConstraint.java