diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 298806b3ba72aa336d95f15c9efe9b8f0f27db7d..6df761aaaf0066ddbc42e2425858910096d33115 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 234 2017-03-20 16:37:29Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 238 2017-03-23 17:39:11Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -585,191 +585,228 @@ module OneM2M_Functions {
 				f_checkCseTesterStatus();
 			}   
 			
-		function f_subscriptionVerificationHandler(in XSD.ID p_creator, in ResponseStatusCode p_responseStatusCode := int2001) runs on CseTester {
-			// Local variables
-			var MsgIn v_response;
-			var ResponsePrimitive v_responsePrimitive;
-			var template Notification v_notificationRequest := mw_contentNotificationBase;
-			var PrimitiveContent v_notificationResponse; // TODO Need to see if this parameter is required however there is a problem if it s omitted during the verification
-			
-			map(self:mcaPort, system:mcaPort);
-			map(self:acPort, system:acPort);
-
-			v_notificationResponse.any_1 := {{Notification := valueof(m_contentNotification_allOmit)}};
-	
-			v_notificationRequest.verificationRequest := true;
-			//v_notificationRequest.creator := p_creator; TODO To check what address format is to be expected
-			//Some participants use SP relative UNSTRUCTURED
-			//v_notificationRequest.subscriptionReference := "I Don't know which URI is expected"; // TODO mandatory parameter 
-			v_responsePrimitive := valueof(m_responseNotification(p_responseStatusCode,v_notificationResponse));//TODO No PrimitiveContent is expected
-	
-			if(p_responseStatusCode != int2001){
-				v_responsePrimitive.primitiveContent := omit;
-			}
-	
-			tc_ac.start;
-			alt {
-				[] mcaPort.receive(mw_request(mw_notify(v_notificationRequest))) -> value v_response {
-					tc_ac.stop;
-					setverdict(pass, testcasename() & ": Notification received");
-					mcaPort.send(m_response(v_responsePrimitive)); 						
-				}
-				[] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response {
-					tc_ac.stop;
-					setverdict(fail, testcasename() & ": Notification received but verificationRequest isn't set to TRUE");							
-				}
-				[] mcaPort.receive{
-					tc_ac.stop;
-					setverdict(fail, testcasename() & ": Error, unexpected message received");
-				}
-				[] tc_ac.timeout {
-					setverdict(inconc, testcasename() & ":  No notification received");
-				}
-			}
-	
-			//mcaPort.send(m_response(v_responsePrimitive));	// TODO have to be deleted
-
-			unmap(self:mcaPort, system:mcaPort);
-			unmap(self:acPort, system:acPort); 
+			/**
+			 * @desc Function to handle announcement of resources
+			 * @param p_from
+			 * @param p_to
+			 * @verdict 
+			 */
+			 //TODO To finalize this function
+			function f_cse_resourceAnnouncementHandler(template XSD.ID p_from := *, template XSD.ID p_to := ?) runs on CseTester {
+				// Local variables
+				var MsgIn v_request;
+				var ResponsePrimitive v_responsePrimitive;
+				
+				map(self:mccPort, system:mccPort);
+				map(self:acPort, system:acPort);
 
-		} //end f_subscriptionVerificationHandler
-		
-		function f_checkAttributesToBeSaved (ResourceType p_resourceType, RequestPrimitive p_request, inout ResponsePrimitive p_response) {
-			select (p_resourceType) {
-				case (int1) {
-					if(isvalue(p_response.primitiveContent.any_1[0].AccessControlPolicy_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName :=  p_request.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName;
-					}
-				}
-				case (int2) {
-					if(isvalue(p_response.primitiveContent.any_1[0].AE_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].AE_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].AE_optional.resourceName :=  p_request.primitiveContent.any_1[0].AE_optional.resourceName;
-					}
-				}
-				case (int3) {
-					if(isvalue(p_response.primitiveContent.any_1[0].Container_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].Container_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].Container_optional.resourceName :=  p_request.primitiveContent.any_1[0].Container_optional.resourceName;
-					}
-				}
-				case (int15) {
-					if (isvalue(p_response.primitiveContent.any_1[0].PollingChannel_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].PollingChannel_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].PollingChannel_optional.resourceName :=  p_request.primitiveContent.any_1[0].PollingChannel_optional.resourceName;
-					}
-				}
-				case (int18) {
-					if (isvalue(p_response.primitiveContent.any_1[0].Schedule_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].Schedule_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].Schedule_optional.resourceName :=  p_request.primitiveContent.any_1[0].Schedule_optional.resourceName;
-					}
-				}
-				case (int23) {
-					if (isvalue(p_response.primitiveContent.any_1[0].Subscription_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].Subscription_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].Subscription_optional.resourceName :=  p_request.primitiveContent.any_1[0].Subscription_optional.resourceName;
-					}
-				}
-				case (int9) {
-					if (isvalue(p_response.primitiveContent.any_1[0].Group_optional) and
-							not(ispresent(p_response.primitiveContent.any_1[0].Group_optional.resourceName))) {
-						p_response.primitiveContent.any_1[0].Group_optional.resourceName :=  p_request.primitiveContent.any_1[0].Group_optional.resourceName;
-					}
-				}
-				case else {
-					log(__SCOPE__&":WARNING: Resource Type "&int2str(enum2int(p_resourceType))&" not implemented");
-					if (not PX_DISABLE_STOP_ON_ERROR) {
-						testcase.stop;
+				tc_ac.start;
+				alt {
+					[] mcaPort.receive(mw_request(mw_create(p_from, p_to))) -> value v_request {
+						tc_ac.stop;
+						setverdict(pass, testcasename() & ": Announcement received");
+						v_responsePrimitive := f_getCreateResponsePrimitive(v_request.primitive.requestPrimitive.resourceType, v_request.primitive.requestPrimitive);
+						mcaPort.send(m_response(v_responsePrimitive)); 						
 					}
-				}
-			}
-
-			// TODO test that if the resource name is returned is the same resource name as used in the create message
-		}
-
-		function f_check_notificationContent(in RequestPrimitive p_requestPrimitive, template PrimitiveContent p_primitiveContent) runs on CseTester return boolean{
-			// Local variables
-			var boolean v_matchResult := false;
-			var integer i;
-			var integer v_numberOfAggregatedNotification;
-	
-			if (ischosen(p_primitiveContent.any_1[0].AE_optional)){
-				if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource)) {
-					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource.AE_optional, p_primitiveContent.any_1[0].AE_optional)
-				}
-				else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive)) {
-					v_matchResult :=match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].AE_optional, p_primitiveContent.any_1[0].AE_optional)
-				}
-				else if (ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification)) {
-					v_matchResult := true;
-					v_numberOfAggregatedNotification := lengthof(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list);
-					for(i := 0; i< v_numberOfAggregatedNotification; i := i + 1){
-						if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.resource)) {
-							if(not (match(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.resource.AE_optional, p_primitiveContent.any_1[0].AE_optional))){
-								v_matchResult := false;
-							}
-						}
-						else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.responsePrimitive)) {
-							if(not (match(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].AE_optional, p_primitiveContent.any_1[0].AE_optional))){
-								v_matchResult := false;
-							}
-						}						
+					[] mcaPort.receive{
+						tc_ac.stop;
+						setverdict(fail, testcasename() & ": Error, unexpected message received");
 					}
