diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index d3fca77c61e4723d535cfe84ed7c5575ea571b46..f5bb97074b007eade6a052933cf240becc333ff7 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -6912,6 +6912,73 @@ module OneM2M_PermutationFunctions {
 				
 			} //end group Create
 			
+			group Retrieve {
+			
+				function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu {
+
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_request;
+					var integer v_parentIndex := -1;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex;
+					var template RequestPrimitive v_createAE := m_createAe(PX_APP_ID, omit, omit);
+					var template RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID);
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyAcp", -, int61);
+					var integer v_aeAnncIndex;
+					var integer v_resourceAnncIndex;
+					var integer v_acpIndex;
+					var XSD.ID v_membersAcpId;
+   
+					// Test control
+
+					// Test component configuration
+					f_cf02Up();
+
+					// Test adapter configuration
+
+					//Register the CSE
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase));	
+					vc_cse1.done;
+
+					//Preamble
+					v_aeIndex := f_cse_createResource(int2,v_createAE);
+					
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_membersAcpId := f_getResourceId(vc_resourcesList[v_acpIndex].resource);
+					
+					v_createAEAnnc.primitiveContent.aEAnnc.resourceID := v_membersAcpId;
+					v_aeAnncIndex := f_cse_createResource(int10002,v_createAEAnnc);
+					
+					v_resourceAnncIndex := f_cse_createResource(p_resourceType,p_createRequestAnnc);
+
+					// Test Body
+					mcaPort.send(m_request(m_retrieve(f_getResourceAddress(), f_getOriginator(v_resourceAnncIndex))));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__, ": Wrong response status code");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__, ": No answer while retrieving resource type " & int2str(enum2int(p_resourceType)));
+						}
+					}
+		
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf02Down();
+
+				}//end f_CSE_ANNC_RET_001
+			 
+			} //end group Retrieve
+			
 			group Update{
 			
 				function f_CSE_ANNC_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu {
@@ -6926,18 +6993,18 @@ module OneM2M_PermutationFunctions {
 					var integer v_latestResourceIndex;
 					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit);
-					
+		
 					v_create.primitiveContent.aE.announceTo := {PX_CSE_ID};
-   
+	   
 					//Test control
-
+	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
-
+	
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSEBase);	
-
+	
 					//Preamble
 	
 					v_ae1.start(f_cse_createResource(int2,v_create));					
@@ -6946,40 +7013,40 @@ module OneM2M_PermutationFunctions {
 	
 					v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex));
 					v_ae1.done;					
-					
+		
 					v_latestResourceIndex := f_getLatestResourceIndex(v_ae1);
-
+	
 					// Test Body
 					v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive));
-
+	
 					tc_ac.start;
 					alt {
 						[] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received");
-							
+				
 							if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_hierarchical, e_spRelative)) or 
 							match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_nonHierarchical, e_spRelative))) {
 								setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS");     
 							} else {
 								setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS");
 							}
-										
+							
 						}
 						[] tc_ac.timeout {
 							setverdict(fail, __SCOPE__ & ":ERROR:  No CREATE REQUEST received");
 						}
 					}
 					v_ae1.done;
-
+	
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
-
+	
 					// Tear down
 					f_cf02DownCseSimuMaster();
-
+	
 				}//end f_CSE_ANNC_UPD_001
-				
+	
 				function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu {
 					// Local variables
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
@@ -6992,7 +7059,7 @@ module OneM2M_PermutationFunctions {
 					var integer v_latestResourceIndex;
 					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit);
-					
+		
 					v_create.primitiveContent.aE.announceTo := {PX_CSE_ID};
 	   
 					//Test control
@@ -7042,7 +7109,7 @@ module OneM2M_PermutationFunctions {
 					f_cf02DownCseSimuMaster();
 	
 				}//end f_CSE_ANNC_UPD_002
-				
+	
 				function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu {
 					//Local variables
 					var MsgIn v_request;
@@ -7051,26 +7118,26 @@ module OneM2M_PermutationFunctions {
 					var integer v_resourceIndex;
 					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit);
-					
+		
 					v_create.primitiveContent.aE.announceTo := {PX_CSE_ID};
 					//Test control
-
+	
 					//Test component configuration
 					f_cf02Up();
-
+	
 					//Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase));	
 					vc_cse1.done;
-
+	
 					//Preamble
 					vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)));
 					v_aeIndex := f_cse_createResource(int2,v_create);
 					vc_cse1.done;
