diff --git a/OneM2M_Functions.ttcn b/OneM2M_Functions.ttcn
index b8e94d70f70287bcdc14f23a3d350b08b1d3d016..9b08ae0837a9baa8c4d73c6cdb9df74c9fafabbb 100644
--- a/OneM2M_Functions.ttcn
+++ b/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 43 2016-04-13 12:16:12Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 76 2016-04-29 14:15:01Z berge $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -33,6 +33,7 @@ module OneM2M_Functions {
     			
     		// Map
     		map(self:mcaPort, system:mcaPort);
+    		map(self:acPort, system:acPort);
     		activate(a_default());
     			
     		// Connect
@@ -52,7 +53,7 @@ module OneM2M_Functions {
 			var XSD.ID v_acpId;
 		
 		
-			v_acpId := f_createAccessControlPolicyAux(p_allowedOperations);
+			v_acpId := f_createAccessControlPolicyAux(p_allowedOperations := p_allowedOperations);
 			
 			mcaPort.send(m_request(m_createAeAux(p_name, {v_acpId})));
 			tc_ac.start;
@@ -62,6 +63,7 @@ module OneM2M_Functions {
 					log("Preamble: Application registered successfuly");
 					if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AE)) {
 						vc_ae := v_response.responsePrimitive_.primitiveContent.any_1[0].AE;
+						f_sendAcPrimitive("AE-ID_changed", vc_ae.aE_ID);
 					}
 				}
 				[] mcaPort.receive(mw_responseKO) {
@@ -91,7 +93,7 @@ module OneM2M_Functions {
 			var M2MResponsePrimitive v_response;
 			
 			if (PX_RUN_POSTAMBLE) {
-				mcaPort.send(m_request(m_deleteAe("/" & PX_CSE_NAME & "/" & valueof(p_aeName))));
+				mcaPort.send(m_request(m_deleteAe(PX_URI_CSE & PX_CSE_NAME & "/" & valueof(p_aeName))));
 				tc_ac.start;
 				alt {
 					[] mcaPort.receive(mw_responseOK) {
@@ -107,7 +109,7 @@ module OneM2M_Functions {
 					}	
 				}	
     		
-				mcaPort.send(m_request(m_deleteAcp("/" & PX_CSE_NAME & "/MyAcp")));
+				mcaPort.send(m_request(m_deleteAcp(PX_URI_CSE & PX_CSE_NAME & "/MyAcp")));
 				tc_ac.start;
 				alt {
 					[] mcaPort.receive(mw_responseOK) {
@@ -122,6 +124,8 @@ module OneM2M_Functions {
 						log("Postamble: No answer while deleting resource");
 					}	
 				}
+				
+
 			}
 		
 			f_postamble_default();
@@ -130,7 +134,8 @@ module OneM2M_Functions {
 		function f_postamble_default() runs on M2M {
 	
 			unmap(self:mcaPort, system:mcaPort); 
-			stop;
+			unmap(self:acPort, system:acPort);
+			//stop;
 		}		
 		
 	}//end group postambleFunctions
@@ -164,9 +169,6 @@ module OneM2M_Functions {
 		
 			if (p_resourceType == int1) {//AccessControlPolicy
 			
-				if(isvalue(p_allowedOperations)){
-					p_request.primitiveContent.any_1[0].ACP_create := valueof(m_contentCreateAcp (c_defaultResourceName, p_allowedOperations));
-				}		
 			} 
 			if (p_resourceType == int9) {//group
 				p_request.primitiveContent.any_1[0].Group_create := m_contentCreateGroup (1, {"/" & PX_CSE_NAME & "/" & vc_ae.resourceID}, omit);
@@ -218,12 +220,25 @@ module OneM2M_Functions {
 			return "1";
   
 		}
+		
+		function f_getAttribute(in MyAttributeList p_attributeList, in XSD.NCName p_attributeName) return Attribute {
+		var integer i;
+		var Attribute v_attribute := {-, -};
+		
+		for (i:=0; i < lengthof(p_attributeList); i := i + 1){
+			if(p_attributeList[i].name == p_attributeName){
+			}	
+		}
+			
+		return v_attribute;
+		
+		}
 				
 	}//end group getSetFunctions
 	
 	group helpingFunctions {
 
-		function f_createResource(in ResourceType p_resourceType, XSD.ID p_parentResourceAddress, template RequestPrimitive p_requestPrimitive) runs on M2M {
+		function f_createResource(in ResourceType p_resourceType, XSD.ID p_parentResourceAddress, template RequestPrimitive p_requestPrimitive) runs on M2M return RequestPrimitive {
 		
 			var M2MResponsePrimitive v_response;
 			var RequestPrimitive v_request;
@@ -249,39 +264,100 @@ module OneM2M_Functions {
 					setverdict(inconc, "f_createResource: No answer while creating resource type " & int2str(enum2int(p_resourceType)));
 				}
 			}	
+			
+			return v_request;
 	
 		}
 	
-		function f_createAccessControlPolicyAux(in template (value) AccessControlOperations p_allowedOperations) runs on M2M return XSD.ID{
+		function f_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := "MyAcp", in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return XSD.ID{
+		
+			var M2MResponsePrimitive v_response;
+			var XSD.ID v_acpId;
+		
+			mcaPort.send(m_request(m_createAcpAux(p_acpName := p_acpName, p_allowedOperations := p_allowedOperations)));
+			tc_ac.start;
+			alt {
+				[] mcaPort.receive(mw_responseOK) -> value v_response {
+					tc_ac.stop;
+					setverdict(pass, "f_createAccessControlPolicy: Resource type " & int2str(1) & " created successfuly");
+					v_acpId := f_getResourceId(v_response.responsePrimitive_.primitiveContent);
+					return v_acpId;
+				}
+				[] mcaPort.receive(mw_responseKO) {
+					tc_ac.stop;
+					setverdict(inconc, "f_createAccessControlPolicy: Error while creating resource type " & int2str(1));
+				}
+				[] mcaPort.receive {
+					tc_ac.stop;
+					setverdict(inconc, "f_createAccessControlPolicy: Unexpected message received");
+				}
+				[] tc_ac.timeout {
+					setverdict(inconc, "f_createAccessControlPolicy: No answer while creating resource type " & int2str(1));
+				}
+			}	
 		
-				var M2MResponsePrimitive v_response;
-				var XSD.ID v_acpId;
+			return "0";
+
+		}
 			
-				mcaPort.send(m_request(m_createAcpAux(p_allowedOperations)));
-				tc_ac.start;
-				alt {
-					[] mcaPort.receive(mw_responseOK) -> value v_response {
-						tc_ac.stop;
-						setverdict(pass, "f_createAccessControlPolicy: Resource type " & int2str(1) & " created successfuly");
-						v_acpId := f_getResourceId(v_response.responsePrimitive_.primitiveContent);
-						return v_acpId;
-					}
-					[] mcaPort.receive(mw_responseKO) {
-						tc_ac.stop;
-						setverdict(inconc, "f_createAccessControlPolicy: Error while creating resource type " & int2str(1));
-					}
-					[] mcaPort.receive {
-						tc_ac.stop;
-						setverdict(inconc, "f_createAccessControlPolicy: Unexpected message received");
-					}
-					[] tc_ac.timeout {
-						setverdict(inconc, "f_createAccessControlPolicy: No answer while creating resource type " & int2str(1));
-					}
-				}	
 			
-				return "0";
+		function f_createContainerResourceAux (XSD.ID p_parentResourceAddress) runs on M2M return RequestPrimitive {
+		
+			var M2MResponsePrimitive v_response;
+			var RequestPrimitive v_request;
+			var XSD.ID v_acpId;
+			
+			v_acpId := f_createAccessControlPolicyAux(p_acpName := "MyAcp_2");
+			
+			v_request := valueof(m_createContainerBase);
+			v_request.primitiveContent.any_1[0].Container_create.accessControlPolicyIDs := {v_acpId};
+			v_request.primitiveContent.any_1[0].Container_create.resourceName := "MyContainerAux";
+			
+			f_createResource(int3, p_parentResourceAddress, v_request );
+			
+			return v_request;		
 	
-			}
+		}
+		
+		function f_updateAcpAuxResource (XSD.ID p_acpAddress, in template (value) AccessControlOperations p_allowedOperations) runs on M2M {
+			var RequestPrimitive v_request;
+			
+			v_request := valueof(m_updateAcpBase);
+			
+			v_request.to_ := p_acpAddress;
+			v_request.primitiveContent.any_1[0].ACP_update.privileges.accessControlRule_list := {
+    			{
+    				accessControlOriginators := {"admin:admin"},
+    				accessControlOperations := p_allowedOperations,
+    				accessControlContexts_list := omit
+    			}
+    		};
+						
+			mcaPort.send(m_request(v_request));
+			tc_ac.start;
+			alt {
+				[] mcaPort.receive(mw_responseOK)  {
+					tc_ac.stop;
+					setverdict(pass, "f_updateAcpAuxResource: " & p_acpAddress & " resource updated successfuly");
+					//TODO: Check that name attribute is provided
+				}
+				[] mcaPort.receive(mw_responseKO) {
+					tc_ac.stop;
+					setverdict(fail, "f_updateAcpAuxResource: Error while updating " & p_acpAddress & " resource");
+				}
+				[] tc_ac.timeout {
+					setverdict(inconc, "f_updateAcpAuxResource: No answer while updating " & p_acpAddress & " resource" );
+				}
+			}		
+		}
+		
+		function f_sendAcPrimitive(in charstring event, in charstring data) runs on M2M {
+
+			var charstring v_data := "" & data; // clear encoding rules (ttwb issue ?)
+			acPort.send(AcRequestPrimitive:{event, {charstring := v_data}});
+			
+		}
+		
 		
 	}//end group helpingFunctions	
 
diff --git a/OneM2M_Pixits.ttcn b/OneM2M_Pixits.ttcn
index 54f2f05f7817cd99195df02a3f7c797483e20943..7d62acc00646ca1f516f9608314f62a505dc923d 100644
--- a/OneM2M_Pixits.ttcn
+++ b/OneM2M_Pixits.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Pixits.ttcn $
- *              $Id: OneM2M_Pixits.ttcn 39 2016-04-08 12:34:02Z berge $
+ *              $Id: OneM2M_Pixits.ttcn 49 2016-04-25 08:29:23Z reinaortega $
  *  @desc       Module containing Pixits for oneM2M
  *
  */
@@ -35,7 +35,7 @@ module OneM2M_Pixits {
 	
 	modulepar boolean PX_RUN_POSTAMBLE := true;
 	
-	modulepar charstring PX_SERIALIZATION := "XML";
+	modulepar charstring PX_SERIALIZATION := "JSON";
 	
 	modulepar charstring PX_PROTOCOL_BINDING := "HTTP";
 	
diff --git a/OneM2M_Templates.ttcn b/OneM2M_Templates.ttcn
index 6c06e6df375d67010d966f40debb7f6b295c01c8..4f351f7faecbecd5eebc9bed169c892c6f9590bb 100644
--- a/OneM2M_Templates.ttcn
+++ b/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 43 2016-04-13 12:16:12Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 69 2016-04-28 07:49:58Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -26,12 +26,13 @@ module OneM2M_Templates {
 	 * @desc 
 	 * @param p_requestPrimitive
 	 */
-	template (value) M2MRequestPrimitive m_request(in template (value) RequestPrimitive p_requestPrimitive ) := {
+	template (value) M2MRequestPrimitive m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := {
 		requestPrimitive_ := p_requestPrimitive,
 		host := PX_HOST_ADDRESS,
 		xmlNamespace := PX_XML_NAMESPACE,
 		protocolBinding := PX_PROTOCOL_BINDING,
-		serialization := PX_SERIALIZATION
+		serialization := PX_SERIALIZATION, 
+		nullFields := p_nullFields
 		
 	};
 	
@@ -397,7 +398,7 @@ module OneM2M_Templates {
 				requestIdentifier := "m_createAcp",
 				resourceType := int1,
 				primitiveContent := {
-					any_1 := {{ACP_create := m_contentCreateAcp (omit, int63)}}
+					any_1 := {{ACP_create := m_contentCreateAcp ()}}
 				},
 				role := omit,
 				originatingTimestamp := omit,
@@ -415,14 +416,14 @@ module OneM2M_Templates {
 
 			};
 				
-        	template (value) RequestPrimitive m_createAcp(XSD.ID p_aeResourceAddress, in template (omit)  XSD.String p_name, in template (value) AccessControlOperations p_allowedOperations ) := {
+        	template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultResourceName, in template (value) AccessControlOperations p_allowedOperations := int63) := {
         		operation := int1,
-        		to_ := p_aeResourceAddress,
+        		to_ := p_parentResourceAddress,
         		from_ := PX_AE_ID_STEM,
         		requestIdentifier := "m_createAcp",
         		resourceType := int1,
         		primitiveContent := {
-					any_1 := {{ACP_create := m_contentCreateAcp (omit, p_allowedOperations)}}
+					any_1 := {{ACP_create := m_contentCreateAcp (p_name, p_allowedOperations)}}
         		},
 				role := omit,
 				originatingTimestamp := omit,
@@ -440,14 +441,14 @@ module OneM2M_Templates {
 
         	};
         	
-        	template (value) RequestPrimitive m_createAcpAux(in template (value) AccessControlOperations p_allowedOperations ) := {
+        	template (value) RequestPrimitive m_createAcpAux(in template (value) XSD.String p_acpName := "MyAcp", in template (value) AccessControlOperations p_allowedOperations := int63 ) := {
         		operation := int1,
         		to_ := PX_URI_CSE & PX_CSE_NAME,
         		from_ := PX_AE_ID_STEM,
         		requestIdentifier := "m_createAcp",
         		resourceType := int1,
         		primitiveContent := {
-        			any_1 := {{ACP_create := m_contentCreateAcp ("MyAcp", p_allowedOperations)}}	
+        			any_1 := {{ACP_create := m_contentCreateAcp (p_acpName, p_allowedOperations)}}	
         		},
 				role := omit,
 				originatingTimestamp := omit,
@@ -491,9 +492,9 @@ module OneM2M_Templates {
 
 			};
 	
-    		template (value) RequestPrimitive m_createContainer(XSD.ID p_aeResourceAddress, in template (omit) XSD.String p_resourceName) := {
+    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName) := {
     			operation := int1,
-    			to_ := p_aeResourceAddress,
+    			to_ := p_parentResourceAddress,
     			from_ := PX_AE_ID_STEM,
     			requestIdentifier := "m_createContainer",
     			resourceType := int3,
@@ -516,9 +517,9 @@ module OneM2M_Templates {
 
     		};
         	
-    		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_resourceId, XSD.String p_primitiveContent) := {
+    		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) := {
     			operation := int1,
-    			to_ := p_resourceId,
+    			to_ := p_parentResourceAddress,
     			from_ := "admin:admin",
     			requestIdentifier := "m_createContentInstance",
     			resourceType := int4,
@@ -566,9 +567,9 @@ module OneM2M_Templates {
 
 				};
         	
-        	template (value) RequestPrimitive m_createGroup(XSD.ID p_aeResourceAddress, in template (omit)  XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, in template (value) XSD.AnyURI p_memberId ) := {
+        	template (value) RequestPrimitive m_createGroup(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, in template (value) XSD.AnyURI p_memberId ) := {
         		operation := int1,
-        		to_ := p_aeResourceAddress,
+        		to_ := p_parentResourceAddress,
         		from_ := PX_AE_ID_STEM,
         		requestIdentifier := "m_createGroup",
         		resourceType := int9,
@@ -616,9 +617,9 @@ module OneM2M_Templates {
 
 				};
         	
-        	template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_aeResourceAddress, in template (value)XSD.ID p_originatorId, in template (omit) AcpType p_accessControlPolicyIDs ) := {
+        	template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_parentResourceAddress, in template (value)XSD.ID p_originatorId, in template (omit) AcpType p_accessControlPolicyIDs ) := {
         		operation := int1,
-        		to_ := p_aeResourceAddress,
+        		to_ := p_parentResourceAddress,
         		from_ := p_originatorId,
         		requestIdentifier := "m_createPollingChannel",
         		resourceType := int15,
@@ -668,9 +669,9 @@ module OneM2M_Templates {
         
         	};
         	
-        	template (value) RequestPrimitive m_createSchedule(XSD.ID p_aeResourceAddress, in template (omit)  XSD.String p_name, in template (value) ScheduleEntries p_scheduleElement ) := {
+        	template (value) RequestPrimitive m_createSchedule(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ScheduleEntries p_scheduleElement ) := {
         		operation := int1,
-        		to_ := p_aeResourceAddress,
+        		to_ := p_parentResourceAddress,
         		from_ := PX_AE_ID_STEM,
         		requestIdentifier := "m_createSchedule",
         		resourceType := int18,
@@ -718,9 +719,9 @@ module OneM2M_Templates {
 
 			};
         	
-        	template (value) RequestPrimitive m_createSubscription(XSD.ID p_aeResourceAddress, in template (omit)  XSD.String p_name, in template (value) ListOfURIs p_notificationURI ) := {
+        	template (value) RequestPrimitive m_createSubscription(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ListOfURIs p_notificationURI ) := {
         		operation := int1,
-        		to_ := p_aeResourceAddress,
+        		to_ := p_parentResourceAddress,
         		from_ := PX_AE_ID_STEM,
         		requestIdentifier := "m_createSubscription",
         		resourceType := int23,
@@ -810,7 +811,7 @@ module OneM2M_Templates {
 			requestReachability := false
     	};
     	
-    	template (value) ACP_create m_contentCreateAcp (in template (omit) XSD.String p_name, in template (value) AccessControlOperations p_allowedOperations ) := {
+    	template (value) ACP_create m_contentCreateAcp (in template (omit) XSD.String p_name := c_defaultResourceName, in template (value) AccessControlOperations p_allowedOperations := int63 ) := {
 			resourceName := p_name,
 			labels := omit,
 			expirationTime := omit,
@@ -1017,11 +1018,425 @@ module OneM2M_Templates {
 			ontologyRef := omit
 		};
 	}//end group ContentUpdate
+
+	group responseContent {
+		
+		template AE mw_contentAeBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			accessControlPolicyIDs := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			appName := *,
+			app_ID := ?,
+			aE_ID := ?,
+			pointOfAccess := *,
+			ontologyRef := *,
+			nodeLink := *,
+			requestReachability := ?,
+			contentSerialization := *,
+			choice := *
+		};
+    	
+		template AccessControlPolicy mw_contentAcpBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			privileges := ?,
+			selfPrivileges := ?,
+			choice := *
+		};
+		
+		template AccessControlPolicy mw_contentAcp_rc1 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		//TODO
+		template AccessControlPolicy mw_contentAcp_rc2 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		template AccessControlPolicy mw_contentAcp_rc3 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		template AccessControlPolicy mw_contentAcp_rc4 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		template AccessControlPolicy mw_contentAcp_rc5 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		template AccessControlPolicy mw_contentAcp_rc6 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+		
+		template AccessControlPolicy mw_contentAcp_rc7 modifies mw_contentAcpBase := {
+			choice := omit	
+		}
+    	
+		template Group mw_contentGroupBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			accessControlPolicyIDs := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			creator := *,
+			memberType := ?,
+			currentNrOfMembers := ?,
+			maxNrOfMembers := ?,
+			memberIDs := ?,
+			membersAccessControlPolicyIDs := *,
+			memberTypeValidated := ?,
+			consistencyStrategy := *,
+			groupName := *,
+			fanOutPoint := ?,
+			choice := *
+		};
+		
+		template Group mw_contentGroup_rc1 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc2 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc3 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc4 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc5 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc6 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+		
+		template Group mw_contentGroup_rc7 modifies mw_contentGroupBase := {
+			choice := omit	
+		}
+    	
+		template PollingChannel mw_contentPollingChannelBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			accessControlPolicyIDs := *,
+			expirationTime := ?,
+			pollingChannelURI := ?
+		};
+		
+		template Schedule mw_contentScheduleBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			scheduleElement := ?,
+			choice := *
+		};
+		
+		template Schedule mw_contentSchedule_rc1 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc2 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc3 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc4 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc5 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc6 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+		
+		template Schedule mw_contentSchedule_rc7 modifies mw_contentScheduleBase := {
+			choice := omit	
+		}
+    	
+		template Subscription mw_contentSubscriptionBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			accessControlPolicyIDs := *,
+			expirationTime := ?,
+			eventNotificationCriteria := *,
+			expirationCounter := *,
+			notificationURI := ?,
+			groupID := *,
+			notificationForwardingURI := *,
+			batchNotify := *,
+			rateLimit := *,
+			preSubscriptionNotify := *,
+			pendingNotification := *,
+			notificationStoragePriority := *,
+			latestNotify := *,
+			notificationContentType := ?,
+			notificationEventCat := *,
+			creator := *,
+			subscriberURI := *,
+			choice := *
+		};
+		
+		template Subscription mw_contentSubscription_rc1 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc2 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc3 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc4 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc5 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc6 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+		
+		template Subscription mw_contentSubscription_rc7 modifies mw_contentSubscriptionBase := {
+			choice := omit	
+		}
+    	
+		template ContentInstance mw_contentContentInstanceBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			stateTag := ?,
+			creator := *,
+			contentInfo := *,
+			contentSize := ?,
+			ontologyRef := *,
+			content := ?
+		};
+		
+		template Container mw_contentContainerBase := {
+			resourceName := ?,
+			resourceType := ?,
+			resourceID := ?,
+			parentID := ?,
+			creationTime := ?,
+			lastModifiedTime := ?,
+			labels := *,
+			accessControlPolicyIDs := *,
+			expirationTime := ?,
+			announceTo := *,
+			announcedAttribute := ?,
+			stateTag := ?,
+			creator := ?,
+			maxNrOfInstances := *,
+			maxByteSize := *,
+			maxInstanceAge := *,
+			currentNrOfInstances := ?,
+			currentByteSize := ?,
+			locationID := *,
+			ontologyRef := *,
+			latest := ?,
+			oldest := ?,
+			choice := *
+		};
+		
+		template Container mw_contentContainer_rc1 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc2 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc3 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc4 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc5 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc6 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+		
+		template Container mw_contentContainer_rc7 modifies mw_contentContainerBase := {
+			choice := omit	
+		}
+	}//end group responseContent
 	
 	group SpecialContents {
+
+		template (value) AE_update_invalid m_contentUpdateAe_invalid := {
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			creationTime := omit,
+			expirationTime := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			appName := omit,
+			pointOfAccess := omit,
+			ontologyRef := omit,
+			requestReachability := omit
+		};
+    	
+		template (value) ACP_update_invalid m_contentUpdateAcp_invalid := {
+			labels := omit,
+			creationTime := omit,
+			expirationCounter := omit,
+			expirationTime := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			privileges := omit,
+			selfPrivileges := omit
+		};
+    	
+		template (value) Group_update_invalid m_contentUpdateGroup_invalid := {
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			creationTime := omit,
+			expirationCounter := omit,
+			expirationTime := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			maxNrOfMembers := omit,
+			memberIDs := omit,
+			membersAccessControlPolicyIDs := omit,
+			groupName := omit
+		};
+    	
+		template (value) PollingChannel_update_invalid m_contentUpdatePollingChannel_invalid := {
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			creationTime := omit,
+			expirationCounter := omit,
+			expirationTime := omit,
+			pollingChannelURI := omit
+		};
+    	
+		template (value) Schedule_update_invalid m_contentUpdateSchedule_invalid := {
+			labels := omit,
+			creationTime := omit,
+			expirationCounter := omit,
+			expirationTime := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			scheduleElement := omit
+		};
+    	
+		template (value) Subscription_update_invalid m_contentUpdateSubscription_invalid := {
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			creationTime := omit,
+			maxNrOfInstances := omit,
+			expirationTime := omit,
+			eventNotificationCriteria := omit,
+			expirationCounter := omit,
+			notificationURI := omit,
+			groupID := omit,
+			notificationForwardingURI := omit,
+			batchNotify := omit,
+			rateLimit := omit,
+			pendingNotification := omit,
+			notificationStoragePriority := omit,
+			latestNotify := omit,
+			notificationContentType := omit,
+			notificationEventCat := omit
+		};
+    	
+		template (value) ContentInstance_update_invalid m_contentUpdateContentInstance_invalid(XSD.String p_primitiveContent) := {
+			labels := omit,
+			creationTime := omit,
+			announceTo := omit,
+			contentInfo := omit,
+			contentSize := omit,
+			ontologyRef := omit,
+			content_ := { 
+				embed_values := {p_primitiveContent},
+				attr := omit,
+				elem_list := {}  
+			}
+		};
 		
+		template (value) Container_update_invalid m_contentUpdateContainer_invalid := {
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			creationTime := omit,
+			expirationCounter := omit,
+			expirationTime := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			maxNrOfInstances := omit,
+			maxByteSize := omit,
+			maxInstanceAge := omit,
+			locationID := omit,
+			ontologyRef := omit
+		};		
 				
-	}//end gropu SpecialContents
+	}//end group SpecialContents
 	
 	group ResponsePrimitives {
 		template M2MResponsePrimitive mw_response(ResponseStatusCode p_statusCode) := {
@@ -1037,11 +1452,11 @@ module OneM2M_Templates {
     		}
     	};
     	
-    	template M2MResponsePrimitive mw_responseOK := {
+    	template M2MResponsePrimitive mw_responseOK(in template PrimitiveContent p_content := *) := {
     		responsePrimitive_ := {
     			responseStatusCode := (int2000, int2001, int2002, int2004),
     			requestIdentifier := ?,
-    			primitiveContent := *,
+    			primitiveContent := p_content,
 				to_ := *,
     			from_ := *,
 				originatingTimestamp := *,
@@ -1049,6 +1464,7 @@ module OneM2M_Templates {
 				eventCategory := *
     		}	
     	};
+
         		 
     	template M2MResponsePrimitive mw_responseKO := {
     		responsePrimitive_ := {
diff --git a/OneM2M_TestSystem.ttcn b/OneM2M_TestSystem.ttcn
index 58f1fb0e29f885d2a5f1b470eaa19fc0257c4d4b..98a0c997f6ec45e330ba8335930fff4b43d31a3c 100644
--- a/OneM2M_TestSystem.ttcn
+++ b/OneM2M_TestSystem.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestSystem.ttcn $
- *              $Id: OneM2M_TestSystem.ttcn 23 2016-03-17 10:02:44Z reinaortega $
+ *              $Id: OneM2M_TestSystem.ttcn 76 2016-04-29 14:15:01Z berge $
  *  @desc       Test System module for oneM2M
  *
  */
@@ -24,11 +24,19 @@ module OneM2M_TestSystem {
 		out
 			M2MRequestPrimitive, M2MResponsePrimitive;
 	}
+	
+	type port AdapterControlPort message {
+		in
+			AcResponsePrimitive;
+		out
+			AcRequestPrimitive;
+	}
 
 	/* Components */		
 	type component M2M {
 		port OneM2MPort mcaPort;
 		//port OneM2MPort mccPort;
+		port AdapterControlPort acPort;
 		//timers
 		timer tc_ac := PX_TAC;
 		timer tc_wait;
@@ -41,6 +49,7 @@ module OneM2M_TestSystem {
 	type component M2MSystem {
 		port OneM2MPort mcaPort;
 		//port OneM2MPort mccPort;
+		port AdapterControlPort acPort;
 	}				
 	
 	/* Primitives */
@@ -49,11 +58,28 @@ module OneM2M_TestSystem {
 		charstring host,
 		charstring xmlNamespace, 
 		charstring protocolBinding optional,
-		charstring serialization optional
+		charstring serialization optional,
+		AttributeList_1 nullFields optional
 	}
 
 	type record M2MResponsePrimitive {
 		ResponsePrimitive responsePrimitive_		
 	}	
+	
+	type record AcRequestPrimitive {
+		charstring event,
+		anytype data
+	}
+	with {
+		encode "adapter";
+	}
+	
+	type record AcResponsePrimitive {
+		charstring event,
+		anytype data
+	}
+	with {
+		encode "adapter";
+	}
 
 }// end of module
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 99d098f9dddb648aafc8fd7709b1fc7f2fd48ff8..896019053a7e92f68955235b833825e1ec9e483a 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 43 2016-04-13 12:16:12Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 69 2016-04-28 07:49:58Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -321,7 +321,724 @@ module OneM2M_Testcases {
 	group CSE {
 		
 		group Data_Management_and_Repository {
+
+			group g_CSE_DMR_BV_001 {
+					
+				testcase TC_CSE_DMR_BV_001_01() runs on M2M system M2MSystem {
+					// Local variables
+                        
+					f_CSE_DMR_BV_001(int3, m_createContainerBase);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_001_02() runs on M2M system M2MSystem {
+					// Local variables
+						
+					f_CSE_DMR_BV_001(int9, m_createGroupBase);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_001_03() runs on M2M system M2MSystem {
+					// Local variables
+	
+					f_CSE_DMR_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_001_04() runs on M2M system M2MSystem {
+					// Local variables
+	
+					f_CSE_DMR_BV_001(int18, m_createScheduleBase);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_001_05() runs on M2M system M2MSystem {
+					// Local variables
+	
+					f_CSE_DMR_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_001_06() runs on M2M system M2MSystem {
+						// Local variables
+	
+					f_CSE_DMR_BV_001(int23, m_createSubscriptionBase);//Subscription
+					}
+				
+				function f_CSE_DMR_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int0;//Nothing
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK) -> value v_response {
+							tc_ac.stop;
+							if(ispresent(v_response.responsePrimitive_.primitiveContent)){
+								setverdict(fail, testcasename() & ": Providing content when RC set to 0");
+							} else {
+								setverdict(pass, testcasename() & ": No content provided with RC set to 0");
+							}
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_001
+    				
+			} // end g_CSE_DMR_BV_001
+			
+			group g_CSE_DMR_BV_002 {
+					
+				testcase TC_CSE_DMR_BV_002_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc1;
+					                        
+					f_CSE_DMR_BV_002(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_002_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc1;
+					
+					f_CSE_DMR_BV_002(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_002_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc1;
+						
+					f_CSE_DMR_BV_002(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_002_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc1;
+						
+					f_CSE_DMR_BV_002(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_002_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_002(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_002_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc1;
+
+					f_CSE_DMR_BV_002(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int1;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_002
+    				
+			} // end g_CSE_DMR_BV_002
 			
+			group g_CSE_DMR_BV_003 {
+					
+				testcase TC_CSE_DMR_BV_003_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc2;
+					                        
+					f_CSE_DMR_BV_003(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_003_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc2;
+					
+					f_CSE_DMR_BV_003(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_003_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc2;
+						
+					f_CSE_DMR_BV_003(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_003_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc2;
+						
+					f_CSE_DMR_BV_003(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_003_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_003(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_003_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc2;
+
+					f_CSE_DMR_BV_003(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int2;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_003
+    				
+			} // end g_CSE_DMR_BV_003
+			
+			group g_CSE_DMR_BV_004 {
+					
+				testcase TC_CSE_DMR_BV_004_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc3;
+					                        
+					f_CSE_DMR_BV_004(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_004_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc3;
+					
+					f_CSE_DMR_BV_004(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_004_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc3;
+						
+					f_CSE_DMR_BV_004(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_004_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc3;
+						
+					f_CSE_DMR_BV_004(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_004_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_004(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_004_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc3;
+
+					f_CSE_DMR_BV_004(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int1;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_004
+    				
+			} // end g_CSE_DMR_BV_004
+			
+			group g_CSE_DMR_BV_005 {
+					
+				testcase TC_CSE_DMR_BV_005_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc4;
+					                        
+					f_CSE_DMR_BV_005(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_005_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc4;
+					
+					f_CSE_DMR_BV_005(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_005_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc4;
+						
+					f_CSE_DMR_BV_005(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_005_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc4;
+						
+					f_CSE_DMR_BV_005(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_005_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_005(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_005_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc4;
+
+					f_CSE_DMR_BV_005(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int1;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_005
+    				
+			} // end g_CSE_DMR_BV_005
+			
+			group g_CSE_DMR_BV_006 {
+					
+				testcase TC_CSE_DMR_BV_006_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc5;
+					                        
+					f_CSE_DMR_BV_006(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_006_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc5;
+					
+					f_CSE_DMR_BV_006(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_006_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc5;
+						
+					f_CSE_DMR_BV_006(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_006_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc5;
+						
+					f_CSE_DMR_BV_006(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_006_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_006(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_006_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc5;
+
+					f_CSE_DMR_BV_006(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int1;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_006
+    				
+			} // end g_CSE_DMR_BV_006
+			
+			group g_CSE_DMR_BV_007 {
+					
+				testcase TC_CSE_DMR_BV_007_01() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container := mw_contentContainer_rc6;
+					                        
+					f_CSE_DMR_BV_007(int3, m_createContainerBase, v_contentResponse);//Container
+				}
+
+				testcase TC_CSE_DMR_BV_007_02() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Group := mw_contentGroup_rc6;
+					
+					f_CSE_DMR_BV_007(int9, m_createGroupBase, v_contentResponse);//Group
+				}
+					
+				testcase TC_CSE_DMR_BV_007_03() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].AccessControlPolicy := mw_contentAcp_rc6;
+						
+					f_CSE_DMR_BV_007(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy
+				}
+				
+				testcase TC_CSE_DMR_BV_007_04() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Schedule := mw_contentSchedule_rc6;
+						
+					f_CSE_DMR_BV_007(int18, m_createScheduleBase, v_contentResponse);//Schedule
+				}
+					
+				testcase TC_CSE_DMR_BV_007_05() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].PollingChannel := mw_contentPollingChannelBase;//FIXME
+						
+					f_CSE_DMR_BV_007(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel
+				}
+					
+				testcase TC_CSE_DMR_BV_007_06() runs on M2M system M2MSystem {
+					// Local variables
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Subscription := mw_contentSubscription_rc6;
+
+					f_CSE_DMR_BV_007(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
+				}
+				
+				function f_CSE_DMR_BV_007(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on M2M {
+    				
+					// Local variables
+					var M2MResponsePrimitive v_response;
+					var RequestPrimitive v_request;
+					var XSD.String v_aeName := "ae_test";
+					var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+					// Test control
+    				
+					// Test component configuration
+					f_cf01Up();
+    				
+					// Test adapter configuration
+    				
+					// Preamble
+					f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+					f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+					// Test Body
+					v_request := m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName);
+					v_request.resultContent := int1;//Attributes
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": No child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseOK()) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Child resources provided with RC set to 1");
+						}
+						[] mcaPort.receive(mw_responseKO) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}	
+    								
+					// Postamble
+					f_postamble_deleteResources(v_aeName);
+    				
+				}//end f_CSE_DMR_BV_007
+    				
+			} // end g_CSE_DMR_BV_007
+						
 			group Create {
 				
 				group g_CSE_DMR_CRE_BV_001 {
@@ -329,65 +1046,108 @@ module OneM2M_Testcases {
 					testcase TC_CSE_DMR_CRE_BV_001_01() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].Container_create.resourceName := omit;
                         
-                        f_CSE_DMR_CRE_BV_001(int3, m_createContainerBase);//Container
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, m_createContainerBase);//Container
+						
+						log(v_responsePrimitive);
+                        
+                        if(getverdict == pass){
+                            if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container.resourceName)){
+                            	setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+                            }
+                        }
 					}
 
 					testcase TC_CSE_DMR_CRE_BV_001_02() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].Group_create.resourceName := omit;
 						
-						f_CSE_DMR_CRE_BV_001(int9, m_createGroupBase);//Group
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, m_createGroupBase);//Group
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_03() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].ACP_create.resourceName := omit;
 	
-						f_CSE_DMR_CRE_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 				
 					testcase TC_CSE_DMR_CRE_BV_001_04() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].Schedule_create.resourceName := omit;
 	
-						f_CSE_DMR_CRE_BV_001(int18, m_createScheduleBase);//Schedule
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, m_createScheduleBase);//Schedule
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_05() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.resourceName := omit;
 	
-						f_CSE_DMR_CRE_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_06() runs on M2M system M2MSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
 						
 						v_createRequest.primitiveContent.any_1[0].Subscription_create.resourceName := omit;
 
-						f_CSE_DMR_CRE_BV_001(int23, m_createSubscriptionBase);//Subscription
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, m_createSubscriptionBase);//Subscription
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
-    				function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+    				function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M return ResponsePrimitive {
     				
     					// Local variables
     					var M2MResponsePrimitive v_response;
     					var RequestPrimitive v_request;
-    					var XSD.ID v_resourceId_content;
     					var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
     										   
     					// Test control
     				
@@ -409,9 +1169,8 @@ module OneM2M_Testcases {
     						[] mcaPort.receive(mw_responseOK) -> value v_response {
     							tc_ac.stop;
     							setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly");
-    							//TODO: Check that name attribute is provided
     						}
-    						[] mcaPort.receive(mw_responseKO) {
+    						[] mcaPort.receive(mw_responseKO) -> value v_response {
     							tc_ac.stop;
     							setverdict(fail, testcasename() & ": Error while creating resource type " & int2str(enum2int(p_resourceType)));
     						}
@@ -422,6 +1181,8 @@ module OneM2M_Testcases {
     								
     					// Postamble
     					f_postamble_deleteResources(v_aeName);
+    					
+    					return v_response.responsePrimitive_;
     					    				
     				}//end f_CSE_DMR_CRE_BV_001
     				
@@ -432,47 +1193,88 @@ module OneM2M_Testcases {
 					
 					testcase TC_CSE_DMR_CRE_BV_002_01() runs on M2M system M2MSystem {
 						// Local variables
+                        var ResponsePrimitive v_responsePrimitive;
                         
-						f_CSE_DMR_CRE_BV_002(int3, m_createContainerBase);//container
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int3, m_createContainerBase);//container
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 
 					testcase TC_CSE_DMR_CRE_BV_002_02() runs on M2M system M2MSystem {
 						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
 						
-						f_CSE_DMR_CRE_BV_002(int9, m_createGroupBase);//group
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int9, m_createGroupBase);//group
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_002_03() runs on M2M system M2MSystem {
 						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
                         
-						f_CSE_DMR_CRE_BV_002(int1, m_createAcpBase );//accessControlPolicy
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int1, m_createAcpBase );//accessControlPolicy
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 
 					testcase TC_CSE_DMR_CRE_BV_002_04() runs on M2M system M2MSystem {
 						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
 						
-						f_CSE_DMR_CRE_BV_002(int18, m_createScheduleBase);//Schedule
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int18, m_createScheduleBase);//Schedule
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					testcase TC_CSE_DMR_CRE_BV_002_05() runs on M2M system M2MSystem {
 						// Local variables
-                        
-						f_CSE_DMR_CRE_BV_002(int15, m_createPollingChannelBase);//Pollingchannel
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int15, m_createPollingChannelBase);//Pollingchannel
+
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_002_06() runs on M2M system M2MSystem {
 						// Local variables
-                        
-						f_CSE_DMR_CRE_BV_002(int23, m_createSubscriptionBase);//Subscription
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int23, m_createSubscriptionBase);//Subscription
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
 					}
 					
-					function f_CSE_DMR_CRE_BV_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {//system M2MSystem { MRO system keyword not supported on functions in Titan
+					function f_CSE_DMR_CRE_BV_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M return ResponsePrimitive{//system M2MSystem { MRO system keyword not supported on functions in Titan
 				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_parentResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.String v_parentResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
 										   
 						// Test control
 				
@@ -494,7 +1296,7 @@ module OneM2M_Testcases {
 								tc_ac.stop;
 								setverdict(pass, testcasename() & ": Container created successfuly");
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
 								setverdict(fail, testcasename() & ": Error while creating container");
 							}
@@ -505,6 +1307,8 @@ module OneM2M_Testcases {
 								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
 				
 					}//end f_CSE_DMR_CRE_BV_002
 					
@@ -554,9 +1358,8 @@ module OneM2M_Testcases {
     					// Local variables
     					var M2MResponsePrimitive v_response;
     					var RequestPrimitive v_request;
-    					var XSD.ID v_resourceId_content;
     					var XSD.String v_aeName := "ae_test";
-    					var XSD.String v_parentResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName;
+    					var XSD.String v_parentResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
     										   
     					// Test control
     				
@@ -567,21 +1370,26 @@ module OneM2M_Testcases {
     				
     					// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-    					f_createResource(p_resourceType, v_parentResourceAddress, p_requestPrimitive); 				
+    					v_request := f_createResource(p_resourceType, v_parentResourceAddress, p_requestPrimitive); 				
     									
     					// Test Body
-    					p_requestPrimitive.requestIdentifier := "Existing resource";
-    					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+						v_request.requestIdentifier := "Existing resource";
+    					
+    					mcaPort.send(m_request(v_request));
     					tc_ac.start;
     					alt {
     						[] mcaPort.receive(mw_response(int4105)) -> value v_response {
     							tc_ac.stop;
     							setverdict(pass, testcasename() & ": Resource already exists");
     						}
-    						[] mcaPort.receive(mw_responseKO) {
+    						[] mcaPort.receive(mw_responseKO) -> value v_response {
     							tc_ac.stop;
     							setverdict(fail, testcasename() & ": Error while creating an already existing resource");
     						}
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Creating a resource that already exists");
+							}
     						[] tc_ac.timeout {
     							setverdict(inconc, testcasename() & ": No answer while creating resource");
     						}
@@ -621,125 +1429,391 @@ module OneM2M_Testcases {
 					}
 					testcase TC_CSE_DMR_CRE_BV_004_05() runs on M2M system M2MSystem {
 						// Local variables
-                        
-						f_CSE_DMR_CRE_BV_004(int15, m_createPollingChannelBase);//Pollingchannel
+                        
+						f_CSE_DMR_CRE_BV_004(int15, m_createPollingChannelBase);//Pollingchannel
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_004_06() runs on M2M system M2MSystem {
+						// Local variables
+                        
+						f_CSE_DMR_CRE_BV_004(int23, m_createSubscriptionBase);//Subscription
+					}
+					
+				
+					function f_CSE_DMR_CRE_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {//system M2MSystem { MRO system keyword not supported on functions in Titan
+    				
+						// Local variables
+						var M2MResponsePrimitive v_response;
+						var RequestPrimitive v_request;
+						var XSD.String v_aeName := "ae_test";
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+						// Test control
+    				
+						// Test component configuration
+						f_cf01Up(); 
+    				
+						// Test adapter configuration
+    				
+						// Preamble
+						if (p_resourceType != int23) {
+							f_preamble_registerAe(v_aeName, int62);//c_RUDNDi);
+						} else {
+							f_preamble_registerAe(v_aeName, int60);//c_UDNDi);
+						}	 				
+    									
+						// Test Body
+						if(p_resourceType == int15) {
+							v_request := valueof(m_createPollingChannel(v_aeResourceAddress, PX_AE_ID_STEM, omit));
+						} else {
+							v_request := f_getCreateRequestPrimitive(p_resourceType,v_aeResourceAddress, omit, p_requestPrimitive);
+						}
+						
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(int4103)) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Access denied to create a resource");
+							}
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while creating a resource without privileges");
+							}
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Resource created without creation privileges");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while creating resource");
+							}
+						}	
+    								
+						// Postamble
+						f_postamble_deleteResources(v_aeName);
+    				
+					}//end f_CSE_DMR_CRE_BV_004
+    				
+				}// end group g_CSE_DMR_CRE_BV_004
+				
+			
+			}//end group Create
+			
+			group Retrieve {
+				
+				group g_CSE_DMR_RET_BV_001 {
+					
+					testcase TC_CSE_DMR_RET_BV_001_01() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+                        
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int3, m_createContainerBase);//Container
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+
+					testcase TC_CSE_DMR_RET_BV_001_02() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+                        
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int9, m_createGroupBase);//Group
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_001_03() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+							
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+				
+					testcase TC_CSE_DMR_RET_BV_001_04() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int18, m_createScheduleBase);//Schedule
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_001_05() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_001_06() runs on M2M system M2MSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_responsePrimitive := f_CSE_DMR_RET_BV_001(int23, m_createSubscriptionBase);//Subscription
+						
+						if( getverdict == pass) {
+							if(not ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription)) {
+								setverdict(fail, testcasename(), ": Error, resource not provided in the response");
+							}
+						}
+					}
+				
+					function f_CSE_DMR_RET_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M return ResponsePrimitive {
+    				
+						// Local variables
+						var M2MResponsePrimitive v_response;
+						var RequestPrimitive v_request;
+						var XSD.String v_aeName := "ae_test";
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+						// Test control
+    				
+						// Test component configuration
+						f_cf01Up();
+    				
+						// Test adapter configuration
+    				
+						// Preamble
+						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+    									
+						// Test Body
+						mcaPort.send(m_request(m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName)));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Response OK for retrieving");
+							}
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							}
+						}	
+    								
+						// Postamble
+						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
+    				
+					}//end f_CSE_DMR_RET_BV_001
+    				
+				} // end g_CSE_DMR_RET_BV_001
+				
+				group g_CSE_DMR_RET_BO_002 {
+					
+					testcase TC_CSE_DMR_RET_BO_002() runs on M2M system M2MSystem{
+    				
+						// Local variables
+						var M2MResponsePrimitive v_response;
+						var RequestPrimitive v_request;
+						var XSD.String v_aeName := "ae_test";
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+    										   
+						// Test control
+    				
+						// Test component configuration
+						f_cf01Up();
+    				
+						// Test adapter configuration
+    				
+						// Preamble
+						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi); 				
+    									
+						// Test Body
+						mcaPort.send(m_request(m_retrieveResource(int3, v_aeResourceAddress & "/" & c_defaultResourceName)));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(int4004)) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Resource not found");
+							}
+							[] mcaPort.receive(mw_responseKO) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] mcaPort.receive(mw_responseOK) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							}
+						}	
+    								
+						// Postamble
+						f_postamble_deleteResources(v_aeName);
+    				
+					}//end f_CSE_DMR_RET_BO_002
+    				
+				} // end g_CSE_DMR_RET_BO_002
+				
+				group g_CSE_DMR_RET_BO_003 {
+					
+					testcase TC_CSE_DMR_RET_BO_003_01() runs on M2M system M2MSystem {
+						// Local variables
+                        
+						f_CSE_DMR_RET_BO_003(int3, m_createContainerBase);//Container
+					}
+
+					testcase TC_CSE_DMR_RET_BO_003_02() runs on M2M system M2MSystem {
+						// Local variables
+						
+						f_CSE_DMR_RET_BO_003(int9, m_createGroupBase);//Group
+					}
+					
+					testcase TC_CSE_DMR_RET_BO_003_03() runs on M2M system M2MSystem {
+						// Local variables
+						var template RequestPrimitive v_requestPrimitive := m_createAcpBase;
+						
+						v_requestPrimitive.primitiveContent.any_1[0].ACP_create.selfPrivileges.accessControlRule_list[0].accessControlOperations := int61;
+						
+						f_CSE_DMR_RET_BO_003(int1, v_requestPrimitive);//AccessControlPolicy
+					}
+				
+					testcase TC_CSE_DMR_RET_BO_003_04() runs on M2M system M2MSystem {
+						// Local variables
+	
+						f_CSE_DMR_RET_BO_003(int18, m_createScheduleBase);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_CRE_BV_004_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_003_05() runs on M2M system M2MSystem {
 						// Local variables
-                        
-						f_CSE_DMR_CRE_BV_004(int23, m_createSubscriptionBase);//Subscription
+	
+						f_CSE_DMR_RET_BO_003(int15, m_createPollingChannelBase);//PollingChannel
 					}
 					
+					testcase TC_CSE_DMR_RET_BO_003_06() runs on M2M system M2MSystem {
+							// Local variables
+	
+						f_CSE_DMR_RET_BO_003(int23, m_createSubscriptionBase);//Subscription
+						}
 				
-					function f_CSE_DMR_CRE_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {//system M2MSystem { MRO system keyword not supported on functions in Titan
+					function f_CSE_DMR_RET_BO_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.String v_resourceName := "myResource";
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.ID v_acpId;
     										   
 						// Test control
     				
 						// Test component configuration
-						f_cf01Up(); 
+						f_cf01Up();
     				
 						// Test adapter configuration
     				
 						// Preamble
-						if (p_resourceType != int23) {
-							f_preamble_registerAe(v_aeName, int62);//c_RUDNDi);
-						} else {
-							f_preamble_registerAe(v_aeName, int60);//c_UDNDi);
-						}	 				
-    									
+						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi;
+										
+ 						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 	
+ 								
+						f_updateAcpAuxResource(PX_URI_CSE & PX_CSE_NAME & "/" & c_acpAuxName, int61); //c_CUDNDi
+								
 						// Test Body
-						if(p_resourceType == int15) {
-							v_request := valueof(m_createPollingChannel(v_aeResourceAddress, PX_AE_ID_STEM, omit));
-						} else {
-							v_request := f_getCreateRequestPrimitive(p_resourceType,v_aeResourceAddress, omit, p_requestPrimitive);
-						}
-						
-						mcaPort.send(m_request(v_request));
+						mcaPort.send(m_request(m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName)));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_response(int4103)) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Access denied to create a resource");
+								setverdict(pass, testcasename() & ": Access denied to retrieve attributes from resource type " & int2str(enum2int(p_resourceType)));
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while creating a resource without privileges");
+								setverdict(fail, testcasename() & ": Error while retrieving attributes from resource without having privileges");
 							}
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Resource created without creation privileges");
+								setverdict(fail, testcasename() & ": Retrieving attributes from resource without having privileges");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while creating resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_CRE_BV_004
+					}//end f_CSE_DMR_RET_BO_003
     				
-				}// end group g_CSE_DMR_CRE_BV_004
-				
-			
-			}//end group Create
-			
-			group Retrieve {
+				} // end g_CSE_DMR_RET_BO_003
 				
-				group g_CSE_DMR_RET_BV_001 {
+				group g_CSE_DMR_RET_BV_004 {
 					
-					testcase TC_CSE_DMR_RET_BV_001_01() runs on M2M system M2MSystem {
+					
+					testcase TC_CSE_DMR_RET_BV_004_01() runs on M2M system M2MSystem {
 						// Local variables
                         
-						f_CSE_DMR_RET_BV_001(int3, m_createContainerBase);//Container
+						f_CSE_DMR_RET_BV_004(int3, m_createContainerBase);//Container
 					}
 
-					testcase TC_CSE_DMR_RET_BV_001_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_004_02() runs on M2M system M2MSystem {
 						// Local variables
 						
-						f_CSE_DMR_RET_BV_001(int9, m_createGroupBase);//Group
+						f_CSE_DMR_RET_BV_004(int9, m_createGroupBase);//Group
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_001_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_004_03() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+						f_CSE_DMR_RET_BV_004(int1, m_createAcpBase);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_RET_BV_001_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_004_04() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_001(int18, m_createScheduleBase);//Schedule
+						f_CSE_DMR_RET_BV_004(int18, m_createScheduleBase);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_001_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_004_05() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+						f_CSE_DMR_RET_BV_004(int15, m_createPollingChannelBase);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_001_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_004_06() runs on M2M system M2MSystem {
 							// Local variables
 	
-						f_CSE_DMR_RET_BV_001(int23, m_createSubscriptionBase);//Subscription
-						}
+						f_CSE_DMR_RET_BV_004(int23, m_createSubscriptionBase);//Subscription
+					}
 				
-					function f_CSE_DMR_RET_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+					function f_CSE_DMR_RET_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved
     										   
 						// Test control
     				
@@ -753,39 +1827,86 @@ module OneM2M_Testcases {
 						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName)));
+						mcaPort.send(m_request(m_retrieveResourceAttributeToOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName & v_attribute)));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Resource retrieved successfuly");
+								//FIXME To double check which type response content shall contain
+								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList)){
+									if(isbound(f_getAttribute(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList, "parentID"))) {
+										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
+									} else {
+										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
+									}
+								} else {
+									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
+								}
 							}
 							[] mcaPort.receive(mw_responseKO) {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while retrieving resource attribute");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_RET_BV_001
+					}//end f_CSE_DMR_RET_BV_004
     				
-				} // end g_CSE_DMR_RET_BV_001
+				} // end g_CSE_DMR_RET_BV_004
 				
-				group g_CSE_DMR_RET_BO_002 {
+				group g_CSE_DMR_RET_BV_005 {
 					
-					testcase TC_CSE_DMR_RET_BO_002() runs on M2M system M2MSystem{
+					
+					testcase TC_CSE_DMR_RET_BV_005_01() runs on M2M system M2MSystem {
+						// Local variables
+                        
+						f_CSE_DMR_RET_BV_005(int3, m_createContainerBase);//Container
+					}
+
+					testcase TC_CSE_DMR_RET_BV_005_02() runs on M2M system M2MSystem {
+						// Local variables
+						
+						f_CSE_DMR_RET_BV_005(int9, m_createGroupBase);//Group
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_005_03() runs on M2M system M2MSystem {
+						// Local variables
+	
+						f_CSE_DMR_RET_BV_005(int1, m_createAcpBase);//AccessControlPolicy
+					}
+				
+					testcase TC_CSE_DMR_RET_BV_005_04() runs on M2M system M2MSystem {
+						// Local variables
+	
+						f_CSE_DMR_RET_BV_005(int18, m_createScheduleBase);//Schedule
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_005_05() runs on M2M system M2MSystem {
+						// Local variables
+	
+						f_CSE_DMR_RET_BV_005(int15, m_createPollingChannelBase);//PollingChannel
+					}
+					
+					testcase TC_CSE_DMR_RET_BV_005_06() runs on M2M system M2MSystem {
+							// Local variables
+	
+						f_CSE_DMR_RET_BV_005(int23, m_createSubscriptionBase);//Subscription
+						}
+
+					
+					function f_CSE_DMR_RET_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
+						var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved
     										   
 						// Test control
     				
@@ -795,85 +1916,89 @@ module OneM2M_Testcases {
 						// Test adapter configuration
     				
 						// Preamble
-						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi); 				
+						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResource(int3, v_aeResourceAddress & "/" & c_defaultResourceName)));
+						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
+																						{"parentID"})));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(int4004)) -> value v_response {
-								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Resource not found");
-							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								//FIXME To double check which type response content shall contain
+								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList)){
+									if(isbound(f_getAttribute(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList, "parentID"))) {
+										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
+									} else {
+										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
+									}
+								} else {
+									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
+								}
 							}
-							[] mcaPort.receive(mw_responseOK) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while retrieving resource attribute");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_RET_BO_002
+					}//end f_CSE_DMR_RET_BV_005
     				
-				} // end g_CSE_DMR_RET_BO_002
+				} // end g_CSE_DMR_RET_BV_005
 				
-				group g_CSE_DMR_RET_BO_003 {
+				group g_CSE_DMR_RET_BV_006 {
 					
-					testcase TC_CSE_DMR_RET_BO_003_01() runs on M2M system M2MSystem {
+					
+					testcase TC_CSE_DMR_RET_BV_006_01() runs on M2M system M2MSystem {
 						// Local variables
                         
-						f_CSE_DMR_RET_BO_003(int3, m_createContainerBase);//Container
+						f_CSE_DMR_RET_BV_006(int3, m_createContainerBase);//Container
 					}
 
-					testcase TC_CSE_DMR_RET_BO_003_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_006_02() runs on M2M system M2MSystem {
 						// Local variables
 						
-						f_CSE_DMR_RET_BO_003(int9, m_createGroupBase);//Group
+						f_CSE_DMR_RET_BV_006(int9, m_createGroupBase);//Group
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_003_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_006_03() runs on M2M system M2MSystem {
 						// Local variables
-						var template RequestPrimitive v_requestPrimitive := m_createAcpBase;
-						
-						v_requestPrimitive.primitiveContent.any_1[0].ACP_create.selfPrivileges.accessControlRule_list[0].accessControlOperations := int61;
-						
-						f_CSE_DMR_RET_BO_003(int1, v_requestPrimitive);//AccessControlPolicy
+	
+						f_CSE_DMR_RET_BV_006(int1, m_createAcpBase);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_RET_BO_003_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_006_04() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BO_003(int18, m_createScheduleBase);//Schedule
+						f_CSE_DMR_RET_BV_006(int18, m_createScheduleBase);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_003_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_006_05() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BO_003(int15, m_createPollingChannelBase);//PollingChannel
+						f_CSE_DMR_RET_BV_006(int15, m_createPollingChannelBase);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_003_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BV_006_06() runs on M2M system M2MSystem {
 							// Local variables
 	
-						f_CSE_DMR_RET_BO_003(int23, m_createSubscriptionBase);//Subscription
+						f_CSE_DMR_RET_BV_006(int23, m_createSubscriptionBase);//Subscription
 						}
-				
-					function f_CSE_DMR_RET_BO_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+
+					
+					function f_CSE_DMR_RET_BV_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_resourceName := "myResource";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
     										   
 						// Test control
@@ -884,95 +2009,92 @@ module OneM2M_Testcases {
 						// Test adapter configuration
     				
 						// Preamble
-						f_preamble_registerAe(v_aeName, int61);//c_CUDNDi);
-						
+						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
 						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResource(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName)));
+						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
+																						{"parentID", "creationTime"})));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(int4103)) -> value v_response {
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Access denied to retrieve attributes from resource type " & int2str(enum2int(p_resourceType)));
+								//FIXME To double check which type response content shall contain
+								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList)){
+									if((isbound(f_getAttribute(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList, "parentID"))) and 
+									  (isbound(f_getAttribute(v_response.responsePrimitive_.primitiveContent.any_1[0].MyAttributeList, "creationTime")))) {
+										setverdict(pass, testcasename() & ": Requested attributes retrieved successfuly");
+									} else {
+										setverdict(fail, testcasename() & ": Requested attributes not retrieved");
+									}
+								} else {
+									setverdict(fail, testcasename() & ": Requested attributes not retrieved");
+								}
 							}
 							[] mcaPort.receive(mw_responseKO) {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving attributes from resource without having privileges");
-							}
-							[] mcaPort.receive(mw_responseOK) {
-								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Retrieving attributes from resource without having privileges");
+								setverdict(fail, testcasename() & ": Error while retrieving resource attributes");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_RET_BO_003
+					}//end f_CSE_DMR_RET_BV_006
     				
-				} // end g_CSE_DMR_RET_BO_003
+				} // end g_CSE_DMR_RET_BV_006
 				
-				group g_CSE_DMR_RET_BV_004 {
+				group g_CSE_DMR_RET_BO_007 {
 					
 					
-					testcase TC_CSE_DMR_RET_BV_004_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_01() runs on M2M system M2MSystem {
 						// Local variables
                         
-						f_CSE_DMR_RET_BV_004(int3, m_createContainerBase);//Container
+						f_CSE_DMR_RET_BO_007(int3, m_createContainerBase);//Container
 					}
 
-					testcase TC_CSE_DMR_RET_BV_004_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_02() runs on M2M system M2MSystem {
 						// Local variables
 						
-						f_CSE_DMR_RET_BV_004(int9, m_createGroupBase);//Group
+						f_CSE_DMR_RET_BO_007(int9, m_createGroupBase);//Group
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_004_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_03() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_004(int1, m_createAcpBase);//AccessControlPolicy
+						f_CSE_DMR_RET_BO_007(int1, m_createAcpBase);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_RET_BV_004_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_04() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_004(int18, m_createScheduleBase);//Schedule
+						f_CSE_DMR_RET_BO_007(int18, m_createScheduleBase);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_004_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_05() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_004(int15, m_createPollingChannelBase);//PollingChannel
+						f_CSE_DMR_RET_BO_007(int15, m_createPollingChannelBase);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_004_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_007_06() runs on M2M system M2MSystem {
 							// Local variables
 	
-						f_CSE_DMR_RET_BV_004(int23, m_createSubscriptionBase);//Subscription
-						}
-
-					/*testcase TC_CSE_DMR_RET_BV_004_02() runs on M2M system M2MSystem {
-						// Local variables
-						var XSD.String v_aeName := "ae_test";
-						
-						//TODO
-						//f_CSE_DMR_RET_BV_004(int9, m_createGroup_noName("/" & PX_CSE_NAME & "/" & v_aeName));
-					}*/
-				
-					function f_CSE_DMR_RET_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+						f_CSE_DMR_RET_BO_007(int23, m_createSubscriptionBase);//Subscription
+						}
+
+					
+					function f_CSE_DMR_RET_BO_007(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
-						var XSD.String v_attribute := "#pi";
-    										   
+											   
 						// Test control
     				
 						// Test component configuration
@@ -982,86 +2104,84 @@ module OneM2M_Testcases {
     				
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+						f_createResource(p_resourceType, v_aeResourceAddress,  p_requestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResourceAttributeToOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName & v_attribute)));
+						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
+																						{"labels"})));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4004)) -> value v_response {
 								tc_ac.stop;
-								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList)){
-									setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
-								} else {
-									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-								}
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource attribute");
+							}
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource attribute");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_RET_BV_004
+					}//end f_CSE_DMR_RET_BO_007
     				
-				} // end g_CSE_DMR_RET_BV_004
+				} // end g_CSE_DMR_RET_BO_007
 				
-				group g_CSE_DMR_RET_BV_005 {
+				group g_CSE_DMR_RET_BO_008 {
 					
 					
-					testcase TC_CSE_DMR_RET_BV_005_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_01() runs on M2M system M2MSystem {
 						// Local variables
                         
-						f_CSE_DMR_RET_BV_005(int3, m_createContainerBase);//Container
+						f_CSE_DMR_RET_BO_008(int3, m_createContainerBase);//Container
 					}
 
-					testcase TC_CSE_DMR_RET_BV_005_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_02() runs on M2M system M2MSystem {
 						// Local variables
 						
-						f_CSE_DMR_RET_BV_005(int9, m_createGroupBase);//Group
+						f_CSE_DMR_RET_BO_008(int9, m_createGroupBase);//Group
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_005_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_03() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_005(int1, m_createAcpBase);//AccessControlPolicy
+						f_CSE_DMR_RET_BO_008(int1, m_createAcpBase);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_RET_BV_005_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_04() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_005(int18, m_createScheduleBase);//Schedule
+						f_CSE_DMR_RET_BO_008(int18, m_createScheduleBase);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_005_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_05() runs on M2M system M2MSystem {
 						// Local variables
 	
-						f_CSE_DMR_RET_BV_005(int15, m_createPollingChannelBase);//PollingChannel
+						f_CSE_DMR_RET_BO_008(int15, m_createPollingChannelBase);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_005_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_RET_BO_008_06() runs on M2M system M2MSystem {
 							// Local variables
 	
-						f_CSE_DMR_RET_BV_005(int23, m_createSubscriptionBase);//Subscription
+						f_CSE_DMR_RET_BO_008(int23, m_createSubscriptionBase);//Subscription
 						}
 
 					
-					function f_CSE_DMR_RET_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+					function f_CSE_DMR_RET_BO_008(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
-						var XSD.String v_attribute := "#pi";
-    										   
+											   
 						// Test control
     				
 						// Test component configuration
@@ -1075,86 +2195,200 @@ module OneM2M_Testcases {
     									
 						// Test Body
 						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
-																						{"parentID"})));
+																						{"labels", "announceTo"})));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4004)) -> value v_response {
 								tc_ac.stop;
-								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList)){
-									if(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList[0] == "parentID"){
-										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
-									} else {
-										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-									}
-								} else {
-									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-								}
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource attributes");
+							}
+							[] mcaPort.receive(mw_responseOK) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource attributes");
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes");
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     				
-					}//end f_CSE_DMR_RET_BV_005
+					}//end f_CSE_DMR_RET_BO_008
     				