-					if (i == 0){
-						v_matchResult := false;
+					[] tc_ac.timeout {
+						setverdict(inconc, testcasename() & ":  No announcement received");
 					}
 				}
-
-			}
-	
-			if (ischosen(p_primitiveContent.any_1[0].Container_optional)){
-				if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource)) {
-					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource.Container_optional, p_primitiveContent.any_1[0].Container_optional)
-				}
-				else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive)) {
-					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].Container_optional, p_primitiveContent.any_1[0].Container_optional)
-				}
-			}
 	
-			return v_matchResult;
+				unmap(self:mccPort, system:mccPort);
+				unmap(self:acPort, system:acPort); 
 
-		} //end f_check_notificationContent	
-		
-		function f_cse_notifyProcedure(template PrimitiveContent p_primitiveContent) runs on CseTester {
-			// Local variables
-			var MsgIn v_response;
-	
-			map(self:mcaPort, system:mcaPort);
-			map(self:acPort, system:acPort);
-	
-			tc_ac.start;
-			alt {
-				[] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response {
-					tc_ac.stop;
-					if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){
-						setverdict(pass, testcasename() & ": Notification received");
-						mcaPort.send(m_response(valueof(m_responseNotification(int2001))));
-					}
-					else{
-						setverdict(fail, testcasename() & ": Notification received but the content doesn't match");
-					}
-				}
-				[] mcaPort.receive{
-					tc_ac.stop;
-					setverdict(fail, testcasename() & ": Error, unexpected message received");
-				}
-				[] tc_ac.timeout {
-					setverdict(inconc, testcasename() & ": No notification received");
-				}
-			}
-	
+			} //end f_cse_resourceAnnouncementHandler			
+			
+    		function f_subscriptionVerificationHandler(in XSD.ID p_creator, in ResponseStatusCode p_responseStatusCode := int2001) runs on CseTester {
+    			// Local variables
+    			var MsgIn v_response;
+    			var ResponsePrimitive v_responsePrimitive;
+    			var template Notification v_notificationRequest := mw_contentNotificationBase;
+    			var PrimitiveContent v_notificationResponse; // TODO Need to see if this parameter is required however there is a problem if it s omitted during the verification
+    			
+    			map(self:mcaPort, system:mcaPort);
+    			map(self:acPort, system:acPort);
+    
+    			v_notificationResponse.any_1 := {{Notification := valueof(m_contentNotification_allOmit)}};
+    	
+    			v_notificationRequest.verificationRequest := true;
+    			//v_notificationRequest.creator := p_creator; TODO To check what address format is to be expected
+    			//Some participants use SP relative UNSTRUCTURED
+    			//v_notificationRequest.subscriptionReference := "I Don't know which URI is expected"; // TODO mandatory parameter 
+    			v_responsePrimitive := valueof(m_responseNotification(p_responseStatusCode,v_notificationResponse));//TODO No PrimitiveContent is expected
+    	
+    			if(p_responseStatusCode != int2001){
+    				v_responsePrimitive.primitiveContent := omit;
+    			}
+    	
+    			tc_ac.start;
+    			alt {
+    				[] mcaPort.receive(mw_request(mw_notify(v_notificationRequest))) -> value v_response {
+    					tc_ac.stop;
+    					setverdict(pass, testcasename() & ": Notification received");
+    					mcaPort.send(m_response(v_responsePrimitive)); 						
+    				}
+    				[] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response {
+    					tc_ac.stop;
+    					setverdict(fail, testcasename() & ": Notification received but verificationRequest isn't set to TRUE");							
+    				}
+    				[] mcaPort.receive{
+    					tc_ac.stop;
+    					setverdict(fail, testcasename() & ": Error, unexpected message received");
+    				}
+    				[] tc_ac.timeout {
+    					setverdict(inconc, testcasename() & ":  No notification received");
+    				}
+    			}
+    	
+    			//mcaPort.send(m_response(v_responsePrimitive));	// TODO have to be deleted
+    
+    			unmap(self:mcaPort, system:mcaPort);
+    			unmap(self:acPort, system:acPort); 
+    
+    		} //end f_subscriptionVerificationHandler
+    		
+    		function f_checkAttributesToBeSaved (ResourceType p_resourceType, RequestPrimitive p_request, inout ResponsePrimitive p_response) {
+    			select (p_resourceType) {
+    				case (int1) {
+    					if(isvalue(p_response.primitiveContent.any_1[0].AccessControlPolicy_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName :=  p_request.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName;
+    					}
+    				}
+    				case (int2) {
+    					if(isvalue(p_response.primitiveContent.any_1[0].AE_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].AE_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].AE_optional.resourceName :=  p_request.primitiveContent.any_1[0].AE_optional.resourceName;
+    					}
+    				}
+    				case (int3) {
+    					if(isvalue(p_response.primitiveContent.any_1[0].Container_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].Container_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].Container_optional.resourceName :=  p_request.primitiveContent.any_1[0].Container_optional.resourceName;
+    					}
+    				}
+    				case (int15) {
+    					if (isvalue(p_response.primitiveContent.any_1[0].PollingChannel_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].PollingChannel_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].PollingChannel_optional.resourceName :=  p_request.primitiveContent.any_1[0].PollingChannel_optional.resourceName;
+    					}
+    				}
+    				case (int18) {
+    					if (isvalue(p_response.primitiveContent.any_1[0].Schedule_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].Schedule_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].Schedule_optional.resourceName :=  p_request.primitiveContent.any_1[0].Schedule_optional.resourceName;
+    					}
+    				}
+    				case (int23) {
+    					if (isvalue(p_response.primitiveContent.any_1[0].Subscription_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].Subscription_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].Subscription_optional.resourceName :=  p_request.primitiveContent.any_1[0].Subscription_optional.resourceName;
+    					}
+    				}
+    				case (int9) {
+    					if (isvalue(p_response.primitiveContent.any_1[0].Group_optional) and
+    							not(ispresent(p_response.primitiveContent.any_1[0].Group_optional.resourceName))) {
+    						p_response.primitiveContent.any_1[0].Group_optional.resourceName :=  p_request.primitiveContent.any_1[0].Group_optional.resourceName;
+    					}
+    				}
+    				case else {
+    					log(__SCOPE__&":WARNING: Resource Type "&int2str(enum2int(p_resourceType))&" not implemented");
+    					if (not PX_DISABLE_STOP_ON_ERROR) {
+    						testcase.stop;
+    					}
+    				}
+    			}
+    
+    			// TODO test that if the resource name is returned is the same resource name as used in the create message
+    		}
+    
+    		function f_check_notificationContent(in RequestPrimitive p_requestPrimitive, template PrimitiveContent p_primitiveContent) runs on CseTester return boolean{
+    			// Local variables
+    			var boolean v_matchResult := false;
+    			var integer i;
+    			var integer v_numberOfAggregatedNotification;
+    	
+    			if (ischosen(p_primitiveContent.any_1[0].AE_optional)){
+    				if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource)) {
+    					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource.AE_optional, p_primitiveContent.any_1[0].AE_optional)
+    				}
+    				else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive)) {
+    					v_matchResult :=match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].AE_optional, p_primitiveContent.any_1[0].AE_optional)
+    				}
+    				else if (ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification)) {
+    					v_matchResult := true;
+    					v_numberOfAggregatedNotification := lengthof(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list);
+    					for(i := 0; i< v_numberOfAggregatedNotification; i := i + 1){
+    						if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.resource)) {
+    							if(not (match(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.resource.AE_optional, p_primitiveContent.any_1[0].AE_optional))){
+    								v_matchResult := false;
+    							}
+    						}
+    						else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.responsePrimitive)) {
+    							if(not (match(p_requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list[i].notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].AE_optional, p_primitiveContent.any_1[0].AE_optional))){
+    								v_matchResult := false;
+    							}
+    						}						
+    					}
+    					if (i == 0){
+    						v_matchResult := false;
+    					}
+    				}
+    
+    			}
+    	
+    			if (ischosen(p_primitiveContent.any_1[0].Container_optional)){
+    				if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource)) {
+    					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.resource.Container_optional, p_primitiveContent.any_1[0].Container_optional)
+    				}
+    				else if(ischosen(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive)) {
+    					v_matchResult := match(p_requestPrimitive.primitiveContent.any_1[0].Notification.notificationEvent.representation.responsePrimitive.primitiveContent.any_1[0].Container_optional, p_primitiveContent.any_1[0].Container_optional)
+    				}
+    			}
+    	
+    			return v_matchResult;
+    
+    		} //end f_check_notificationContent	
 		
