diff --git a/src/main/java/net/geant/nmaas/portal/api/domain/DomainAnnotationView.java b/src/main/java/net/geant/nmaas/portal/api/domain/DomainAnnotationView.java
new file mode 100644
index 0000000000000000000000000000000000000000..5912321d84a947f866d64e1ed76243ea027fea5d
--- /dev/null
+++ b/src/main/java/net/geant/nmaas/portal/api/domain/DomainAnnotationView.java
@@ -0,0 +1,17 @@
+package net.geant.nmaas.portal.api.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter
+@Setter
+public class DomainAnnotationView {
+
+    private Long id;
+    private String key;
+    private String value;
+}
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/portal/api/market/DomainController.java b/src/main/java/net/geant/nmaas/portal/api/market/DomainController.java
index c0df74ba7870fcd10cd8481325b3a484ed350aa4..382d56837ed860706f18722698073f05f0d90018 100644
--- a/src/main/java/net/geant/nmaas/portal/api/market/DomainController.java
+++ b/src/main/java/net/geant/nmaas/portal/api/market/DomainController.java
@@ -8,6 +8,7 @@ import net.geant.nmaas.dcn.deployment.entities.DcnDeploymentState;
 import net.geant.nmaas.orchestration.events.dcn.DcnDeployedEvent;
 import net.geant.nmaas.orchestration.events.dcn.DcnRemoveActionEvent;
 import net.geant.nmaas.orchestration.exceptions.InvalidDomainException;
+import net.geant.nmaas.portal.api.domain.DomainAnnotationView;
 import net.geant.nmaas.portal.api.domain.DomainBase;
 import net.geant.nmaas.portal.api.domain.DomainBaseWithState;
 import net.geant.nmaas.portal.api.domain.DomainGroupView;
@@ -245,7 +246,7 @@ public class DomainController extends AppBaseController {
 
 	@DeleteMapping("/group/{domainGroupId}")
 	@Transactional
-	@PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN')")
+	@PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN') || hasRole('ROLE_VL_MANAGER')")
 	public void deleteDomainGroup(@PathVariable Long domainGroupId) {
 		this.domainGroupService.deleteDomainGroup(domainGroupId);
 	}
@@ -287,7 +288,7 @@ public class DomainController extends AppBaseController {
 
 	@PatchMapping("/group/{domainGroupId}")
 	@Transactional
-	@PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN')")
+	@PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN') || hasRole('ROLE_VL_MANAGER')")
 	public DomainGroupView deleteDomainFromGroup(@PathVariable Long domainGroupId, @RequestBody Long domainId) {
 		return domainGroupService.deleteDomainFromGroup(
 				domainService.findDomain(domainId).orElseThrow(() -> new IllegalArgumentException(String.format("Domain with id %s doesn't exist", domainId))),
@@ -333,7 +334,7 @@ public class DomainController extends AppBaseController {
 	@PutMapping("/annotations/{id}")
 	@Transactional
 	@PreAuthorize("hasRole('ROLE_SYSTEM_ADMIN')")
-	public void updateAnnotation(@PathVariable Long id, @RequestBody DomainAnnotation annotation) {
+	public void updateAnnotation(@PathVariable Long id, @RequestBody DomainAnnotationView annotation) {
 		this.domainService.updateAnnotation(id, annotation);
 	}
 
diff --git a/src/main/java/net/geant/nmaas/portal/service/DomainService.java b/src/main/java/net/geant/nmaas/portal/service/DomainService.java
index 817d23ef9d74e96aaf31d31b64bb8e14cc1e4cfd..20f77b1aabc3615139594701f8e5b4a171f8c7f5 100644
--- a/src/main/java/net/geant/nmaas/portal/service/DomainService.java
+++ b/src/main/java/net/geant/nmaas/portal/service/DomainService.java
@@ -2,6 +2,7 @@ package net.geant.nmaas.portal.service;
 
 import net.geant.nmaas.dcn.deployment.DcnDeploymentType;
 import net.geant.nmaas.dcn.deployment.entities.DcnInfo;
+import net.geant.nmaas.portal.api.domain.DomainAnnotationView;
 import net.geant.nmaas.portal.api.domain.DomainGroupView;
 import net.geant.nmaas.portal.api.domain.DomainRequest;
 import net.geant.nmaas.portal.api.domain.KeyValueView;
@@ -72,5 +73,5 @@ public interface DomainService {
 	boolean checkIfAnnotationExist(String key);
 	void deleteAnnotation(Long id);
 	List<DomainAnnotation> getAnnotations();
-	void updateAnnotation(Long id,DomainAnnotation domainAnnotation);
+	void updateAnnotation(Long id,DomainAnnotationView domainAnnotation);
 }
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
index e8ad91d3b1e00e18cda868abf2aeb97f8595904e..1bfa4f3532b411f3594e5224616a4a6383dc9f07 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
@@ -7,6 +7,7 @@ import net.geant.nmaas.dcn.deployment.entities.DcnInfo;
 import net.geant.nmaas.dcn.deployment.entities.DcnSpec;
 import net.geant.nmaas.dcn.deployment.repositories.DomainDcnDetailsRepository;
 import net.geant.nmaas.orchestration.repositories.DomainTechDetailsRepository;
+import net.geant.nmaas.portal.api.domain.DomainAnnotationView;
 import net.geant.nmaas.portal.api.domain.DomainGroupView;
 import net.geant.nmaas.portal.api.domain.DomainRequest;
 import net.geant.nmaas.portal.api.domain.KeyValueView;
@@ -520,13 +521,13 @@ public class DomainServiceImpl implements DomainService {
     }
 
     @Override
-    public void updateAnnotation(Long id, DomainAnnotation annotation) {
+    public void updateAnnotation(Long id, DomainAnnotationView annotation) {
         Optional<DomainAnnotation> domainFromDb = this.domainAnnotationsRepository.findById(id);
         if (domainFromDb.isPresent() && id.equals(annotation.getId())) {
             DomainAnnotation domainAnnotation = domainFromDb.get();
             domainAnnotation.setKey(annotation.getKey());
             domainAnnotation.setValue(annotation.getValue());
-            this.domainAnnotationsRepository.save(annotation);
+            this.domainAnnotationsRepository.save(domainAnnotation);
         }
     }