-				} // end g_CSE_DMR_RET_BV_005
-				
-				group g_CSE_DMR_RET_BV_006 {
-					
+				} // end f_CSE_DMR_RET_BO_008
+			
+			}//end group Retrieve
+			
+			group Update {
+				group g_CSE_DMR_UPD_BV_001 {
 					
-					testcase TC_CSE_DMR_RET_BV_006_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_001_01() runs on M2M system M2MSystem {
 						// Local variables
-                        
-						f_CSE_DMR_RET_BV_006(int3, m_createContainerBase);//Container
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2:= {"VALUE_2"};
+						var ResponsePrimitive v_responsePrimitive;
+						
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						
+						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int3, v_createRequest, v_updateRequest);//Container
+						
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Container.labels != v_labels_2){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 
-					testcase TC_CSE_DMR_RET_BV_006_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_001_02() runs on M2M system M2MSystem {
 						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int9, v_createRequest, v_updateRequest);//Group
 						
-						f_CSE_DMR_RET_BV_006(int9, m_createGroupBase);//Group
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group)) {
+									if(v_responsePrimitive.primitiveContent.any_1[0].Group.labels != v_labels_2){
+										setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+									}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_006_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_001_03() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BV_006(int1, m_createAcpBase);//AccessControlPolicy
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int1, v_createRequest, v_updateRequest);//ACP
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) {
+									if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.labels != v_labels_2){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
+						
 					}
 				
