@RequestMapping(value = "/cluster/{clusterName:.+}", method = RequestMethod.PUT) DaemonTask<Halconfig, Void> setCluster(@PathVariable String deploymentName, @PathVariable String providerName, @PathVariable String clusterName, @ModelAttribute ValidationSettings validationSettings, @RequestBody Object rawCluster) { Cluster cluster = objectMapper.convertValue( rawCluster, Providers.translateClusterType(providerName) ); return GenericUpdateRequest.<Cluster>builder(halconfigParser) .stagePath(halconfigDirectoryStructure.getStagingPath(deploymentName)) .updater(c -> clusterService.setCluster(deploymentName, providerName, clusterName, c)) .validator(() -> clusterService.validateCluster(deploymentName, providerName, cluster.getName())) .description("Edit the " + clusterName + " cluster") .build() .execute(validationSettings, cluster); }