-			unmap(self:mcaPort, system:mcaPort);
-			unmap(self:acPort, system:acPort); 
-	
-		} //end f_cse_notifyProcedure
+    		function f_cse_notifyProcedure(template PrimitiveContent p_primitiveContent) runs on CseTester {
+    			// Local variables
+    			var MsgIn v_response;
+    	
+    			map(self:mcaPort, system:mcaPort);
+    			map(self:acPort, system:acPort);
+    	
+    			tc_ac.start;
+    			alt {
+    				[] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response {
+    					tc_ac.stop;
+    					if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){
+    						setverdict(pass, testcasename() & ": Notification received");
+    						mcaPort.send(m_response(valueof(m_responseNotification(int2001))));
+    					}
+    					else{
+    						setverdict(fail, testcasename() & ": Notification received but the content doesn't match");
+    					}
+    				}
+    				[] mcaPort.receive{
+    					tc_ac.stop;
+    					setverdict(fail, testcasename() & ": Error, unexpected message received");
+    				}
+    				[] tc_ac.timeout {
+    					setverdict(inconc, testcasename() & ": No notification received");
+    				}
+    			}
+    	
+    		
+    			unmap(self:mcaPort, system:mcaPort);
+    			unmap(self:acPort, system:acPort); 
+    	
+    		} //end f_cse_notifyProcedure
 			
 	
 		}//end group helpingFunctions