-					testcase TC_CSE_DMR_RET_BV_006_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_001_04() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BV_006(int18, m_createScheduleBase);//Schedule
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int18, v_createRequest, v_updateRequest);//Schedule
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule)) {
+									if(v_responsePrimitive.primitiveContent.any_1[0].Schedule.labels != v_labels_2){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
+					
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_006_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_001_05() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BV_006(int15, m_createPollingChannelBase);//PollingChannel
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
+						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int15, v_createRequest, v_updateRequest);//PollingChannel
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.labels != v_labels_2){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_006_06() runs on M2M system M2MSystem {
-							// Local variables
-	
-						f_CSE_DMR_RET_BV_006(int23, m_createSubscriptionBase);//Subscription
-						}
+					testcase TC_CSE_DMR_UPD_BV_001_06() runs on M2M system M2MSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
 
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int23, v_createRequest, v_updateRequest);//Subscription
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription)) {
+									if(v_responsePrimitive.primitiveContent.any_1[0].Subscription.labels != v_labels_2){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					
-					function f_CSE_DMR_RET_BV_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+					}
+					
+					function f_CSE_DMR_UPD_BV_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M return ResponsePrimitive{
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
-						var XSD.String v_attribute := "#pi";
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1165,90 +2399,178 @@ module OneM2M_Testcases {
     				
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
-																						{"parentID", "creationTime"})));
+						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
+						
+						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList)){
-									if(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList[0] == "parentID"){
-										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
-									} else {
-										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-									}
-								} else {
-									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-								}
+								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
+    					    				
+					}//end f_CSE_DMR_UPD_BV_001
     				