-
+	
 					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc));	
 					v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
 					vc_cse1.done;				  	
-  	
+	
 					vc_cse1.start(f_cse_announcementProcedure_deleteHandler());	
 					v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive);
 					mcaPort.send(m_request(v_updateRequest));
@@ -7080,7 +7147,7 @@ module OneM2M_PermutationFunctions {
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ": Resource updated successfully");
-							
+				
 						}
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 							tc_ac.stop;
@@ -7094,7 +7161,7 @@ module OneM2M_PermutationFunctions {
 							setverdict(fail, __SCOPE__ & ": No answer while updating resource");
 						}
 					}
-					
+		
 					vc_cse1.done;
 	
 					//Check to see if the resource is present or not
@@ -7106,11 +7173,11 @@ module OneM2M_PermutationFunctions {
 	
 					//Postamble
 					f_cse_postamble_deleteResources();
-
+	
 					// Tear down
 					f_cf02Down();
 				} //end f_CSE_ANNC_UPD_003
-				
+	
 				function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu {
 					// Local variables
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
@@ -7123,40 +7190,40 @@ module OneM2M_PermutationFunctions {
 					var integer v_latestResourceIndex;
 					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit);
-					
+		
 					v_create.primitiveContent.aE.announceTo := {PX_CSE_ID};
-   
+	   
 					//Test control
-
+	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
-
+	
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSEBase);	
-
+	
 					//Preamble
-
+	
 					v_ae1.start(f_cse_createResource(int2,v_create));					
 					f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));		
 					v_ae1.done;
-
+	
 					v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex));
 					f_cse_announcementProcedure_createHandler(p_createRequestAnnc);	
 					v_ae1.done;					
-
+	
 					v_latestResourceIndex := f_getLatestResourceIndex(v_ae1);
 					p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1);
-
+	
 					// Test Body
 					v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive));
-
+	
 					tc_ac.start;
 					alt {
 						[] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
-						
+			
 							v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier));
 							v_responsePrimitive.from_ := PX_CSE1_ID;
 							v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_;
@@ -7167,15 +7234,15 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 					v_ae1.done;
-
+	
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
-
+	
 					// Tear down
 					f_cf02DownCseSimuMaster();
-
+	
 				}//end f_CSE_ANNC_UPD_005
-			
+	
 			}//end group Update
 			
 			group Delete{
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index fe6450b4cbe305a440348decf9b9a2fa026c7e91..aaab42507236be69d203f89e1d329509cee87c74 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -7220,6 +7220,54 @@ module OneM2M_Testcases_CSE_Release_2 {
 				} //end group g_CSE_ANNC_CRE_009
 			} //end group Create
 			