@@ -1025,6 +1062,49 @@ module OneM2M_Functions {
 
 			return valueof(p_request);
 		}
+		
+		/**
+		 * @desc Creation of a CREATE response primitive from a template request primitive
+		 * @param p_resourceType Type of resource to be created
+		 * @param p_request Template request primitive 
+		 * @return Created CREATE response primitive
+		 * @verdict 
+		 */
+		//TODO To be completed
+		function f_getCreateResponsePrimitive(in ResourceType p_resourceType, template RequestPrimitive p_request := m_create) runs on CseTester return ResponsePrimitive {
+			var template ResponsePrimitive v_responsePrimitive;
+
+			if(p_resourceType != int2) {
+				v_responsePrimitive.from_ := p_request.to_;
+			}
+			p_request.to_ := p_request.from_;
+
+			if (p_resourceType == int1) {//AccessControlPolicy
+				
+			} 
+			
+			if (p_resourceType == int9) {//group
+				
+			}
+			
+			if(p_resourceType == int3){//container
+					  
+			}
+			
+			if (p_resourceType == int15) {//pollingChannel
+				
+			} 
+			
+			if (p_resourceType == int18) {//schedule
+			} 
+
+			if (p_resourceType == int23) {//subscription
+				
+				
+			}
+
+			return valueof(v_responsePrimitive);
+		}
 
 		/**
 		 * @desc Creation of an UPDATE request primitive from a template request primitive
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index b350b798a045efe9e638c381c5cd52b8f71f0c99..840afec4f9a407c70f8f121f8f19943f1a6691b9 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 234 2017-03-20 16:37:29Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 238 2017-03-23 17:39:11Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -367,7 +367,7 @@ module OneM2M_Templates {
 			 */
 			template RequestPrimitive mw_create(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
 				operation := int1,
-				to_ := ?,
+				to_ := p_to,
 				from_ := p_from,
 				requestIdentifier := ?,
 				resourceType := ?,
@@ -395,66 +395,31 @@ module OneM2M_Templates {
 			
 			
 			/**
-			 * @desc Base CREATE request primitive for AE resource (AUX)
+			 * @desc Base CREATE request primitive for AEAnnc resource
+			 * @param p_accessControlPolicyIds
+			 * @param p_to
+			 * @param p_from
+			 * @param p_appId
+			 * @param p_stemId
 			 */
-			template RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") := {
-				operation := int1,
+			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
 				to_ := p_to,
 				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
 				requestIdentifier := testcasename() & "-m_createAEAnnc" & f_rnd(1, 1000000),
 				resourceType := int10002,
 				primitiveContent := {
 					any_1 := {{AEAnnc_optional := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}}	
-				},
-				roleIDs := omit,
-				originatingTimestamp := omit,
-				requestExpirationTimestamp := omit,
-				resultExpirationTimestamp := omit,
-				operationExecutionTime := omit,
-				responseType := omit,
-				resultPersistence := omit,
-				resultContent := omit,
-				eventCategory := omit,
-				deliveryAggregation := omit,
-				groupRequestIdentifier := omit,
-				filterCriteria := omit,
-				discoveryResultType := omit,
-				tokens := omit,
-				tokenIDs := omit,
-				localTokenIDs := omit,
-				tokenRequestIndicator := omit
+				}
 			};
 			
 			/**
-			 * @desc Base CREATE request primitive for AE resource (AUX)
+			 * @desc Reception template for CREATE AEAnnc
 			 */
-			//Added by @Naum
-			template RequestPrimitive mw_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") := {
-				operation := int1,
-				to_ := p_to,
-				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
-				requestIdentifier := ?,
+			template RequestPrimitive mw_createAEAnnc(template (omit) XSD.ID p_from := omit, template (omit) XSD.ID p_to := omit, template (omit) AcpType p_accessControlPolicyIds := omit) modifies mw_create := {
 				resourceType := int10002,
 				primitiveContent := {
-					any_1 := {{AEAnnc_optional := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}}	
-				},
-				roleIDs := *,
-				originatingTimestamp := *,
-				requestExpirationTimestamp := *,
-				resultExpirationTimestamp := *,
-				operationExecutionTime := *,
-				responseType := *,
-				resultPersistence := *,
-				resultContent := *,
-				eventCategory := *,
-				deliveryAggregation := *,
-				groupRequestIdentifier := *,
-				filterCriteria := *,
-				discoveryResultType := *,
-				tokens := *,
-				tokenIDs := *,
-				localTokenIDs := *,
-				tokenRequestIndicator := *
+					any_1 := {{AEAnnc_optional := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}}	
+				}
 			};
 
 			//Added by @Naum