-					}//end f_CSE_DMR_RET_BV_006
-    				
-				} // end g_CSE_DMR_RET_BV_006
+				} // end g_CSE_DMR_UPD_BV_001
 				
-				group g_CSE_DMR_RET_BO_007 {
-					
+				group g_CSE_DMR_UPD_BV_002 {
 					
-					testcase TC_CSE_DMR_RET_BO_007_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_002_01() runs on M2M system M2MSystem {
 						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+                        var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_1;
                         
-						f_CSE_DMR_RET_BO_007(int3, m_createContainerBase);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int3, m_createContainerBase, v_updateRequest);//Container
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Container.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 
-					testcase TC_CSE_DMR_RET_BO_007_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_002_02() runs on M2M system M2MSystem {
 						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_1;
 						
-						f_CSE_DMR_RET_BO_007(int9, m_createGroupBase);//Group
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int9, m_createGroupBase, v_updateRequest);//Group
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Group.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_007_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_002_03() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_007(int1, m_createAcpBase);//AccessControlPolicy
+						var Labels v_labels_1 := {"VALUE_1"};
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_1;
+							
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int1, m_createAcpBase,v_updateRequest);//AccessControlPolicy
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 				
-					testcase TC_CSE_DMR_RET_BO_007_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_002_04() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_007(int18, m_createScheduleBase);//Schedule
+						var Labels v_labels_1 := {"VALUE_1"};
+						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_1;
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int18, m_createScheduleBase,v_updateRequest);//Schedule
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Schedule.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_007_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_002_05() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_007(int15, m_createPollingChannelBase);//PollingChannel
+						var Labels v_labels_1 := {"VALUE_1"};
+						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_1;
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int15, m_createPollingChannelBase,v_updateRequest);//PollingChannel
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_007_06() runs on M2M system M2MSystem {
-							// Local variables
-	
-						f_CSE_DMR_RET_BO_007(int23, m_createSubscriptionBase);//Subscription
-						}
+					testcase TC_CSE_DMR_UPD_BV_002_06() runs on M2M system M2MSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
 
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_1;
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int23, m_createSubscriptionBase,v_updateRequest);//Subscription
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription)) {
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Subscription.labels != v_labels_1){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+        							}
+								}
+							}
+						}
+					}
 					