+			group Retrieve {
+				
+				group g_CSE_ANNC_RET_001 {
+					
+					testcase TC_CSE_ANNC_RET_001_ACP() runs on Tester system CseSystem {
+						//Local variables
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 var template RequestPrimitive v_createRequest := m_createAcpBase;
+						 var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
+  
+						 v_ae1.start(f_CSE_ANNC_CRE_007_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
+						 v_ae1.done;
+					}
+					
+					testcase TC_CSE_ANNC_RET_001_CNT() runs on Tester system CseSystem {
+						 //Local variables
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 var template RequestPrimitive v_createRequest := m_createContainerBase;
+						 var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase;
+	  
+						 v_ae1.start(f_CSE_ANNC_RET_001(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_ae1.done;
+					}
+					
+					testcase TC_CSE_ANNC_RET_001_CIN() runs on Tester system CseSystem {
+						 //Local variables
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
+						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
+  
+						 v_ae1.start(f_CSE_ANNC_RET_001(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_ae1.done;
+					}
+					
+					testcase TC_CSE_ANNC_RET_001_GRP() runs on Tester system CseSystem {
+						 //Local variables
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 var template RequestPrimitive v_createRequest := m_createGroupBase;
+						 var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase;
+  
+						 v_ae1.start(f_CSE_ANNC_RET_001(int9, v_createRequestAnnc, v_createRequest));//Group
+						 v_ae1.done;
+					}
+					
+				} //end group g_CSE_ANNC_RET_001
+				
+			} //end group Retrieve
+			
 			group Update{
 
 				group g_CSE_ANNC_UPD_001{
@@ -7230,9 +7278,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;	
-						
+			
 						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID};					
-						
+			
 						v_cse1.start(f_CSE_ANNC_UPD_001(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy
 						v_cse1.done;
 					}
@@ -7243,7 +7291,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;	
-						
+			
 						v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID};
   
 						v_cse1.start(f_CSE_ANNC_UPD_001(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container
@@ -7256,7 +7304,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;	
-						
+			
 						v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID};
   
 						v_cse1.start(f_CSE_ANNC_UPD_001(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group
@@ -7264,7 +7312,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					}
 
 				}// end group g_CSE_ANNC_UPD_001
-				
+	
 				group g_CSE_ANNC_UPD_002{
 
 					testcase TC_CSE_ANNC_UPD_002_ACP() runs on Tester system CseSystem {
@@ -7273,9 +7321,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;	
-		
+
 						v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID};					
-		
+
 						v_cse1.start(f_CSE_ANNC_UPD_002(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy
 						v_cse1.done;
 					}
@@ -7286,7 +7334,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;	
-		
+
 						v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID};
   
 						v_cse1.start(f_CSE_ANNC_UPD_002(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container
@@ -7299,7 +7347,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;	
-		
+
 						v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID};
   
 						v_cse1.start(f_CSE_ANNC_UPD_002(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group
@@ -7307,9 +7355,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 					}
 
 				}// end group g_CSE_ANNC_UPD_002
-				
+	
 				group g_CSE_ANNC_UPD_003{
-		
+
 					testcase TC_CSE_ANNC_UPD_003_ACP() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
@@ -7322,7 +7370,7 @@ module OneM2M_Testcases_CSE_Release_2 {
   
 						v_ae1.start(f_CSE_ANNC_UPD_003(int1, v_createRequestAnnc, v_createRequest, v_updateRequest));//AccessControlPolicy
 						v_ae1.done;
-						
+			
 						if(getverdict == pass){
 							v_responsePrimitive := f_getResponsePrimitive(v_ae1);
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -7332,9 +7380,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 									}
 								}
 							}
-							
+				
 						}		
-							
+				
 					}
 
 					testcase TC_CSE_ANNC_UPD_003_CNT() runs on Tester system CseSystem {
@@ -7349,7 +7397,7 @@ module OneM2M_Testcases_CSE_Release_2 {
   
 						v_ae1.start(f_CSE_ANNC_UPD_003(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container
 						v_ae1.done;
-						
+			
 						if(getverdict == pass){
 							v_responsePrimitive := f_getResponsePrimitive(v_ae1);
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -7359,9 +7407,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 									}
 								}
 							}
-	
+
 						}	
-												
+									
 					}
 
 					testcase TC_CSE_ANNC_UPD_003_GRP() runs on Tester system CseSystem {
@@ -7376,7 +7424,7 @@ module OneM2M_Testcases_CSE_Release_2 {
   
 						v_ae1.start(f_CSE_ANNC_UPD_003(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group
 						v_ae1.done;
-						
+			
 						if(getverdict == pass){
 							v_responsePrimitive := f_getResponsePrimitive(v_ae1);
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
@@ -7391,9 +7439,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 					}
 
 				}// end group g_CSE_ANNC_UPD_003
-				
+	
 				group g_CSE_ANNC_UPD_005 {
-					
+		
 					testcase TC_CSE_ANNC_UPD_005() runs on Tester system CseSystem {
 						// Local variables
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
@@ -7402,16 +7450,16 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnncBase;
 						var Labels v_labels_1 := {"VALUE_1"};	
-		
+
 						v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID};
 						v_createRequest.primitiveContent.container.labels := v_labels_1;
   
 						v_cse1.start(f_CSE_ANNC_UPD_005(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container
 						v_cse1.done;
-		
+
 					} //end TC_CSE_ANNC_CRE_001
 				} // end group g_CSE_ANNC_CRE_001
-				
+	
 			}//end group Update
 			
 			group Delete{