+
+ @PutMapping(
+ value = "/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}" + BI_DIRECTIONAL_RELATIONSHIP_LIST_URL,
+ consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
+ produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ public ResponseEntity<?> putBiDirectionalVfModuleRelationShip(@RequestBody final Relationship relationship,
+ @PathVariable("vnf-id") final String vnfId, @PathVariable("vf-module-id") final String vfModuleId,
+ final HttpServletRequest request) {
+ LOGGER.info("Will add {} bi-directional relationship to : {} ...", relationship.getRelatedTo());
+
+ final Optional<Relationship> optional =
+ cacheServiceProvider.addRelationShip(vnfId, vfModuleId, relationship, request.getRequestURI());
+
+ if (optional.isPresent()) {
+ final Relationship resultantRelationship = optional.get();
+ LOGGER.info("Relationship add, sending resultant relationship: {} in response ...", resultantRelationship);
+ return ResponseEntity.accepted().body(resultantRelationship);
+ }
+
+ LOGGER.error("Unable to add relationship for related link: {}", relationship.getRelatedLink());
+ return RequestErrorResponseUtils.getRequestErrorResponseEntity(request, GENERIC_VNF);
+ }
+
+ @DeleteMapping(value = "/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}",
+ produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ public ResponseEntity<?> deleteVfModule(@PathVariable("vnf-id") final String vnfId,
+ @PathVariable("vf-module-id") final String vfModuleId,
+ @RequestParam(name = "resource-version") final String resourceVersion,
+ final HttpServletRequest request) {
+ LOGGER.info("Deleting VfModule from cache with 'vf-module-id': {} ...", vfModuleId);
+
+ boolean response = cacheServiceProvider.deleteVfModule(vnfId, vfModuleId, resourceVersion);
+ if(response){
+ return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
+ } else {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
+ }
+ }