-					function f_CSE_DMR_RET_BO_007(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BV_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M return ResponsePrimitive {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
-						var XSD.String v_attribute := "#lbl";
+    					var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1259,90 +2581,214 @@ module OneM2M_Testcases {
     				
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-						f_createResource(p_resourceType, v_aeResourceAddress,  p_requestPrimitive); 				
+						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
-																						{"labels"})));
+						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
+						
+						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList)){
-									if(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList[0] == "parentID"){
-										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
-									} else {
-										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-									}
-								} else {
-									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-								}
+								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
+    					    				
+					}//end f_CSE_DMR_UPD_BV_002
     				
-					}//end f_CSE_DMR_RET_BO_007
-    				
-				} // end g_CSE_DMR_RET_BO_007
+				} // end g_CSE_DMR_UPD_BV_002
 				
-				group g_CSE_DMR_RET_BO_008 {
-					
+				group g_CSE_DMR_UPD_BV_003 {
 					
-					testcase TC_CSE_DMR_RET_BO_008_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_003_01() runs on M2M system M2MSystem {
 						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+                        var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						
+						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
+						
+						v_nullFields := {"labels"};
                         
-						f_CSE_DMR_RET_BO_008(int3, m_createContainerBase);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int3, v_createRequest, v_updateRequest, v_nullFields);//Container
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 
-					testcase TC_CSE_DMR_RET_BO_008_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_003_02() runs on M2M system M2MSystem {
 						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+
+						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
 						
-						f_CSE_DMR_RET_BO_008(int9, m_createGroupBase);//Group
+						v_nullFields := {"labels"};
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int9, v_createRequest, v_updateRequest, v_nullFields);//Group
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_008_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_003_03() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_008(int1, m_createAcpBase);//AccessControlPolicy
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+
+						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
+						
+						v_nullFields := {"labels"};
+							
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 				
-					testcase TC_CSE_DMR_RET_BO_008_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_003_04() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_008(int18, m_createScheduleBase);//Schedule
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
+
+						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
+						
+						v_nullFields := {"labels"};
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_008_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_003_05() runs on M2M system M2MSystem {
 						// Local variables
-	
-						f_CSE_DMR_RET_BO_008(int15, m_createPollingChannelBase);//PollingChannel
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
+						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
+
+						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
+						
+						v_nullFields := {"labels"};
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_RET_BO_008_06() runs on M2M system M2MSystem {
-							// Local variables
-	
-						f_CSE_DMR_RET_BO_008(int23, m_createSubscriptionBase);//Subscription
-						}
+					testcase TC_CSE_DMR_UPD_BV_003_06() runs on M2M system M2MSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList v_nullFields;
+						var ResponsePrimitive v_responsePrimitive;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 
+						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
+						
+						v_nullFields := {"labels"};
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription
+						
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription)) {
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
+					}
 					
-					function f_CSE_DMR_RET_BO_008(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BV_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on M2M return ResponsePrimitive {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
 						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName;
-						var XSD.String v_attribute := "#pi";
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1353,136 +2799,298 @@ module OneM2M_Testcases {
     				
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-						f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); 				
+						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
     									
 						// Test Body
-						mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(p_resourceType, v_aeResourceAddress & "/" & c_defaultResourceName, 
-																						{"labels", "announceTo"})));
+						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
+						
+						mcaPort.send(m_request(v_request, p_nullFields));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
-								if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList)){
-									if(v_response.responsePrimitive_.primitiveContent.any_1[0].AttributeList[0] == "parentID"){
-										setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly");
-									} else {
-										setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-									}
-								} else {
-									setverdict(fail, testcasename() & ": Requested attribute not retrieved");
-								}
+								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO)  -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while retrieving resource");
+								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 							[] tc_ac.timeout {
-								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
 						}	
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
+    					    				
+					}//end f_CSE_DMR_UPD_BV_003
     				