@@ -507,6 +472,18 @@ module OneM2M_Templates {
         		}
         	};
         	
+			/**
+			 * @desc Reception template for CREATE AcpAnnc
+			 */
+			template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				to_ := p_to,
+				from_ := p_from,
+				resourceType := int10002,
+				primitiveContent := {
+					any_1 := {{AccessControlPolicyAnnc_optional := mw_contentCreateAcpAnnc(-)}}	
+				}
+			};
+        	
        	
 			/**
 			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
@@ -563,6 +540,16 @@ module OneM2M_Templates {
 				}
 			};  
 			
+			/**
+			 * @desc Reception template for CREATE ContainerAnnc
+			 */
+			template RequestPrimitive mw_createContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10003,
+				primitiveContent := {
+					any_1 := {{ContainerAnnc_optional := ?}}	
+				}
+			};  
+			
 			/**
 			 * @desc Reception template for CREATE FlexContainer
 			 */
@@ -605,6 +592,16 @@ module OneM2M_Templates {
     			}
     		};
     		
+			/**
+			 * @desc Reception template for CREATE ContentInstanceAnnc
+			 */
+			template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10014,
+				primitiveContent := {
+					any_1 := {{ContentInstanceAnnc_optional := ?}}	
+				}
+			};  
+        	    		
        	
 			/**
 			 * @desc Base CREATE request primitive for Group resource
@@ -631,6 +628,79 @@ module OneM2M_Templates {
         		}
         	};
         	
+			/**
+			 * @desc Reception template for CREATE GroupAnnc
+			 */
+			template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10009,
+				primitiveContent := {
+					any_1 := {{GroupAnnc_optional := ?}}	
+				}
+			};  
+        	
+			/**
+			 * @desc Base CREATE request primitive for MgmtObj resource
+			 */
+			template (value) RequestPrimitive m_createMgmtObjBase modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createMgmtObj" & f_rnd(1, 1000000),
+				resourceType := int13,
+				primitiveContent := {
+					any_1 := {{MgmtObj_optional := m_contentCreateMgmtObj (-,-)}}	
+				}
+			};
+        	
+			/**
+			 * @desc CREATE request primitive for MgmtObj resource
+			 */
+			template (value) RequestPrimitive m_createMgmtObj modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createMgmtObj" & f_rnd(1, 1000000),
+				resourceType := int13,
+				primitiveContent := {
+					any_1 := {{MgmtObj_optional := m_contentCreateMgmtObj (-, -)}}	
+				}
+			};
+        	
+			/**
+			 * @desc Reception template for CREATE MgmtObjAnnc
+			 */
+			template RequestPrimitive mw_createMgmtObjAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10013,
+				primitiveContent := {
+					any_1 := {{MgmtObjAnnc_optional := ?}}	
+				}
+			};  
+			
+			/**
+			 * @desc Base CREATE request primitive for Node resource
+			 */
+			template (value) RequestPrimitive m_createNodeBase modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createNode" & f_rnd(1, 1000000),
+				resourceType := int14,
+				primitiveContent := {
+					any_1 := {{Node_optional := m_contentCreateNode(-, -, -) }}	
+				}
+			};
+        	
+			/**
+			 * @desc CREATE request primitive for Node resource
+			 */
+			template (value) RequestPrimitive m_createNode modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createNode" & f_rnd(1, 1000000),
+				resourceType := int14,
+				primitiveContent := {
+					any_1 := {{Node_optional := m_contentCreateNode(-,-,-) }}
+				}
+			};
+        	
+			/**
+			 * @desc Reception template for CREATE NodeAnnc
+			 */
+			template RequestPrimitive mw_createNodeAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10014,
+				primitiveContent := {
+					any_1 := {{NodeAnnc_optional := ?}}	
+				}
+			};  
        	
 			/**
 			 * @desc Base CREATE request primitive for PollingChannel resource
@@ -674,6 +744,16 @@ module OneM2M_Templates {
         		}
         	};
         	
+			/**
+			 * @desc Reception template for CREATE ScheduleAnnc
+			 */
+			template RequestPrimitive mw_createScheduleAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10018,
+				primitiveContent := {
+					any_1 := {{ScheduleAnnc_optional := ?}}	
+				}
+			};  
+        	
 			//Added by @Naum
 			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedAppIDs, in ListOfM2MID p_allowedAEs) modifies m_create := {
 				from_ := PX_AE_ID_STEM,
@@ -730,6 +810,16 @@ module OneM2M_Templates {
         	  	},
 			  	resultContent := int1//default
         	};
