@RequestMapping(value = "/{deploymentName:.+}/generate/", method = RequestMethod.POST) DaemonTask<Halconfig, String> generateConfig(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<String> serviceNames) { List<String> finalServiceNames = serviceNames != null ? serviceNames : Collections.emptyList(); Supplier<String> buildResponse = () -> { GenerateService.ResolvedConfiguration configuration = generateService.generateConfigWithOptionalServices(deploymentName, finalServiceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList())); return configuration.getStagingDirectory(); }; StaticRequestBuilder<String> builder = new StaticRequestBuilder<>(buildResponse); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeployment(deploymentName)); } return DaemonTaskHandler.submitTask(builder::build, "Generate config"); }