-					}//end f_CSE_DMR_RET_BO_008
-    				
-				} // end f_CSE_DMR_RET_BO_008
-			
-			}//end group Retrieve
-			
-			group Update {
-				group g_CSE_DMR_UPD_BV_001 {
+				} // end g_CSE_DMR_UPD_BV_003
+				
+				group g_CSE_DMR_UPD_BV_004 {
 					
-					testcase TC_CSE_DMR_UPD_BV_001_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_01() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2:= {"VALUE_2"};
+						var Labels v_labels_2 := {"To be deleted"};
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var AttributeList_1 v_nullFields;
+
+						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;//Attribute 3
+						v_updateRequest.primitiveContent.any_1[0].Container_update.expirationTime := "20001231T012345";//Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].Container_update.maxNrOfInstances := 5;//Attribute 2
+						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;//Attribute 3
 						
-						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
+						v_nullFields := {"labels"};
 						
-                        f_CSE_DMR_UPD_BV_001(int3, v_createRequest, v_updateRequest);//Container
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int3, v_createRequest, v_updateRequest, v_nullFields);//Container
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container)) {
+        							//Check attribute 1
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Container.expirationTime != valueof(v_updateRequest.primitiveContent.any_1[0].Container_update.expirationTime)){
+        								setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly")
+        							}
+        							//Check attribute 2
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Container.maxNrOfInstances != valueof(v_updateRequest.primitiveContent.any_1[0].Container_update.maxNrOfInstances)){
+        								setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+        							}
+        							//Check attribute 3
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 
-					testcase TC_CSE_DMR_UPD_BV_001_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_02() runs on M2M system M2MSystem {
 						// Local variables
+						var XSD.String v_groupName_1 := "VALUE_1";//Attribute 1
+						var XSD.String v_groupName_2 := "VALUE_2";
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AcpType v_acp := {"ACP_ID"};
+						
+						var AttributeList_1 v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-
-						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
-
-						f_CSE_DMR_UPD_BV_001(int9, v_createRequest, v_updateRequest);//Group
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_createRequest.primitiveContent.any_1[0].Group_create.groupName:= v_groupName_1;//Attribute 1
+						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;//Attribute 3
+						v_updateRequest.primitiveContent.any_1[0].Group_update.groupName:= v_groupName_2;//Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].Group_update.accessControlPolicyIDs := v_acp;//Attribute 2 //TODO Check another attribute
+						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;//Attribute 3
+						
+						v_nullFields := {"labels"};
+                        
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int9, v_createRequest, v_updateRequest, v_nullFields);//Group
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group)) {
+        							//Check attribute 1
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Group.groupName != valueof(v_updateRequest.primitiveContent.any_1[0].Group_update.groupName)){
+        								setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly")
+        							}
+        							//Check attribute 2
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Group.accessControlPolicyIDs != valueof(v_updateRequest.primitiveContent.any_1[0].Group_update.accessControlPolicyIDs)){
+        								setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+        							}
+        							//Check attribute 3
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_001_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_03() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var SetOfAcrs v_privileges_1 := {
+							accessControlRule_list := {
+								{
+									accessControlOriginators := {"admin:admin"},
+									accessControlOperations := int63,
+									accessControlContexts_list := omit
+								}
+							}
+						}
+						var SetOfAcrs v_privileges_2 := {
+							accessControlRule_list := {
+								{
+									accessControlOriginators := {"admin:admin"},
+									accessControlOperations := int61,
+									accessControlContexts_list := omit
+								}
+							}
+						}
+						var AttributeList_1 v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
-
-						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
-
-						f_CSE_DMR_UPD_BV_001(int1, v_createRequest, v_updateRequest);//ACP
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_createRequest.primitiveContent.any_1[0].ACP_create.privileges := v_privileges_1;//Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.privileges := v_privileges_2; //Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.announceTo := {PX_URI_CSE};//Attribute 2
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;//Attribute 3
 						
+						v_nullFields := {"labels"};
+      							
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) {
+        							//Check attribute 1
+        							if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.privileges != valueof(v_updateRequest.primitiveContent.any_1[0].ACP_update.privileges)){
+        								setverdict(fail, testcasename() & ": Error: Privileges attribute not updated correctly")
+        							}
+        							//Check attribute 2
+        							if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.announceTo != valueof(v_updateRequest.primitiveContent.any_1[0].ACP_update.announceTo)){
+        								setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly")
+        							}
+        							//Check attribute 3
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 				
-					testcase TC_CSE_DMR_UPD_BV_001_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_04() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AttributeList_1 v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
-
-						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
-
-						f_CSE_DMR_UPD_BV_001(int18, v_createRequest, v_updateRequest);//Schedule
-					
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_createRequest.primitiveContent.any_1[0].Schedule_create.scheduleElement := {{"0,0,0 1 2,1,1,*"}};//Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.scheduleElement := {{"1,1,1 1 2,1,1,*"}}; //Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.announceTo := {PX_URI_CSE};//Attribute 2
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;//Attribute 3
+                						
+						v_nullFields := {"labels"};
+						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule)) {
+        							//Check attribute 1
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Schedule.scheduleElement != valueof(v_updateRequest.primitiveContent.any_1[0].Schedule_update.scheduleElement)){
+        								setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly")
+        							}
+        							//Check attribute 2
+        							if(v_responsePrimitive.primitiveContent.any_1[0].Schedule.announceTo != valueof(v_updateRequest.primitiveContent.any_1[0].Schedule_update.announceTo)){
+        								setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+        							}
+        							//Check attribute 3
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_001_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_05() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
+						var Labels v_labels_2 := {"To be deleted"};
+						var AcpType v_acp := {"ACP_ID"};
+						var AttributeList_1 v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
-
-						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
-
-						f_CSE_DMR_UPD_BV_001(int15, v_createRequest, v_updateRequest);//PollingChannel
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;//Attribute 3
+						//No Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.accessControlPolicyIDs := v_acp;//Attribute 2
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;//Attribute 3
+						
+						v_nullFields := {"labels"};
+      						
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel)) {
+        							//Check attribute 1
+        							
+        							//Check attribute 2
+        							if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.accessControlPolicyIDs != valueof(v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.accessControlPolicyIDs)){
+        								setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+        							}
+        							//Check attribute 3
+        							if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel.labels)){
+        								setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+        							}
+								}
+							}
+						}
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_001_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BV_004_06() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"VALUE_2"};
+						var AcpType v_acp := {"ACP_ID"};
+						var AttributeList_1 v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
-
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
-
-						f_CSE_DMR_UPD_BV_001(int23, v_createRequest, v_updateRequest);//Subscription
-					
+						var ResponsePrimitive v_responsePrimitive;
+						
+						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;//Attribute 1
+						v_createRequest.primitiveContent.any_1[0].Subscription_create.expirationCounter := 5;//Attribute 3
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;//Attribute 1
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.accessControlPolicyIDs := v_acp; //Attribute 2
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.expirationCounter := 1;//Attribute 3
+						
+						v_nullFields := {"expirationCounter"};
+      							
+						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription
+						
+						if(getverdict == pass){
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription)) {
+            						//Check attribute 1
+            						if(v_responsePrimitive.primitiveContent.any_1[0].Subscription.labels != valueof(v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels)){
+            							setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly")
+            						}
+            						//Check attribute 2
+            						if(v_responsePrimitive.primitiveContent.any_1[0].Subscription.accessControlPolicyIDs != valueof(v_updateRequest.primitiveContent.any_1[0].Subscription_update.accessControlPolicyIDs)){
+            							setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+            						}
+            						//Check attribute 3
+            						if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription.expirationCounter)){
+            							setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly")
+            						}
+								}
+							}
+    					}
 					}
 					
-					function f_CSE_DMR_UPD_BV_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on M2M return ResponsePrimitive {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
-						var XSD.String v_targetResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName ;
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1498,15 +3106,14 @@ module OneM2M_Testcases {
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
 						
-						mcaPort.send(m_request(v_request));
+						mcaPort.send(m_request(v_request, p_nullFields));
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_responseOK) -> value v_response {
 								tc_ac.stop;
 								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
-								//TODO: Check that name attribute is provided
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO)  -> value v_response {
 								tc_ac.stop;
 								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
 							}
@@ -1517,82 +3124,95 @@ module OneM2M_Testcases {
     								
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
+						
+						return v_response.responsePrimitive_;
     					    				
-					}//end f_CSE_DMR_UPD_BV_001
+					}//end f_CSE_DMR_UPD_BV_004
     				
-				} // end g_CSE_DMR_UPD_BV_001
+				} // end g_CSE_DMR_UPD_BV_004
 				
-				group g_CSE_DMR_UPD_BV_002 {
+				group g_CSE_DMR_UPD_BO_005{
 					
-					testcase TC_CSE_DMR_UPD_BV_002_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_01() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
-                        var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						var XSD.PositiveInteger v_expirationCounter := 1;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						
+						v_updateRequest.primitiveContent.any_1 := {{Container_update_invalid := m_contentUpdateContainer_invalid}};
 
-						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
-                        
-						f_CSE_DMR_UPD_BV_002(int3, m_createContainerBase, v_updateRequest);//Container
+						v_updateRequest.primitiveContent.any_1[0].Container_update_invalid.expirationCounter := v_expirationCounter;
+						
+						f_CSE_DMR_UPD_BO_005(int3, m_createContainerBase, v_updateRequest);//Container
 					}
 
-					testcase TC_CSE_DMR_UPD_BV_002_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_02() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
+						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-
-						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
 						
-						f_CSE_DMR_UPD_BV_002(int9, m_createGroupBase, v_updateRequest);//Group
+						v_updateRequest.primitiveContent.any_1 := {{Group_update_invalid := m_contentUpdateGroup_invalid}};
+						
+						v_updateRequest.primitiveContent.any_1[0].Group_update_invalid.expirationCounter := v_expirationCounter;
+						
+						f_CSE_DMR_UPD_BO_005(int9, m_createGroupBase, v_updateRequest);//Group
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_002_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_03() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
+						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
-
-						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
-							
-						f_CSE_DMR_UPD_BV_002(int1, m_createAcpBase,v_updateRequest);//AccessControlPolicy
+						
+						v_updateRequest.primitiveContent.any_1 := {{ACP_update_invalid := m_contentUpdateAcp_invalid}};
+						
+						v_updateRequest.primitiveContent.any_1[0].ACP_update_invalid.expirationCounter := v_expirationCounter;
+								
+						f_CSE_DMR_UPD_BO_005(int1, m_createAcpBase, v_updateRequest);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_UPD_BV_002_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_04() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
+						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
-
-						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
 						
-						f_CSE_DMR_UPD_BV_002(int18, m_createScheduleBase,v_updateRequest);//Schedule
+						v_updateRequest.primitiveContent.any_1 := {{Schedule_update_invalid := m_contentUpdateSchedule_invalid}};
+
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update_invalid.expirationCounter := v_expirationCounter;
+										
+						f_CSE_DMR_UPD_BO_005(int18, m_createScheduleBase, v_updateRequest);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_002_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_05() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
+						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
 
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
+						v_updateRequest.primitiveContent.any_1 := {{PollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}};
 						
-						f_CSE_DMR_UPD_BV_002(int15, m_createPollingChannelBase,v_updateRequest);//PollingChannel
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update_invalid.expirationCounter := v_expirationCounter;
+							
+						f_CSE_DMR_UPD_BO_005(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_002_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_005_06() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_2 := {"VALUE_2"};
+						var XSD.NonNegativeInteger v_maxNrOfInstances := 5;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
+						v_updateRequest.primitiveContent.any_1 := {{Subscription_update_invalid := m_contentUpdateSubscription_invalid}};
 						
-						f_CSE_DMR_UPD_BV_002(int23, m_createSubscriptionBase,v_updateRequest);//Subscription
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update_invalid.maxNrOfInstances := v_maxNrOfInstances;
+								
+						f_CSE_DMR_UPD_BO_005(int23, m_createSubscriptionBase, v_updateRequest);//Subscription
 						}
 					
-					function f_CSE_DMR_UPD_BV_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BO_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
-    					var XSD.String v_targetResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName ;
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1603,22 +3223,24 @@ module OneM2M_Testcases {
     				
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
-						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
-    									
+										
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
 						
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4004)) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
-								//TODO: Check that name attribute is provided
+								setverdict(pass, testcasename() & ": Resource " & c_defaultResourceName & " of type " & int2str(enum2int(p_resourceType)) & " not found");
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+								setverdict(fail, testcasename() & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType)));
+							}
+							[] mcaPort.receive(mw_responseOK) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType)));
 							}
 							[] tc_ac.timeout {
 								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
@@ -1628,99 +3250,83 @@ module OneM2M_Testcases {
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     					    				
-					}//end f_CSE_DMR_UPD_BV_002
+					}//end f_CSE_DMR_UPD_BO_005
     				