+        	
+			/**
+			 * @desc Reception template for CREATE LocationPolicyAnnc
+			 */
+			template RequestPrimitive mw_createLocationPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+				resourceType := int10010,
+				primitiveContent := {
+					any_1 := {{LocationPolicyAnnc_optional := ?}}	
+				}
+			};  
         	//@Martin
         	template (value) RequestPrimitive m_createNotification(in template (value) Representation p_resourcePresentation, in template (omit)NotificationEventType p_notifEventType, in template (omit) XSD.AnyURI p_subscriptionReference, in template (omit) XSD.AnyURI p_notifForwardingURI) modifies m_create := {
         	  requestIdentifier	:= testcasename() & "-m_createNotification" & f_rnd(1, 1000000),
@@ -887,7 +977,13 @@ module OneM2M_Templates {
 	}//end group RequestPrimitives
 	
 	group ContentCreate {
-		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for AEAnnc resource
+		 * @param p_labels Labels
+		 * @param p_accessControlPolicyIds AcpIDs
+		 * @param p_appId App ID
+		 * @param p_nodeLink Node link
+		 */
 		template AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID, in template (omit) XSD.AnyURI p_nodeLink := omit) := {
 			resourceName := omit,//O TODO 
 			resourceType := omit,//NP
@@ -912,28 +1008,35 @@ module OneM2M_Templates {
 			choice := omit//NP
 		};	
 
-		template AEAnnc_optional mw_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID, in template (omit) XSD.AnyURI p_nodeLink := omit) := {
-    		resourceName := *,//O
-    		resourceType := omit,//NP
-    		resourceID := omit,//NP
-    		parentID := omit,//NP
-    		creationTime := omit,//NP
-    		lastModifiedTime := omit,//NP
-    		labels := p_labels,//O
-    		accessControlPolicyIDs := p_accessControlPolicyIds,//O
-    		expirationTime := *,//O
-    		dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
-			link := *,//O
-			appName := *,//O
-			app_ID := p_appId,//M
-			aE_ID := omit,//NP
-			pointOfAccess := *, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
-			ontologyRef := *,//O
-			nodeLink := p_nodeLink,//NP
-			requestReachability := ?,//M
-			contentSerialization := *,//O
-			e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation
-			choice := omit//NP
+		/**
+		 * @desc Base reception template of primitiveContent for CREATE operation for AEAnnc resource
+		 * @param p_labels Labels
+		 * @param p_accessControlPolicyIds AcpIDs
+		 * @param p_appId App ID
+		 * @param p_nodeLink Node link
+		 */
+		template AEAnnc_optional mw_contentCreateAEAnnc (in template  Labels p_labels := ?, in template AcpType p_accessControlPolicyIds := ?) := {
+    		resourceName := omit,//NA M
+    		resourceType := omit,//NA M
+    		resourceID := omit,//NA M
+    		parentID := omit,//NA M
+    		creationTime := omit,//NA M
+    		lastModifiedTime := omit,//NA M
+    		labels := p_labels,//MA
+    		accessControlPolicyIDs := p_accessControlPolicyIds,//MA
+    		expirationTime := ?,//MA M
+    		dynamicAuthorizationConsultationIDs := omit, //OA
+			link := ?,//M
+			appName := omit,//OA
+			app_ID := omit,//OA
+			aE_ID := omit,//OA
+			pointOfAccess := omit, //OA {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
+			ontologyRef := omit,//OA
+			nodeLink := omit,//OA
+			requestReachability := omit,//OA
+			contentSerialization := omit,//OA
+			e2eSecInfo := ?, //MA
+			choice := omit//NA
 		};	
 		
     	/**
@@ -993,6 +1096,25 @@ module OneM2M_Templates {
 			choice := omit //NP
 		};
 		
+		/**
+		 * @desc Base reception template of primitiveContent for CREATE operation for AccessControlPolicyAnnc resource
+		 * @param p_labels Labels
+		 */
+		template AccessControlPolicyAnnc_optional mw_contentCreateAcpAnnc (in template (omit)  Labels p_labels := omit) := {
+			resourceName := omit,//NA M
+			resourceType := omit,//NA M
+			resourceID := omit,//NA M
+			parentID := omit,//NA M
+			creationTime := omit,//NA M
+			lastModifiedTime := omit,//NA M
+			labels := p_labels,//MA
+			expirationTime := ?,//MA M
+			link := ?,//M
+			privileges := *,//MA
+			selfPrivileges := *,//MA
+			choice := omit//NA
+		};	
+		
 		template (value) AccessControlRule m_createAcr (in template (value) ListOfURIs p_acor, in template (value) AccessControlOperations p_allowedOperations) := {
 			accessControlOriginators := p_acor,//{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"},
 			accessControlOperations := p_allowedOperations,
@@ -1060,7 +1182,57 @@ module OneM2M_Templates {
 			consistencyStrategy := p_consistencyStrategy,//O
 			groupName := omit,//O
 			choice := omit//NP
-    	};    	
+    	};  
+    	
+		/**
+		 * @desc Base primitiveContent for CREATE operation for MgmtObj resource
+		 * @param p_name Resource name
+		 * @param p_accessControlPolicyIds ACP IDs for the AE
+		 */
+		template (value) MgmtObj_optional m_contentCreateMgmtObj (in template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit)  XSD.String p_name := c_defaultResourceName) := {
+			
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			announceTo := omit,//O
+			announcedAttribute := omit,//O
+			mgmtDefinition := omit,//O
+			objectIDs := omit,//O
+			objectPaths := omit,//O
+			description := omit//O
+		};	  	
+		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for Node resource
+		 * @param p_name Resource name
+		 * @param p_accessControlPolicyIds ACP IDs for the AE
+		 */
+		template (value) Node_optional m_contentCreateNode (in template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit)  XSD.String p_name := c_defaultResourceName, in template (omit) XSD.ID p_nodeId := "NodeID") := {//TODO Create PX for NodeID
+			
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			announceTo := omit,//O
+			announcedAttribute := omit,//O
+			nodeID := p_nodeId,//M
+			hostedCSELink := omit,//O
+			choice := omit//O
+		};	  	
+		
     	
     	/**
     	 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index 063afb490ba6876be05f98fd906209ae9033398c..8bd912ab55244f67f918ebd937d56a2367d49d4d 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $
- *              $Id: OneM2M_Types.ttcn 234 2017-03-20 16:37:29Z reinaortega $
+ *              $Id: OneM2M_Types.ttcn 238 2017-03-23 17:39:11Z reinaortega $
  *  @desc       OneM2M data types module 
  *
  */
