@RequestMapping( value = "{nsrId}/vnfd/{vnfdId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.CREATED) public NetworkServiceRecord scaleOut( @PathVariable("nsrId") String nsrId, @PathVariable("vnfdId") String vnfdId, @RequestHeader(value = "project-id") String projectId, @RequestBody(required = false) JsonObject jsonObject) throws NotFoundException, MissingParameterException, BadRequestException, InterruptedException, BadFormatException, ExecutionException, CyclicDependenciesException, NetworkServiceIntegrityException { log.debug("Json Body is" + jsonObject); Type mapTypeConfigurations = new TypeToken<Map<String, Configuration>>() {}.getType(); Type mapTypeVduVimInstances = new TypeToken<Map<String, Set<String>>>() {}.getType(); String monitoringIp = null; if (jsonObject.has("monitoringIp")) { monitoringIp = jsonObject.get("monitoringIp").getAsString(); } return networkServiceRecordManagement.scaleOutNsr( nsrId, vnfdId, projectId, gson.fromJson(jsonObject.getAsJsonArray("keys"), List.class), gson.fromJson(jsonObject.getAsJsonObject("vduVimInstances"), mapTypeVduVimInstances), gson.fromJson(jsonObject.get("configurations"), mapTypeConfigurations), monitoringIp); }