-				} // end g_CSE_DMR_UPD_BV_002
+				} // end g_CSE_DMR_UPD_BO_005
 				
-				group g_CSE_DMR_UPD_BV_003 {
+				group g_CSE_DMR_UPD_BO_006{
 					
-					testcase TC_CSE_DMR_UPD_BV_003_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_006_01() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-                        var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+
+						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_1;
 						
-						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
-                        
-						f_CSE_DMR_UPD_BV_003(int3, v_createRequest, v_updateRequest);//Container
+						f_CSE_DMR_UPD_BO_006(int3, m_createContainerBase, v_updateRequest);//Container
 					}
 
-					testcase TC_CSE_DMR_UPD_BV_003_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_006_02() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 
-						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
+						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_1;
 						
-						f_CSE_DMR_UPD_BV_003(int9, v_createRequest, v_updateRequest);//Group
+						f_CSE_DMR_UPD_BO_006(int9, m_createGroupBase, v_updateRequest);//Group
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_003_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_006_03() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var template RequestPrimitive v_requestPrimitive := m_createAcpBase;
+						
+						v_requestPrimitive.primitiveContent.any_1[0].ACP_create.selfPrivileges.accessControlRule_list[0].accessControlOperations := int59;
 
-						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
-							
-						f_CSE_DMR_UPD_BV_003(int1, v_createRequest, v_updateRequest);//AccessControlPolicy
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_1;
+								
+						f_CSE_DMR_UPD_BO_006(int1, v_requestPrimitive, v_updateRequest);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_UPD_BV_003_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_006_04() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
 
-						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
-						
-						f_CSE_DMR_UPD_BV_003(int18, v_createRequest, v_updateRequest);//Schedule
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_1;
+										
+						f_CSE_DMR_UPD_BO_006(int18, m_createScheduleBase, v_updateRequest);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_003_05() runs on M2M system M2MSystem {
-						// Local variables
+					testcase TC_CSE_DMR_UPD_BO_006_05() runs on M2M system M2MSystem {
+						// Local variable
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
 
-						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
-						
-						f_CSE_DMR_UPD_BV_003(int15, v_createRequest, v_updateRequest);//PollingChannel
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_1;
+							
+						f_CSE_DMR_UPD_BO_006(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_003_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_006_06() runs on M2M system M2MSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {""};
-						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
-						
-						f_CSE_DMR_UPD_BV_003(int23, v_createRequest, v_updateRequest);//Subscription
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_1;
+								
+						f_CSE_DMR_UPD_BO_006(int23, m_createSubscriptionBase, v_updateRequest);//Subscription
 						}
 					
-					function f_CSE_DMR_UPD_BV_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BO_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
-						var XSD.String v_targetResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName ;
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1730,23 +3336,26 @@ module OneM2M_Testcases {
 						// Test adapter configuration
     				
 						// Preamble
-						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
+						f_preamble_registerAe(v_aeName, int59);//c_CRDNDi);
 						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
-    									
+																
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
 						
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4103)) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
-								//TODO: Check that name attribute is provided
+								setverdict(pass, testcasename() & ": Access denied to update attributes from resource type " & int2str(enum2int(p_resourceType)));
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+								setverdict(fail, testcasename() & ": Error while updating attributes from resource without having privileges");
+							}
+							[] mcaPort.receive(mw_responseOK) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Updating attributes from resource without having privileges");
 							}
 							[] tc_ac.timeout {
 								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
@@ -1756,123 +3365,87 @@ module OneM2M_Testcases {
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     					    				
-					}//end f_CSE_DMR_UPD_BV_003
+					}//end f_CSE_DMR_UPD_BO_006
     				
-				} // end g_CSE_DMR_UPD_BV_003
+				} // end g_CSE_DMR_UPD_BO_006				
+								
 				
-				group g_CSE_DMR_UPD_BV_004 {
+				group g_CSE_DMR_UPD_BO_007{
 					
-					testcase TC_CSE_DMR_UPD_BV_004_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_01() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
-						var AcpType v_acp := {"ACP_ID"};
-						var XSD.NonNegativeInteger v_maxNrOfInstances := 5;
-						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 
-						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Container_create.maxNrOfInstances := v_maxNrOfInstances;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.maxNrOfInstances := 0;//TODO
-						v_updateRequest.primitiveContent.any_1[0].Container_update.accessControlPolicyIDs := v_acp;
-                        
-						f_CSE_DMR_UPD_BV_004(int3, v_createRequest, v_updateRequest);//Container
+						v_updateRequest.primitiveContent.any_1 := {{Container_update_invalid := m_contentUpdateContainer_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].Container_update_invalid.creationTime := v_creationTime;
+						
+						f_CSE_DMR_UPD_BO_007(int3, m_createContainerBase, v_updateRequest);//Container
 					}
 
-					testcase TC_CSE_DMR_UPD_BV_004_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_02() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
-						var AcpType v_acp := {"ACP_ID"};
-						var XSD.String v_groupName := "MyGroupName";
-						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 
-						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Group_create.groupName := "MyGroupName";
-						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Group_update.groupName:= "";//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].Group_update.accessControlPolicyIDs := v_acp;
-                        
-						f_CSE_DMR_UPD_BV_004(int9, v_createRequest, v_updateRequest);//Group
+						v_updateRequest.primitiveContent.any_1 := {{Group_update_invalid := m_contentUpdateGroup_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].Group_update_invalid.creationTime := v_creationTime;
+						
+						f_CSE_DMR_UPD_BO_007(int9, m_createGroupBase, v_updateRequest);//Group
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_004_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_03() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 
-						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].ACP_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].ACP_update.groupName:= "";//TODO Set to NULL
-						//v_updateRequest.content.any_1[0].ACP_update.accessControlPolicyIDs := v_acp; TODO Need to find Attribute 3
-      							
-						f_CSE_DMR_UPD_BV_004(int1, v_createRequest, v_updateRequest);//AccessControlPolicy
+						v_updateRequest.primitiveContent.any_1 := {{ACP_update_invalid := m_contentUpdateAcp_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].ACP_update_invalid.creationTime := v_creationTime;
+								
+						f_CSE_DMR_UPD_BO_007(int1, m_createAcpBase, v_updateRequest);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_UPD_BV_004_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_04() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
 
-						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].Schedule_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].Schedule_update.groupName:= "";//TODO Set to NULL
-						//v_updateRequest.content.any_1[0].Schedule_update.accessControlPolicyIDs := v_acp; TODO Need to find Attribute 3
-                						
-						f_CSE_DMR_UPD_BV_004(int18, v_createRequest, v_updateRequest);//Schedule
+						v_updateRequest.primitiveContent.any_1 := {{Schedule_update_invalid := m_contentUpdateSchedule_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update_invalid.creationTime := v_creationTime;
+										
+						f_CSE_DMR_UPD_BO_007(int18, m_createScheduleBase, v_updateRequest);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_004_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_05() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var AcpType v_acp := {"ACP_ID"};
-						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
 
-						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].PollingChannel_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].PollingChannel_update.groupName:= "";//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.accessControlPolicyIDs := v_acp; 
-      						
-						f_CSE_DMR_UPD_BV_004(int15, v_createRequest, v_updateRequest);//PollingChannel
+						v_updateRequest.primitiveContent.any_1 := {{PollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update_invalid.creationTime := v_creationTime;
+							
+						f_CSE_DMR_UPD_BO_007(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_004_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_007_06() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var AcpType v_acp := {"ACP_ID"};
-						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var Timestamp v_creationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.expirationCounter := 5;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.expirationCounter := 1;//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.accessControlPolicyIDs := v_acp; 
-      							
-						f_CSE_DMR_UPD_BV_004(int23, v_createRequest, v_updateRequest);//Subscription
+						v_updateRequest.primitiveContent.any_1 := {{Subscription_update_invalid := m_contentUpdateSubscription_invalid}};
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update_invalid.creationTime := v_creationTime;
+								
+						f_CSE_DMR_UPD_BO_007(int23, m_createSubscriptionBase, v_updateRequest);//Subscription
 						}
 					
-					function f_CSE_DMR_UPD_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BO_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName ;
-						var XSD.String v_targetResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & c_defaultResourceName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName ;
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -1884,21 +3457,24 @@ module OneM2M_Testcases {
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
 						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
-    									
+																
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
 						
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4005)) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
-								//TODO: Check that name attribute is provided
+								setverdict(pass, testcasename() & ": Operation not allowed. RO attribute from resource type " & int2str(enum2int(p_resourceType)) );
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+								setverdict(fail, testcasename() & ": Error while updating RO attribute");
+							}
+							[] mcaPort.receive(mw_responseOK) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Updating RO attribute from resource");
 							}
 							[] tc_ac.timeout {
 								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
@@ -1908,124 +3484,98 @@ module OneM2M_Testcases {
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     					    				
-					}//end f_CSE_DMR_UPD_BV_004
+					}//end f_CSE_DMR_UPD_BO_007
     				
-				} // end g_CSE_DMR_UPD_BV_004
+				} // end g_CSE_DMR_UPD_BO_007			
 				
-				group g_CSE_DMR_UPD_BO_005{
+				group g_CSE_DMR_UPD_BO_008{
 					
-					testcase TC_CSE_DMR_UPD_BV_005_01() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_01() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
-						var AcpType v_acp := {"ACP_ID"};
-						var XSD.NonNegativeInteger v_maxNrOfInstances := 5;
-						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						var AttributeList_1 v_nullFields;
+						
+						v_nullFields := {"expirationTime"};
 
-						v_createRequest.primitiveContent.any_1[0].Container_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Container_create.maxNrOfInstances := v_maxNrOfInstances;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Container_update.maxNrOfInstances := 0;//TODO
-						v_updateRequest.primitiveContent.any_1[0].Container_update.accessControlPolicyIDs := v_acp;
-                        
-						f_CSE_DMR_UPD_BO_005(int3, v_createRequest, v_updateRequest);//Container
+						v_updateRequest.primitiveContent.any_1[0].Container_update.expirationTime := v_expirationTime;
+						
+						f_CSE_DMR_UPD_BO_008(int3, m_createContainerBase, v_updateRequest, v_nullFields);//Container
 					}
 
-					testcase TC_CSE_DMR_UPD_BV_005_02() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_02() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"VALUE_2"};
-						var AcpType v_acp := {"ACP_ID"};
-						var XSD.String v_groupName := "MyGroupName";
-						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+						var AttributeList_1 v_nullFields;
 
-						v_createRequest.primitiveContent.any_1[0].Group_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Group_create.groupName := "MyGroupName";
-						v_updateRequest.primitiveContent.any_1[0].Group_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Group_update.groupName:= "";//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].Group_update.accessControlPolicyIDs := v_acp;
-                        
-						f_CSE_DMR_UPD_BO_005(int9, v_createRequest, v_updateRequest);//Group
+						v_nullFields := {"expirationTime"};
+						
+						v_updateRequest.primitiveContent.any_1[0].Group_update.expirationTime := v_expirationTime;
+						
+						f_CSE_DMR_UPD_BO_008(int9, m_createGroupBase, v_updateRequest, v_nullFields);//Group
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_005_03() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_03() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var AttributeList_1 v_nullFields;
 
-						v_createRequest.primitiveContent.any_1[0].ACP_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].ACP_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].ACP_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].ACP_update.groupName:= "";//TODO Set to NULL
-						//v_updateRequest.content.any_1[0].ACP_update.accessControlPolicyIDs := v_acp; TODO Need to find Attribute 3
-      							
-						f_CSE_DMR_UPD_BO_005(int1, v_createRequest, v_updateRequest);//AccessControlPolicy
+						v_nullFields := {"expirationTime"};
+						
+						v_updateRequest.primitiveContent.any_1[0].ACP_update.expirationTime := v_expirationTime;
+								
+						f_CSE_DMR_UPD_BO_008(int1, m_createAcpBase, v_updateRequest, v_nullFields);//AccessControlPolicy
 					}
 				
-					testcase TC_CSE_DMR_UPD_BV_005_04() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_04() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
+						var AttributeList_1 v_nullFields;
 
-						v_createRequest.primitiveContent.any_1[0].Schedule_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].Schedule_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].Schedule_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].Schedule_update.groupName:= "";//TODO Set to NULL
-						//v_updateRequest.content.any_1[0].Schedule_update.accessControlPolicyIDs := v_acp; TODO Need to find Attribute 3
-                						
-						f_CSE_DMR_UPD_BO_005(int18, v_createRequest, v_updateRequest);//Schedule
+						v_nullFields := {"expirationTime"};
+						
+						v_updateRequest.primitiveContent.any_1[0].Schedule_update.expirationTime := v_expirationTime;
+										
+						f_CSE_DMR_UPD_BO_008(int18, m_createScheduleBase, v_updateRequest, v_nullFields);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_005_05() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_05() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var AcpType v_acp := {"ACP_ID"};
-						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
+						var AttributeList_1 v_nullFields;
 
-						v_createRequest.primitiveContent.any_1[0].PollingChannel_create.labels := v_labels_1;
-						//v_createRequest.content.any_1[0].PollingChannel_create.groupName := "MyGroupName";TODO Need to find Attribute 2
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.labels := v_labels_2;
-						//v_updateRequest.content.any_1[0].PollingChannel_update.groupName:= "";//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.accessControlPolicyIDs := v_acp; 
-      						
-						f_CSE_DMR_UPD_BO_005(int15, v_createRequest, v_updateRequest);//PollingChannel
+						v_nullFields := {"expirationTime"};
+						
+						v_updateRequest.primitiveContent.any_1[0].PollingChannel_update.expirationTime := v_expirationTime;
+							
+						f_CSE_DMR_UPD_BO_008(int15, m_createPollingChannelBase, v_updateRequest, v_nullFields);//PollingChannel
 					}
 					