@@ -41,6 +41,9 @@ import from XSD all;
 		charstring serialization optional,
 		AttributeAux_list forcedFields optional
 	}
+	with {
+		encode ""
+	}
 	
 	/**
 	 * @desc Type for the oneM2M primitives exchange
@@ -52,6 +55,9 @@ import from XSD all;
 			ResponsePrimitive responsePrimitive
 		} primitive
 	}
+	with {
+		encode ""
+	}
 	
 	type record AcRequestPrimitive {
 		charstring event,
@@ -6671,6 +6677,37 @@ group OptionalResourceTypes {
 	  variant (choice.subscription_list) "untagged";
 	  variant (choice.subscription_list[-]) "name as 'subscription'";
 	};
+	
+	type record AccessControlPolicyAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		SetOfAcrs privileges optional,
+		SetOfAcrs selfPrivileges optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of Subscription subscription_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.subscription_list) "untagged";
+	  variant (choice.subscription_list[-]) "name as 'subscription'";
+	};
+	
+
 
 	type record ContentInstance_optional
 	{
@@ -6750,6 +6787,57 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 	
+	type record ContainerAnnc_optional
+    {
+    	ResourceName resourceName optional,
+    	ResourceType resourceType optional,
+    	XSD.ID resourceID optional,
+    	NhURI parentID optional,
+    	Timestamp creationTime optional,
+    	Timestamp lastModifiedTime optional,
+    	Labels labels optional,
+    	AcpType accessControlPolicyIDs optional,
+    	Timestamp expirationTime optional,
+    	XSD.AnyURI link optional,
+    	ListOfURIs dynamicAuthorizationConsultationIDs optional,
+    	XSD.NonNegativeInteger stateTag optional,
+    	XSD.NonNegativeInteger maxNrOfInstances optional,
+    	XSD.NonNegativeInteger maxByteSize optional,
+    	XSD.NonNegativeInteger maxInstanceAge optional,
+    	XSD.NonNegativeInteger currentNrOfInstances optional,
+    	XSD.NonNegativeInteger currentByteSize optional,
+    	XSD.AnyURI locationID optional,
+    	XSD.AnyURI ontologyRef optional,
+    	XSD.Boolean disableRetrieval optional,
+    	union {
+    		record length(1 .. infinity) of ChildResourceRef childResource_list,
+    		record length(1 .. infinity) of union {
+    			ContentInstance contentInstance,
+    			ContentInstanceAnnc contentInstanceAnnc,
+    			Container container,
+    			ContainerAnnc containerAnnc,
+    			Subscription subscription,
+    			SemanticDescriptor semanticDescriptor,
+    			SemanticDescriptorAnnc semanticDescriptorAnnc,
+    			Sg_flexContainerResource_group sg_flexContainerResource,
+    			Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
+    		} choice_list
+    	} choice optional
+    }
+    with {
+      variant "name as uncapitalized";
+      variant "element";
+      variant (resourceName) "attribute";
+      //variant (disableRetrieval) "text 'true' as '1'";
+      //variant (disableRetrieval) "text 'false' as '0'";
+      variant (choice) "untagged";
+      variant (choice.childResource_list) "untagged";
+      variant (choice.childResource_list[-]) "name as 'childResource'";
+      variant (choice.choice_list) "untagged";
+      variant (choice.choice_list[-]) "untagged";
+    };
+	
+	
 	type record FlexContainer_optional
     {
     	ResourceName resourceName optional,
@@ -6772,7 +6860,40 @@ group OptionalResourceTypes {
     with {
       variant "name as uncapitalized";
       variant (resourceName) "attribute";
-    };    	
+    };    
+    
+    type record ContentInstanceAnnc_optional
+	{
+    	ResourceName resourceName optional,
+    	ResourceType resourceType optional,
+    	XSD.ID resourceID optional,
+    	NhURI parentID optional,
+    	Timestamp creationTime optional,
+    	Timestamp lastModifiedTime optional,
+    	Labels labels optional,
+    	Timestamp expirationTime optional,
+    	XSD.AnyURI link optional,
+    	XSD.NonNegativeInteger stateTag optional,
+    	ContentInfo contentInfo optional,
+    	XSD.NonNegativeInteger contentSize optional,
+    	XSD.AnyURI ontologyRef optional,
+    	XSD.AnyType content optional,
+    	union {
+    		record length(1 .. infinity) of ChildResourceRef childResource_list,
+    		record length(1 .. infinity) of SemanticDescriptor semanticDescriptor_list
+    	} choice optional
+    }
+    with {
+      variant "name as uncapitalized";
+      variant "element";
+      variant (resourceName) "attribute";
+      variant (choice) "untagged";
+      variant (choice.childResource_list) "untagged";
+      variant (choice.childResource_list[-]) "name as 'childResource'";
+      variant (choice.semanticDescriptor_list) "untagged";
+      variant (choice.semanticDescriptor_list[-]) "name as 'semanticDescriptor'";
+    };
+    	
 	
 	//added by @Naum
 	type record CSEBase_optional
@@ -6879,6 +7000,178 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list[-].semanticDescriptor) "name as 'semanticDescriptor'";
 	};
 	
+	type record LocationPolicyAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		LocationSource locationSource optional,
+		ListOfDuration locationUpdatePeriod optional,
+		NodeID locationTargetID optional,
+		XSD.AnyURI locationServer optional,
+		XSD.AnyURI locationContainerID optional,
+		XSD.String locationContainerName optional,
+		XSD.String locationStatus optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	};
+	
+	type record MgmtObj_optional //MgmtResource
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		ListOfURIs announceTo optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		MgmtDefinition mgmtDefinition optional,
+		ListOfURIs objectIDs optional,
+		ListOfURIs objectPaths optional,
+		XSD.String description optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant (resourceName) "attribute";
+	  variant (announcedAttribute) "list";
+	};
+
+
+	type record MgmtObjAnnc_optional//AnnouncedMgmtResource
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		MgmtDefinition mgmtDefinition optional,
+		ListOfURIs objectIDs optional,
+		ListOfURIs objectPaths optional,
+		XSD.String description optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant (resourceName) "attribute";
+	};
+	
+	type record Node_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		ListOfURIs announceTo optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		NodeID nodeID optional,
+		XSD.ID hostedCSELink optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of union {
+				Memory memory,
+				Battery battery,
+				AreaNwkInfo areaNwkInfo,
+				AreaNwkDeviceInfo areaNwkDeviceInfo,
+				Firmware firmware,
+				Software software,
+				DeviceInfo deviceInfo,
+				DeviceCapability deviceCapability,
+				Reboot reboot,
+				EventLog eventLog,
+				CmdhPolicy cmdhPolicy,
+				ActiveCmdhPolicy activeCmdhPolicy,
+				Subscription subscription,
+				SemanticDescriptor semanticDescriptor,
+				TrafficPattern trafficPattern
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (announcedAttribute) "list";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	};
+
+
+	type record NodeAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		NodeID nodeID optional,
+		XSD.ID hostedCSELink optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of union {
+				MemoryAnnc memoryAnnc,
+				BatteryAnnc batteryAnnc,
+				AreaNwkInfoAnnc areaNwkInfoAnnc,
+				AreaNwkDeviceInfoAnnc areaNwkDeviceInfoAnnc,
+				FirmwareAnnc firmwareAnnc,
+				SoftwareAnnc softwareAnnc,
+				DeviceInfoAnnc deviceInfoAnnc,
+				DeviceCapabilityAnnc deviceCapabilityAnnc,
+				RebootAnnc rebootAnnc,
+				EventLogAnnc eventLogAnnc,
+				Subscription subscription,
+				SemanticDescriptor semanticDescriptor,
+				SemanticDescriptorAnnc semanticDescriptorAnnc,
+				TrafficPatternAnnc trafficPatternAnnc
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	};
+	
 	type record PollingChannel_optional
 	{
 		XSD.NCName resourceName optional,
@@ -7005,6 +7298,50 @@ group OptionalResourceTypes {
 	  variant (choice) "untagged";
 	};
 	
+	type record GroupAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		MemberType memberType optional,
+		XSD.NonNegativeInteger currentNrOfMembers optional,
+		XSD.PositiveInteger maxNrOfMembers optional,
+		record of XSD.AnyURI memberIDs optional,
+		ListOfURIs membersAccessControlPolicyIDs optional,
+		XSD.Boolean memberTypeValidated optional,
+		ConsistencyStrategy consistencyStrategy optional,
+		XSD.String groupName optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of union {
+				Subscription subscription,
+				SemanticDescriptor semanticDescriptor,
+				SemanticDescriptorAnnc semanticDescriptorAnnc
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (memberIDs) "list";
+	  //variant (memberTypeValidated) "text 'true' as '1'";
+	  //variant (memberTypeValidated) "text 'false' as '0'";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	};
+	
 	//@Martin
 	type record LocationPolicy_optional 
 	{
@@ -7046,6 +7383,25 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 	
+	type record ScheduleAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		ScheduleEntries scheduleElement optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	};
+	
 	type record SemanticDescriptor_optional	{
 		XSD.NCName resourceName optional,
 		ResourceType resourceType optional,
@@ -7275,5 +7631,5 @@ 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 Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid, Schedule_optional, Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainer_optional, GenericInterworkingOperationInstance_optional"
+	extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, AccessControlPolicyAnnc_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, ContainerAnnc_optional, ContentInstanceAnnc_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid,  GroupAnnc_optional, LocationPolicyAnnc_optional, MgmtObj_optional, MgmtObjAnnc_optional, Node_optional, NodeAnnc_optional, Schedule_optional, ScheduleAnnc_optional,  Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainer_optional, GenericInterworkingOperationInstance_optional"
 }