-					testcase TC_CSE_DMR_UPD_BV_005_06() runs on M2M system M2MSystem {
+					testcase TC_CSE_DMR_UPD_BO_008_06() runs on M2M system M2MSystem {
 						// Local variables
-						var Labels v_labels_1 := {"VALUE_1"};
-						var Labels v_labels_2 := {"NULL"};
-						var AcpType v_acp := {"ACP_ID"};
-						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var AttributeList_1 v_nullFields;
 
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.labels := v_labels_1;
-						v_createRequest.primitiveContent.any_1[0].Subscription_create.expirationCounter := 5;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.labels := v_labels_2;
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.expirationCounter := 1;//TODO Set to NULL
-						v_updateRequest.primitiveContent.any_1[0].Subscription_update.accessControlPolicyIDs := v_acp; 
-      							
-						f_CSE_DMR_UPD_BO_005(int23, v_createRequest, v_updateRequest);//Subscription
+						v_nullFields := {"expirationTime"};
+						
+						v_updateRequest.primitiveContent.any_1[0].Subscription_update.expirationTime := v_expirationTime;
+								
+						f_CSE_DMR_UPD_BO_008(int23, m_createSubscriptionBase, v_updateRequest, v_nullFields);//Subscription
 						}
 					
-					function f_CSE_DMR_UPD_BO_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on M2M {
+					function f_CSE_DMR_UPD_BO_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on M2M {
     				
 						// Local variables
 						var M2MResponsePrimitive v_response;
 						var RequestPrimitive v_request;
-						var XSD.ID v_resourceId_content;
-						var XSD.String v_resourceName := "myResource";
 						var XSD.String v_aeName := "ae_test";
-						var XSD.String v_aeResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName ;
-						var XSD.String v_targetResourceAddress := "/" & PX_CSE_NAME & "/" & v_aeName & "/" & v_resourceName;
+						var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & v_aeName ;
+						var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName;
     										   
 						// Test control
     				
@@ -2037,21 +3587,24 @@ module OneM2M_Testcases {
 						// Preamble
 						f_preamble_registerAe(v_aeName, int63);//c_CRUDNDi);
 						f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); 				
-    									
+																
 						// Test Body
 						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive);
 						
-						mcaPort.send(m_request(v_request));
+						mcaPort.send(m_request(v_request,p_nullFields));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_responseOK) -> value v_response {
+							[] mcaPort.receive(mw_response(int4005)) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly");
-								//TODO: Check that name attribute is provided
+								setverdict(pass, testcasename() & ": Operation not allowed. Mandatory RW attribute from resource type " & int2str(enum2int(p_resourceType)) );
 							}
-							[] mcaPort.receive(mw_responseKO) {
+							[] mcaPort.receive(mw_responseKO) -> value v_response {
 								tc_ac.stop;
-								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+								setverdict(fail, testcasename() & ": Error while deleting mandatory RW attribute");
+							}
+							[] mcaPort.receive(mw_responseOK) {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Deleting a mandatory RW attribute from resource");
 							}
 							[] tc_ac.timeout {
 								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
@@ -2061,10 +3614,10 @@ module OneM2M_Testcases {
 						// Postamble
 						f_postamble_deleteResources(v_aeName);
     					    				
-					}//end f_CSE_DMR_UPD_BO_005
+					}//end f_CSE_DMR_UPD_BO_008
     				
-				} // end g_CSE_DMR_UPD_BO_005				
-				
+				} // end g_CSE_DMR_UPD_BO_008				
+
 			}//end group Update
 			
 		}//end group Data_Management_and_Repository
diff --git a/OneM2M_Types.ttcn b/OneM2M_Types.ttcn
index 4c3b60ecc3d070b48174b9063f4c81888509ea80..8f8056ec61bef62bf33a314d4318a466c0cc57b2 100644
--- a/OneM2M_Types.ttcn
+++ b/OneM2M_Types.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Types.ttcn $
- *              $Id: OneM2M_Types.ttcn 43 2016-04-13 12:16:12Z reinaortega $
+ *              $Id: OneM2M_Types.ttcn 69 2016-04-28 07:49:58Z reinaortega $
  *  @desc       Test System module for oneM2M
  *
  */
@@ -877,7 +877,6 @@ module OneM2M_Types {
 	  variant "name as uncapitalized";
 	};
 
-
 	type union AbsRelTimestamp
 	{
 		Timestamp alt_,
@@ -972,7 +971,7 @@ module OneM2M_Types {
 	};
 
 
-	type XSD.String ScheduleEntry (pattern "(([*]|[1-5]#(0,1)\d([,\-][1-5]#(0,1)\d)*)[\q{0,0,0,20}\q{0,0,0,10}\t\r]+)#(2)([*]|((1#(0,1)\d|2[0-3])([,\-](1#(0,1)\d|2[0-3]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1\d|2\d|3[01])([,\-]([1-9]|1\d|2\d|3[01]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1[0-2])([,\-]([1-9]|1[0-2]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|([0-6]([,\-][0-6])*))")
+	type XSD.String ScheduleEntry //FIXME To be added (pattern "(([*]|[1-5]#(0,1)\d([,\-][1-5]#(0,1)\d)*)[\q{0,0,0,20}\q{0,0,0,10}\t\r]+)#(2)([*]|((1#(0,1)\d|2[0-3])([,\-](1#(0,1)\d|2[0-3]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1\d|2\d|3[01])([,\-]([1-9]|1\d|2\d|3[01]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1[0-2])([,\-]([1-9]|1[0-2]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|([0-6]([,\-][0-6])*))")
 	with {
 	  variant "name as uncapitalized";
 	};
@@ -4016,6 +4015,9 @@ group contentCreateTypes {
 	   XSD.AnyURI ontologyRef optional,
 	   XSD.Boolean requestReachability 
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
        
    type record ACP_create {
 	   XSD.NCName resourceName optional,
@@ -4026,6 +4028,9 @@ group contentCreateTypes {
 	   SetOfAcrs privileges,
 	   SetOfAcrs selfPrivileges 
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
     
    type record ContentInstance_create {
    	   XSD.NCName resourceName optional,
@@ -4036,6 +4041,9 @@ group contentCreateTypes {
 	   XSD.AnyURI ontologyRef optional,
 	   XSD.AnyType content_
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
 
    type record Container_create {
        XSD.NCName resourceName optional,
@@ -4051,6 +4059,9 @@ group contentCreateTypes {
        XSD.AnyURI locationID optional,
        XSD.AnyURI ontologyRef optional
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
        
    type record Group_create {
 		XSD.NCName resourceName optional,
@@ -4067,6 +4078,9 @@ group contentCreateTypes {
 		ConsistencyStrategy consistencyStrategy optional,
 		XSD.String groupName optional
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
        
    type record PollingChannel_create {
 		XSD.NCName resourceName optional,
@@ -4075,6 +4089,9 @@ group contentCreateTypes {
 		Timestamp expirationTime optional,
 		XSD.AnyURI pollingChannelURI optional //TODO: To be double checked
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
        
    type record Schedule_create {
 		XSD.NCName resourceName optional,
@@ -4084,6 +4101,9 @@ group contentCreateTypes {
 		record of XSD.Token announcedAttribute optional,
 		ScheduleEntries scheduleElement
    }
+   with {
+	 variant (resourceName) "attribute";
+   };
        
    type record Subscription_create {
 		XSD.NCName resourceName optional,
@@ -4106,6 +4126,9 @@ group contentCreateTypes {
 		XSD.ID creator optional,
 		XSD.AnyURI subscriberURI optional
 	}
+	with {
+	  variant (resourceName) "attribute";
+	};
        
    //End Partial content for creation
 }//end group contentCreateTypes
@@ -4201,17 +4224,127 @@ group contentUpdateTypes {
 		NotificationContentType notificationContentType optional,
 		EventCat notificationEventCat optional
 	}
+	
+	type record AE_update_invalid {
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp creationTime optional,//Invalid field to be used for BI tests
+		Timestamp expirationTime optional,
+		ListOfURIs announceTo optional,
+		record of XSD.Token announcedAttribute optional,
+		XSD.String appName optional,
+		PoaList pointOfAccess optional,
+		XSD.AnyURI ontologyRef optional,
+		XSD.Boolean requestReachability optional
+	};
+       
+	type record ACP_update_invalid {
+		Labels labels optional,
+		Timestamp expirationTime optional,
+		Timestamp creationTime optional,//Invalid field to be used for BI tests
+		XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for ACP
+		ListOfURIs announceTo optional,
+		record of XSD.Token announcedAttribute optional,
+		SetOfAcrs privileges optional,
+		SetOfAcrs selfPrivileges optional 
+	}
+    
+    	
+	type record Container_update_invalid {
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp creationTime optional,//Invalid field to be used for BI tests (RO attributes)
+		XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Container
+		Timestamp expirationTime optional,
+		ListOfURIs announceTo optional,
+		record of XSD.Token announcedAttribute optional,
+		XSD.NonNegativeInteger maxNrOfInstances optional,
+		XSD.NonNegativeInteger maxByteSize optional,
+		XSD.NonNegativeInteger maxInstanceAge optional,
+		XSD.AnyURI locationID optional,
+		XSD.AnyURI ontologyRef optional
+	}
+	   
+	//TODO To double check
+	type record ContentInstance_update_invalid {
+		Labels labels optional,
+		Timestamp creationTime optional,//Invalid field to be used for BI tests
+		ListOfURIs announceTo optional,
+		ContentInfo contentInfo optional,
+		XSD.NonNegativeInteger contentSize optional,
+		XSD.AnyURI ontologyRef optional,
+		XSD.AnyType content_ optional
+	}
+       
+	type record Group_update_invalid {
+		 Labels labels optional,
+		 AcpType accessControlPolicyIDs optional,
+		 Timestamp creationTime optional,//Invalid field to be used for BI tests
+		 XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Group
+		 Timestamp expirationTime optional,
+		 ListOfURIs announceTo optional,
+		 record of XSD.Token announcedAttribute optional,
+		 XSD.NonNegativeInteger maxNrOfMembers optional,
+		 ListOfURIs memberIDs optional,
+		 ListOfURIs membersAccessControlPolicyIDs optional,
+		 XSD.String groupName optional
+	}
+       
+	type record PollingChannel_update_invalid {
+		 Labels labels optional,
+		 AcpType accessControlPolicyIDs optional,
+		 Timestamp creationTime optional,//Invalid field to be used for BI tests
+		 XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for PollingChannel
+		 Timestamp expirationTime optional,
+		 XSD.AnyURI pollingChannelURI optional //TODO: To be double checked
+	}
+       
+	type record Schedule_update_invalid {
+		 Labels labels optional,
+		 Timestamp creationTime optional,//Invalid field to be used for BI tests
+		 XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Schedule
+		 Timestamp expirationTime optional,
+		 ListOfURIs announceTo optional,
+		 record of XSD.Token announcedAttribute optional,
+		 ScheduleEntries scheduleElement optional
+	}
+       
+	type record Subscription_update_invalid {
+		 Labels labels optional,
+		 AcpType accessControlPolicyIDs optional,
+		 Timestamp creationTime optional,//Invalid field to be used for BI tests
+		 XSD.NonNegativeInteger maxNrOfInstances optional,//Invalid field, non existing for Subscription
+		 Timestamp expirationTime optional,
+		 EventNotificationCriteria eventNotificationCriteria optional,
+		 XSD.PositiveInteger expirationCounter optional,
+		 ListOfURIs notificationURI optional,
+		 XSD.AnyURI groupID optional,
+		 XSD.AnyURI notificationForwardingURI optional,
+		 BatchNotify batchNotify optional,
+		 RateLimit rateLimit optional,
+		 PendingNotification pendingNotification optional,
+		 XSD.PositiveInteger notificationStoragePriority optional,
+		 XSD.Boolean latestNotify optional,
+		 NotificationContentType notificationContentType optional,
+		 EventCat notificationEventCat optional
+	 }
        
    //End Partial content for update
 }//end group contentUpdateTypes
 
-type NhURI ParentID;
+	group otherTypes {
+		
+    	type NhURI ParentID;
+    	
+    	//FIXME Must match the type of the response content when retrieving specific attributes
+    	type record of Attribute MyAttributeList;
 
+	}
 
 }
 with {
   encode "XML";
   variant "namespace as 'http://www.onem2m.org/xml/protocols' prefix 'm2m'";
   variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
-  extension "anytype AttributeList, AE, AccessControlPolicy, ACP_create, ACP_update, AE_create, AE_update, Container_create, Container_update, ContentInstance_create, ContentInstance_update, Group_create, Group_update, Schedule_create, Schedule_update, Subscription_create, Subscription_update, PollingChannel_create, PollingChannel_update"
+  extension "anytype AttributeList, AE, AccessControlPolicy, ACP_create, ACP_update, ACP_update_invalid, AE_create, AE_update_invalid, AE_update_invalid,Container_create, Container_update, Container_update_invalid, ContentInstance_create, ContentInstance_update, ContentInstance_update_invalid, Group_create, Group_update, Group_update_invalid, Schedule_create, Schedule_update, Schedule_update_invalid, Subscription_create, Subscription_update, Subscription_update_invalid, PollingChannel_create, PollingChannel_update, PollingChannel_update_invalid"
 }
diff --git a/OneM2M_TypesAndValues.ttcn b/OneM2M_TypesAndValues.ttcn
index dabdc3432e71ba5da40c21770546040b7e6f4c3b..7eaeeae84d199f65bd21c2eb387a03619edaa571 100644
--- a/OneM2M_TypesAndValues.ttcn
+++ b/OneM2M_TypesAndValues.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TypesAndValues.ttcn $
- *              $Id: OneM2M_TypesAndValues.ttcn 43 2016-04-13 12:16:12Z reinaortega $
+ *              $Id: OneM2M_TypesAndValues.ttcn 69 2016-04-28 07:49:58Z reinaortega $
  *  @desc       Module containing types and values for oneM2M
  *
  */
@@ -19,7 +19,8 @@ module OneM2M_TypesAndValues {
 	/* Constants */
 	const charstring c_uri_cse := "/~/in-cse/";
 	const charstring c_cse_name := "in-cse";
-	const XSD.String c_defaultResourceName;
+	const XSD.String c_defaultResourceName := "MyResource";
+	const XSD.String c_acpAuxName := "MyAcp";
 	
 	//AccessControlOperations
 	const XSD.Integer c_C   := 1;