Skip to content
Snippets Groups Projects
OneM2M_Templates.ttcn 131.53 KiB
/**
 *  Copyright Notification
 *  No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission.
 *  The copyright and the foregoing restriction extend to reproduction in all media.
 *  © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC).
 *  All rights reserved.
 *  
 *  @author     ETSI
 *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/branches/Release1/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
 *              $Id: OneM2M_Templates.ttcn 347 2017-08-11 08:48:20Z reinaortega $
 *  @desc       Module containing templates for oneM2M
 *
 */
module OneM2M_Templates {

	import from XSD all;
	import from OneM2M_Types all;
	import from OneM2M_TypesAndValues all;
	//import from OneM2M_AdditionalTypes all;
	import from OneM2M_Pixits all;
	//import from OneM2M_Functions all;

		
	/**
	 * @desc Get a converted to string random number 
	 * @param p_lower Lower limit 
	 * @param p_upper Upper limit
	 * @return Random number converted to string
	 * @verdict 
	 */
	function f_rnd(in integer p_lower, in integer p_upper) return charstring {
		
		return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower);	
	}


	/* Templates */
	
	group Primitives {
		/** 
		 * @desc Base template for request sending operations
		 * @param p_requestPrimitive
		 */
		template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
			primitive := { requestPrimitive := p_requestPrimitive},
			host := PX_SUT_ADDRESS,
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := PX_PROTOCOL_BINDING,
			serialization := PX_SERIALIZATION, 
			forcedFields := p_forcedFields
		};
    	
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
			primitive := { responsePrimitive := p_responsePrimitive},
			host := PX_SUT_ADDRESS,
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := PX_PROTOCOL_BINDING,
			serialization := PX_SERIALIZATION, 
			forcedFields := p_forcedFields
		};
		
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
		template (value) MsgOut m_httpResponse(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
			primitive := { responsePrimitive := p_responsePrimitive},
			host := PX_SUT_ADDRESS,
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := "HTTP",
			serialization := PX_SERIALIZATION, 
			forcedFields := p_forcedFields
		};
		
		template MsgIn mw_request(in template (present) RequestPrimitive p_requestPrimitive) := {
			primitive := { requestPrimitive := p_requestPrimitive}
		};
    	
		/** 
		 * @desc Base template for response receiving operations
		 * @param p_responsePrimitive
		 */
		template MsgIn mw_response(in template (present) ResponsePrimitive p_responsePrimitive := ?) := {
			primitive := { responsePrimitive := p_responsePrimitive}
		};
    	
	}//end of group primitives
	
	group RequestPrimitives { 
		
		group Retrieve {

			/**
			 * @desc Base RETRIEVE request primitive
			 * @param p_targetResourceAddress Target resource address
			 * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
				operation := int2,
				to_ := p_targetResourceAddress,
				from_ := p_originator,
				requestIdentifier := "m_retrieveResource" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := omit,
				role := 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
			};
			
			/**
			 * @desc Base Receive RETRIEVE request primitive
			 * @param p_targetResourceAddress Target resource address
			 */
			template RequestPrimitive mw_retrieveResource(XSD.ID p_targetResourceAddress) := {
				operation := int2,
				to_ := p_targetResourceAddress,
				from_ := ?,
				requestIdentifier := ?,
				resourceType := ?,
				primitiveContent := ?,
				role := *, 
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			};
        	
			/**
			 * @desc RETRIEVE request primitive for a single attribute in To field ("targetResourceAddress#AttributeName")
			 * @param p_targetResourceAddress Target resource address (including "#AttributeName")
			 * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveResourceAttributeToOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
				operation := int2,
				to_ := p_targetResourceAddress,
				from_ := p_originator,
				requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := omit, 
				role := 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
			};
        	
			/**
			 * @desc RETRIEVE request primtive containing the target attributes in the primitiveContent field
			 * @param p_targetResourceAddress Target resource address 
			 * @param p_attributeList Target attribute list
			 * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveResourceAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList, in XSD.ID p_originator) := {
				operation := int2,
				to_ := p_targetResourceAddress,
				from_ := p_originator,
				requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := {attributeList := p_attributeList},
				role := 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
			};
			
			/**
			  * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_filterCriteria FilterCriteria
			  * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveResourceFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
				filterCriteria := {
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := omit,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
					filterUsage := p_filterUsage, 
					limit := omit
				}
			};
			
			/**
			  * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_originator Originator (from)
			  * @param p_filterUsage FilterUsage
			  * @param p_labels Labels
			 */
			template (value) RequestPrimitive m_retrieveResourceFilterUsageOptionLabel(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage, in Labels p_labels) modifies m_retrieveResource := {
				requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel" & f_rnd(1, 1000000),
				filterCriteria := {
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := p_labels,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
					filterUsage := p_filterUsage, 
					limit := omit
				}
			};
			
			/**
			  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_filterCriteria FilterCriteria
			  * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
				filterCriteria := {
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := omit,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
					filterUsage := p_filterUsage,
					limit := omit
				},
				discoveryResultType := p_discResType
			};
			
			/**
				  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
				  * @param p_targetResourceAddress Target resource address 
				  * @param p_filterCriteria FilterCriteria
				  * @param p_originator Originator (from)
				 */
				template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := {
					requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
					filterCriteria := {
						createdBefore := omit,
						createdAfter := omit,
						modifiedSince := omit,
						unmodifiedSince := omit,
						stateTagSmaller := omit,
						stateTagBigger := omit,
						expireBefore := omit,
						expireAfter := omit,
						labels := omit,
						resourceType := omit,
						sizeAbove := omit,
						sizeBelow := omit,
						contentType_list := {},
						attribute_list := {},
						filterUsage := omit,
						limit := omit
					}
				};
			
		}//end group Retrieve

		group Update {
    		
			template (value) RequestPrimitive m_update := {
				operation := int3,
				to_ := "NotInitialized",
				from_ := "NotInitialized",
				requestIdentifier := "m_update",
				resourceType := omit,
				primitiveContent:= omit,
				role := 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
			};
			
						
			template RequestPrimitive mw_update(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
				operation := int3,
				to_ := p_to,
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := ?,
				primitiveContent:= ?,
				role := *, 
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			};
        	
			/**
			 * @desc Base UPDATE request primitive for Ae resource
			 */
			template (value) RequestPrimitive m_updateAeBase modifies m_update:= {
				requestIdentifier := "m_updateAe",
				primitiveContent:= {aE := m_contentUpdateAe}
			};
			
						
			/**
			 * @desc Reception template for update Ae resource
			 */
			template RequestPrimitive mw_updateAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := {
				resourceType := int2,
				primitiveContent:= {aE := ?}
			};
			 
        	
			/**
			 * @desc Base UPDATE request primitive for Container resource
			 */
			template (value) RequestPrimitive m_updateContainerBase modifies m_update:= {
				requestIdentifier := "m_updateContainer",
				primitiveContent:= {container := m_contentUpdateContainer}
			};
			
			/**
			 * @desc Base Reception template for update Container
			 */
			template RequestPrimitive mw_updateContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := {
				resourceType := int3,
				primitiveContent := {container := ?}
			}; 
			
			/**
			 * @desc Base UPDATE request primitive for ContentInstance resource
			 */
			template (value) RequestPrimitive m_updateContentInstanceBase modifies m_update:= {
				requestIdentifier := "m_updateContentInstance",
				primitiveContent:= {contentInstance := m_contentUpdateContentInstance}
			};
			
			/**
			 * @desc Base UPDATE request primitive for AccessControlPolicy resource
			 */        				
			template (value) RequestPrimitive m_updateAcpBase modifies m_update := {
				requestIdentifier := "m_updateAcp",
				primitiveContent:= {accessControlPolicy := m_contentUpdateAcp}
			};
			
			template (value) RequestPrimitive m_updateAcpPrivileges(in template(omit) SetOfAcrs p_privileges := omit, in template(omit) SetOfAcrs p_selfPrivileges := omit) modifies m_update := {
				requestIdentifier := "m_updateAcp",
				primitiveContent:= {accessControlPolicy := m_contentUpdateAcpPrivileges(p_privileges, p_selfPrivileges)}
			};
			
			/**
			 * @desc Base UPDATE request primitive for Group resource
			 */
			template (value) RequestPrimitive m_updateGroupBase modifies m_update := {
				requestIdentifier := "m_updateGroup",
				primitiveContent:= {group_ := m_contentUpdateGroup}
			};
			
			/**
			 * @desc Base UPDATE request primitive for CSEBase resource
			 */
			template (value) RequestPrimitive m_updateCSEBaseBase modifies m_update := {
				requestIdentifier := "m_updateGroup",
				primitiveContent:= {cSEBase := m_contentUpdateCSEBase}
			};
			
			/**
			 * @desc Base UPDATE request primitive for Schedule resource
			 */
			template (value) RequestPrimitive m_updateScheduleBase modifies m_update := {
				requestIdentifier := "m_updateSchedule",
				primitiveContent:= {schedule := m_contentUpdateSchedule}
			};
			
			/**
			 * @desc Base UPDATE request primitive for PollingChannel resource
			 */
			template (value) RequestPrimitive m_updatePollingChannelBase modifies m_update := {
				requestIdentifier := "m_updatePollingChannel",
				primitiveContent:= {pollingChannel := m_contentUpdatePollingChannel}
			};
			
			/**
			 * @desc Base UPDATE request primitive for Subscription resource
			 */
			template (value) RequestPrimitive m_updateSubscriptionBase modifies m_update := {
				requestIdentifier := "m_updateSubscription",
				primitiveContent:= {subscription := m_contentUpdateSubscription}
			};
			
			template (value) RequestPrimitive m_updateLocationPolicy(XSD.ID p_locResourceAddress, in template (omit) AcpType p_accessControlPolicyIds, in template (value) XSD.Duration p_locationUpdatePeriod) modifies m_update := {
				to_ 				:= p_locResourceAddress,
				requestIdentifier	:= "m_updateLocationPolicy",
				primitiveContent	:= {locationPolicy := m_contentUpdateLocationPolicy(p_accessControlPolicyIds, p_locationUpdatePeriod)}
			  };
        	
			template (value) RequestPrimitive m_updateNodeBase modifies m_update := {
				requestIdentifier := "m_updateNode",
				primitiveContent:= {node := m_contentUpdateNode}
			}
        	
			template (value) RequestPrimitive m_updateRemoteCSEBase modifies m_update := {
			   requestIdentifier := "m_updateRemoteCSEBase",
			   primitiveContent := {remoteCSE := m_contentUpdateRemoteCSE}
			}
        	
			template (value) RequestPrimitive m_updateAE modifies m_update := {
				requestIdentifier := "m_updateAE",
				primitiveContent := {aE := m_contentUpdateAe}
			}
        	
			template (value) RequestPrimitive m_updateAEAnnc(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_update:= {
				requestIdentifier := testcasename() & "-m_updateAEAnnc",
				resourceType := int10002,
				primitiveContent := {aEAnnc := m_contentUpdateAEAnnc(p_appId,p_stemId)}
			};
		}//end group Update
    	
		group Create {

			template (value) RequestPrimitive m_create := {
				operation := int1,
				to_ := "NotInitialized",
				from_ := "NotInitialized",
				requestIdentifier := testcasename() & "-m_create",
				resourceType := omit,
				primitiveContent := omit,
				role := 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
			};
        	
			/**
			 * @desc Base Reception template for create operation
			 */
			template RequestPrimitive mw_create(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
				operation := int1,
				to_ := p_to,
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := ?,
				primitiveContent := ?,
				role := *,
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			}
			
			
			/**
			 * @desc Base CREATE request primitive for AEAnnc resource
			 * @param p_accessControlPolicyIds
			 * @param p_to
			 * @param p_from
			 * @param p_appId
			 * @param p_stemId
			 */
			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_link) modifies m_create:= {
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := testcasename() & "-m_createAEAnnc",
				resourceType := int10002,
				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, p_link)}
			};
			
			/**
			 * @desc Reception template for CREATE AEAnnc
			 */
			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 := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}
			};

			template (value) RequestPrimitive m_createAe(XSD.ID p_appId, template (omit) AcpType p_accessControlPolicyIds := omit,template (omit) XSD.ID p_from := omit, template (omit) ResourceName p_resourceName :=  c_aeAuxName, in template (omit) PoaList p_poaList := omit) modifies m_create := {
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := testcasename() & "-m_createAe",
				resourceType := int2,
				primitiveContent := {aE := m_contentCreateAe(p_accessControlPolicyIds,p_resourceName, p_appId, p_poaList)}
			};
        	
			/**
			 * @desc Reception template for AE registration
			 */
			template RequestPrimitive mw_createAe(template XSD.ID p_from := *, template XSD.ID p_to := ?, template AE_optional p_ae := ?) modifies mw_create := {
				resourceType := int2,
				primitiveContent := {aE := p_ae}
			};  
			        	
			template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit) PoaList p_poaList) modifies m_create := {
				from_ := PX_AE1_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := testcasename() & "-m_createAe",
				resourceType := int2,
				primitiveContent := {aE := m_contentCreateAe(p_accessControlPolicyIds, c_aeAuxName, -, p_poaList)}
			};
        	
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource
			 */
			template (value) RequestPrimitive m_createAcpBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createAcp",
				resourceType := int1,
				primitiveContent := {accessControlPolicy := m_contentCreateAcp ()}
			};
				
			template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultAccessControlPolicyResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) modifies m_create := {
				to_ := p_parentResourceAddress,
				requestIdentifier := testcasename() & "-m_createAcp",
				resourceType := int1,
				primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_name, p_acor, p_allowedOperations)}
			};
        	
			/**
			 * @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 := {accessControlPolicyAnnc := mw_contentCreateAcpAnnc(-)}
			};
        	
       	
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
			 */
			template (value) RequestPrimitive m_createAcpAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) modifies m_create := {
				requestIdentifier := testcasename() & "-m_createAcpAux",
				resourceType := int1,
				primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}
			};
        	
			/*template (value) RequestPrimitive m_createCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) modifies m_create := {
				from_ := PX_SUPER_USER,
				requestIdentifier := testcasename() & "-m_createCSE" & f_rnd(1, 1000000),
				resourceType := int1,//FIXME Is this the value for CSEBase? In any case, this template is not used at all
				primitiveContent := {cSEBase := m_contentCreateCSEBase (p_serviceSubscribedAppRule)}
			};*/
			
			/**
			 * @desc Base CREATE request primitive for CSEBase resource
			 */
			template (value) RequestPrimitive m_createCSEBaseBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createCSEBase",
				resourceType := int5,
				primitiveContent := {cSEBase := m_contentCreateCSEBase}
			};
        	
       	
			/**
			 * @desc Base CREATE request primitive for Container resource
			 */
			template (value) RequestPrimitive m_createContainerBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createContainer",
				resourceType := int3,
				primitiveContent := {container := m_contentCreateContainer}
			};
			
			/**
			 * @desc Base CREATE request primitive for remoteCSE resource
			 */
			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE1_ID) modifies m_create := {
				requestIdentifier := testcasename() & "-m_createRemoteCSE",
				resourceType := int16,
				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
			};
			
			/**
			 * @desc Reception template for CREATE RemoteCSE
			 */
			template RequestPrimitive mw_createRemoteCSE(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int16,
				primitiveContent := {remoteCSE := ?}	//{remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
			};
			
			/**
			 * @desc Base reception template for CREATE RemoteCSE
			 */
			template RequestPrimitive mw_createRemoteCSEBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int16,
				primitiveContent := {remoteCSE := mw_contentCreateRemoteCSEBase}
			};
			
			/**
			 * @desc CREATE request primitive for Container resource wiht no resourceName provided
			 */
			template (value) RequestPrimitive m_createContainer_noResourceName modifies m_createContainerBase := {
				primitiveContent := {container := m_contentCreateContainer(omit)}
			};
	
			template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultContainerResourceName) modifies m_create := {
				to_ := p_parentResourceAddress,
				requestIdentifier := testcasename() & "-m_createContainer",
				resourceType := int3,
				primitiveContent := {container := m_contentCreateContainer(p_resourceName)}
			};
        	
			/**
			 * @desc Reception template for CREATE Container
			 */
			template RequestPrimitive mw_createContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int3,
				primitiveContent := {container := ?}
			};  
			
			/**
			 * @desc Base Reception template for CREATE ContainerAnnc
			 */
			template RequestPrimitive mw_createContainerAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10003,
				primitiveContent := {containerAnnc := mw_contentCreateContainerAnncBase}
			};
        	
			/**
			 * @desc Base CREATE request primitive for Content Instance resource
			 */
			template (value) RequestPrimitive m_createContentInstanceBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createContentInstance",
				resourceType := int4,
				primitiveContent := {contentInstance := m_contentCreateContentInstance}
			};
				
			/**
			 * @desc CREATE request primitive for Content Instance resource with no resourceName provided
			 */
			template (value) RequestPrimitive m_createContentInstance_noResourceName modifies m_createContentInstanceBase := {
				primitiveContent := {contentInstance := m_contentCreateContentInstance(omit)}
			};
    		
			template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := {
				to_ := p_parentResourceAddress,
				from_ := "admin:admin",
				requestIdentifier := testcasename() & "-m_createContentInstance",
				resourceType := int4,
				primitiveContent := {contentInstance := m_contentCreateContentInstance(-, p_primitiveContent)}
			};
    		
			/**
			 * @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 := {contentInstanceAnnc := ?}
			}; 
		
			/**
			 * @desc Reception template for CREATE ContentInstance
			 */
			template RequestPrimitive mw_createContentInstance(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int4,
				primitiveContent := {contentInstance := ?}
			}; 
			
			/**
			 * @desc Base Reception template for CREATE ContentInstanceAnnc
			 */
			template RequestPrimitive mw_createContentInstanceAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10014,
				primitiveContent := {contentInstanceAnnc := mw_contentCreateContentInstanceAnncBase}
			};  
			
			/**
			 * @desc Base CREATE request primitive for Delivery resource
			 */
			/*template (value) RequestPrimitive m_createDeliveryBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createDelivery" & f_rnd(1, 1000000),
				resourceType := int6,
				primitiveContent := {delivery := m_contentCreateDelivery()}
			};*/
        	    		
       	
			/**
			 * @desc Base CREATE request primitive for Group resource
			 */
			template (value) RequestPrimitive m_createGroupBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createGroup",
				resourceType := int9,
				primitiveContent := {group_ := m_contentCreateGroup (1, {"NotInitialized"}, omit, omit)}	//TODO: p_resourceId
			};
        	
			template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
															in template (value) ListOfURIs p_memberIds := {"NotInitialized"},
															in template (omit) AcpType p_accessControlPolicyIds,
															in template (omit) MemberType p_memberType := omit,
															in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
															in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
															in template (omit) XSD.String p_name := "MyGroup") modifies m_create := {
				requestIdentifier := testcasename() & "-m_createGroup",
				resourceType := int9,
				primitiveContent := {group_ := m_contentCreateGroup (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIds, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}	//TODO: p_resourceId
			};
        	
			/**
			 * @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 := {groupAnnc := ?}
			};  
			
			/**
			 * @desc Base Reception template for CREATE GroupAnnc
			 */
			template RequestPrimitive mw_createGroupAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10009,
				primitiveContent := {groupAnnc := mw_contentCreateGroupAnncBase}
			};
        	
			/**
			 * @desc Base CREATE request primitive for MgmtCmd resource
			 */
			template (value) RequestPrimitive m_createMgmtCmdBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createMgmtCmd",
				resourceType := int12,
				primitiveContent := {mgmtResource := m_contentCreateMgmtCmd (-,-)}
			};
			
			/**
			 * @desc Base CREATE request primitive for MgmtObj resource
			 */
			template (value) RequestPrimitive m_createMgmtObjBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createMgmtObj",
				resourceType := int13,
				primitiveContent := {mgmtResource := m_contentCreateMgmtObj (-,-)}
			};
        	
			/**
			 * @desc CREATE request primitive for MgmtObj resource
			 */
			template (value) RequestPrimitive m_createMgmtObj modifies m_create := {
				requestIdentifier := testcasename() & "-m_createMgmtObj",
				resourceType := int13,
				primitiveContent := {mgmtResource := 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 := {announcedMgmtResource := ?}
			};  
			
			/**
			 * @desc Base Reception template for CREATE MgmtObjAnnc
			 */
			template RequestPrimitive mw_createMgmtObjAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10013,
				primitiveContent := {announcedMgmtResource := mw_contentCreateMgmtObjAnncBase}
			};  
			
			/**
			 * @desc Base CREATE request primitive for Node resource
			 */
			template (value) RequestPrimitive m_createNodeBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createNode",
				resourceType := int14,
				primitiveContent := {node := m_contentCreateNode(-, -, -) }
			};
        	
			/**
			 * @desc CREATE request primitive for Node resource
			 */
			template (value) RequestPrimitive m_createNode modifies m_create := {
				requestIdentifier := testcasename() & "-m_createNode",
				resourceType := int14,
				primitiveContent := {node := 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 := {nodeAnnc := ?}
			};  
       	
			/**
			 * @desc Base CREATE request primitive for PollingChannel resource
			 */
			template (value) RequestPrimitive m_createPollingChannelBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createPollingChannel",
				resourceType := int15,
				primitiveContent := {pollingChannel := m_contentCreatePollingChannel (-)}
			};
        	
			template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_parentResourceAddress, in template (value)XSD.ID p_originatorId) modifies m_create := {
				to_ := p_parentResourceAddress,
				from_ := p_originatorId,
				requestIdentifier := testcasename() & "-m_createPollingChannel",
				resourceType := int15,
				primitiveContent := {pollingChannel := m_contentCreatePollingChannel ()}
			};
        	
			/**
			 * @desc Base CREATE request primitive for Schedule resource
			 */
			template (value) RequestPrimitive m_createScheduleBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createSchedule",
				resourceType := int18,
				primitiveContent := {schedule := m_contentCreateSchedule ({{"0 0 0,1,2 1 1 * *"}})}
			};
        	
			template (value) RequestPrimitive m_createSchedule(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ScheduleEntries p_scheduleElement ) modifies m_create := {
				to_ := p_parentResourceAddress,
				requestIdentifier := testcasename() & "-m_createSchedule",
				resourceType := int18,
				primitiveContent := {schedule := m_contentCreateSchedule (p_scheduleElement, p_name)}
			};
        	
			/**
			 * @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 := {scheduleAnnc := ?}
			};  
			
			/**
			 * @desc Base Reception template for CREATE ScheduleAnnc
			 */
			template RequestPrimitive mw_createScheduleAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10018,
				primitiveContent := {scheduleAnnc := mw_contentCreateScheduleAnncBase}
			};  
        	
			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedAppIDs, in ListOfM2MID p_allowedAEs) modifies m_create := {
				requestIdentifier := testcasename() & "-m_createServiceSubscribedAppRule",
				resourceType := int19,//FIXME Is this the correct value?
				primitiveContent := {serviceSubscribedAppRule := m_contentCreateServiceSubscribedAppRule (p_applicableCredIDs, p_allowedAppIDs, p_allowedAEs)}
			};
        	
			/**
			 * @desc Base CREATE request primitive for ServiceSubscribedAppRule Resource
			 */
			template (value) RequestPrimitive m_createServiceSubscribedAppRuleBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createServiceSubscribedAppRuleBase",
				resourceType := int19,
				primitiveContent := {serviceSubscribedAppRule := m_contentCreateServiceSubscribedAppRuleBase}
			};
       	
			/**
			 * @desc Base CREATE request primitive for Subscription resource
			 */
			template (value) RequestPrimitive m_createSubscriptionBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createSubscription",
				resourceType := int23,
				primitiveContent := {subscription := m_contentCreateSubscription ({"NotInitialized"})}
			};
        	
			template (value) RequestPrimitive m_createSubscription(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := {
				to_ := p_parentResourceAddress,
				requestIdentifier := testcasename() & "-m_createSubscription",
				resourceType := int23,
				primitiveContent := {subscription := m_contentCreateSubscription (p_notificationURI, p_name)}
			};
			
        	/**
			 * @desc Reception template for CREATE Subscription
			 */
			template RequestPrimitive mw_createSubscription(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int23,
				primitiveContent := {subscription := ?}
			};
        	
			template (value) RequestPrimitive m_createSubscriptionAdvanced(	XSD.ID p_parentResourceAddress, 
																		   in template (omit)  XSD.String p_name := omit,
																		   in template (value) ListOfURIs p_notificationURI,
																		   in template (omit) EventNotificationCriteria p_eventNotificationCriteria := omit,
																		   in template (omit) XSD.PositiveInteger p_expirationCounter := omit,
																		   in template (omit) BatchNotify p_batchNotify := omit,
																		   in template (omit) XSD.Boolean p_latestNotify := omit,
																		   in template (omit) XSD.AnyURI p_subscriberURI := omit,
																		   in template (omit) NotificationContentType p_notificationContentType := int1, 
																		   in template (omit) PendingNotification p_pendingNotification) modifies m_createSubscription := {
				primitiveContent := {subscription := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_name, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI, p_notificationContentType, p_pendingNotification)}
			};
        	
			/**
			 * @desc Base CREATE request primitive for Location Policy resource
			 */
			template (value) RequestPrimitive m_createLocationPolicyBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createLocationPolicy",
				resourceType := int10,
				primitiveContent := {locationPolicy := m_contentCreateLocationPolicyBase}
			};
        	
			template (value) RequestPrimitive m_createLocationPolicy(in template (value) LocationSource p_locationSource, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.Duration p_locationUpdatePeriod, in template (omit) NodeID p_locationTargetID, in template (omit) XSD.AnyURI p_locationServerAddress) modifies m_create := {
        		
				requestIdentifier	:= testcasename() & "-m_createLocationPolicy", //the requestIdentifier is supposed to be set similar as "C190XX7T/001"  by prepending the AE-ID-Stem and slash(‘/’) in front of it
				resourceType		:= int10,
				primitiveContent	:= {locationPolicy := m_contentCreateLocationPolicy(p_locationSource, p_accessControlPolicyIds, p_locationUpdatePeriod, p_locationTargetID, p_locationServerAddress) },
				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 := {locationPolicyAnnc := ?}
			}; 
			
			/**
			 * @desc Base Reception template for CREATE LocationPolicyAnnc
			 */
			template RequestPrimitive mw_createLocationPolicyAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10010,
				primitiveContent := {locationPolicyAnnc := mw_contentCreateLocationPolicyAnncBase}
			}; 
			
			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",
			  primitiveContent	:= {notification := m_contentCreateNotification(p_resourcePresentation, p_notifEventType, p_subscriptionReference, p_notifForwardingURI)},
			  resultContent		:= int1 //default
        	  
			};
			
			/**
			 * @desc Base CREATE request primitive for Stats Config resource
			 */
			template (value) RequestPrimitive m_createStatsConfigBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createStatsConfig",
				resourceType := int22,
				primitiveContent := {statsConfig := m_contentCreateStatsConfigBase}
			};
			
			/**
			 * @desc Base CREATE request primitive for Stats Config resource
			 */
			template (value) RequestPrimitive m_createStatsCollectBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createStatsCollect",
				resourceType := int21,
				primitiveContent := {statsCollect := m_contentCreateStatCollectBase}
			};
			
			/**
			 * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource
			 */
			template (value) RequestPrimitive m_createM2mServiceSubscriptionProfileBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createM2mServiceSubscriptionProfile",
				resourceType := int11,
				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileBase}
			};
			
		}//end group Create
    	
		group Delete {
    	
			template (value) RequestPrimitive m_delete(XSD.ID p_resourceAddress, in XSD.ID p_originator := PX_SUPER_AE_ID) := {
				operation := int4,
				to_ := p_resourceAddress,
				from_ := p_originator,
				requestIdentifier := testcasename() & "-m_deleteResource" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := omit, 
				role := 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
			};
			
			template RequestPrimitive mw_deleteRequest(template XSD.ID p_resourceAddress := ?, template XSD.ID p_from := *) := {
				operation := int4,
				to_ := p_resourceAddress,
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := *, 
				role := *, 
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			};
        	
		}//end group Delete
    	
		group Notify {
			
    		/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive m_notifyRequest := {
				operation := int5,
				to_ := "NotInitialized",
				from_ := omit,
				requestIdentifier := testcasename() & "-m_notifyRequest" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := {notification := m_contentCreateNotification_allOmit},
				role := 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
			};
			
			/**
			 * @desc Base NOTIFY Aggregated request primitive
			 */
			template RequestPrimitive m_notifyAggregatedRequest := {
				operation := int5,
				to_ := "NotInitialized",
				from_ := omit,
				requestIdentifier := testcasename() & "-m_notifyAggregatedRequest" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := {aggregatedNotification := {notification_list := {m_contentCreateNotification_allOmit,m_contentCreateNotification_allOmit}}},
				role := 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
			};
    		
    		/**
			* @desc Base NOTIFY request primitive
			*/
			template RequestPrimitive mw_notifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := {notification := mw_contentNotificationBase},
				role := *,
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive mw_aggregatedNotifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := { aggregatedNotification := ?},
				role := *,
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			
			template RequestPrimitive mw_notify(in template (present) Notification p_notification) modifies mw_notifyBase := {
				primitiveContent := {notification := p_notification}
			};
			

			
    		
		}//end of group Notify
	}//end group RequestPrimitives
	
	group ContentCreate {
		
		template PrimitiveContent m_primitiveContentAe(template AE_optional p_ae) := {
			aE := p_ae
		}
		
		template PrimitiveContent m_primitiveContentContainer(template Container_optional p_container) := {
			container := p_container
		}
		
		template PrimitiveContent m_primitiveContentContentInstance(template ContentInstance_optional p_contentInstance) := {
			contentInstance := p_contentInstance
		}
		            
        template PrimitiveContent m_primitiveContentCSEBase(template CSEBase_optional p_cSEBase) := {
	        cSEBase := p_cSEBase
		}
		
		template PrimitiveContent m_primitiveContentRemoteCSE(template RemoteCSE_optional p_remoteCSE) := {
			remoteCSE := p_remoteCSE
		}
		
		 template PrimitiveContent mw_primitiveContent := ?;
		 
		/**
		 * @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_link := omit) := {
			resourceName := omit,//O TODO 
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := p_labels,//O
			accessControlPolicyIDs := p_accessControlPolicyIds,//O
			expirationTime := omit,//O
			link := p_link,//M TODO Put the right value
			appName := omit,//O
			app_ID := p_appId,//M
			aE_ID := omit,//NP
			pointOfAccess := omit, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
			ontologyRef := omit,//O
			nodeLink := omit,//NP
			requestReachability := true,//M
			contentSerialization := omit,//O
			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
			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
			choice := omit//NA
		};	
		
		/**
		 * @desc Base primitiveContent for CREATE operation for AE resource
		 * @param p_name Resource name
		 * @param p_accessControlPolicyIds ACP IDs for the AE
		 */
		template (value) AE_optional m_contentCreateAe (in template (omit) AcpType p_accessControlPolicyIds, in template (omit)  XSD.String p_name := c_defaultAeResourceName, in template (omit) XSD.ID p_appId := PX_APP_ID, in template (omit) PoaList p_poaList) := {

			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
			announceTo := omit,//O
			announcedAttribute := omit,//O
			appName := omit,//O
			app_ID := p_appId,//M
			aE_ID := omit,//NP
			pointOfAccess := p_poaList, //O {"http://127.0.0.1:1400/monitor"},//{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
			ontologyRef := omit,//O
			nodeLink := omit,//NP
			requestReachability := true,//M
			contentSerialization := omit,//O
			choice := omit//NP
		};	
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for AccessControlPolicy resource
		 * @param p_name Resource name
		 * @param p_acor Allowed originators
		 * @param p_allowedOperations Allowed operations
		 */
		template (value) AccessControlPolicy_optional m_contentCreateAcp (in template (omit) XSD.String p_name := c_defaultAccessControlPolicyResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			privileges := {
				accessControlRule_list := {valueof(m_createAcr(p_acor, p_allowedOperations))}
			},//M
			selfPrivileges := {
				accessControlRule_list := {valueof(m_createAcr({"*"}, int63))}
			},//M
			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,
			accessControlContexts_list := {}
		}
    	
		/*template (value) CSEBase_optional m_contentCreateCSEBase (in template (value) ServiceSubscribedAppRule p_serviceSubscribedAppRule) := {
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			cseType := omit,
			cSE_ID := omit,
			supportedResourceType := omit,
			pointOfAccess := omit,
			nodeLink := omit,
			e2eSecInfo := omit, 
			choice := {
				choice_list := {{
				  serviceSubscribedAppRule := p_serviceSubscribedAppRule
				}}
			}
		}*/
		
		/**
		 * @desc Base primitiveContent for CREATE operation for CSEBase resource
		 * @param p_name Resource name
		 */
		template (value) CSEBase_optional m_contentCreateCSEBase (in template (omit) XSD.String p_name := c_defaultResourceName):= {
			resourceName := p_name,//O
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			cseType := omit,
			cSE_ID := omit,
			supportedResourceType := omit,
			pointOfAccess := omit,
			nodeLink := omit,
			choice := omit
		};
		
		/**
		 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
		 * @param p_name Resource name
		 */
		template (value) Delivery_optional m_contentCreateDelivery (in template (omit) XSD.String p_name := c_defaultDeliveryResourceName, 
																	in template (omit) AcpType p_accessControlPolicyIds,
																	in template (value) XSD.ID p_source,
																	in template (value) XSD.ID p_target,
																	in template (value) Timestamp p_lifespan,
																	in template (value) EventCat p_eventCat,
																	in template (value) DeliveryMetaData p_deliveryMetaData) := {
			
			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
			stateTag := omit,//NP
			source := p_source,//M
			target := p_target,//M
			lifespan := p_lifespan,//M
			eventCat := p_eventCat,//M
			deliveryMetaData := p_deliveryMetaData,//M
			aggregatedRequest := omit,//O
			choice := omit//NP
			
		};    
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for Group resource
		 * @param p_maxNrOfMembers Max number of members
		 * @param p_memberIds Member IDs
		 * @param p_accessControlPolicyIds ACP IDs for the Group
		 * @param p_name Resource name
		 */
		template (value) Group_optional m_contentCreateGroup (	in template (value) XSD.PositiveInteger p_maxNrOfMembers,
																in template (value) ListOfURIs p_memberIds,
																in template (omit) AcpType p_accessControlPolicyIds,
																in template (omit) MemberType p_memberType := omit,
																in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
																in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
																in template (omit) XSD.String p_name := c_defaultGroupResourceName) := {
			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
			announceTo := omit,//O
			announcedAttribute := omit,//O
			creator := omit,//O
			memberType := p_memberType,//O
			currentNrOfMembers := omit,//NP
			maxNrOfMembers := p_maxNrOfMembers,//M
			memberIDs := p_memberIds,//M
			membersAccessControlPolicyIDs := p_membersAccessControlPolicyIDs,//O
			memberTypeValidated := omit,//NP
			consistencyStrategy := p_consistencyStrategy,//O
			groupName := omit,//O
			choice := omit//NP
		};  
    	
		  /**
		  * @desc Base reception template of primitiveContent for CREATE operation for GroupAnnc resource
		  */
		  template GroupAnnc_optional mw_contentCreateGroupAnncBase := {
			  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 := ?,//MA
			  accessControlPolicyIDs := ?,//MA
			  expirationTime := ?,//MA M
			  link := ?,
			  memberType := *, //OA
			  currentNrOfMembers := *, //OA
			  maxNrOfMembers := *, //OA
			  memberIDs := *, //OA
			  membersAccessControlPolicyIDs := *, //OA
			  memberTypeValidated := *, //OA
			  consistencyStrategy := *, //OA
			  groupName := *, //OA
			  choice := omit //NA
		  };
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for MgmtObj resource
		 * @param p_name Resource name
		 * @param p_accessControlPolicyIds ACP IDs for the AE
		 */
		template (value) MgmtResource_optional m_contentCreateMgmtObj (in template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit)  XSD.String p_name := c_defaultMgmtObjResourceName) := {
			
			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
			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 MgmtCmd resource
		 * @param p_name Resource name
		 * @param p_accessControlPolicyIds ACP IDs for the AE
		 */
		template (value) MgmtResource_optional m_contentCreateMgmtCmd (in template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit)  XSD.String p_name := c_defaultMgmtCmdResourceName) := {
			
			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
			announceTo := omit,//O
			announcedAttribute := omit,//O
			mgmtDefinition := omit,//O
			objectIDs := omit,//O
			objectPaths := omit,//O
			description := omit//O
		};
		
		/**
		 * @desc Base reception template of primitiveContent for CREATE operation for MgmtObjAnnc resource
		 */
		template AnnouncedMgmtResource_optional mw_contentCreateMgmtObjAnncBase := {
			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 := ?,//MA
			accessControlPolicyIDs := ?,//MA
			expirationTime := ?,//MA M
			link := ?,
			mgmtDefinition := ?, //MA
			objectIDs := *, //OA
			objectPaths := *, //OA
			description := * //OA
		};
		
		/**
		 * @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_defaultNodeResourceName, 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
			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
		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
		 * @param p_name Resource name
		 */
		template (value) PollingChannel_optional m_contentCreatePollingChannel (in template (omit) XSD.String p_name := c_defaultPollingChannelResourceName) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit//O
		};   	   	
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for Schedule resource
		 * @param p_scheduleElement Schedule
		 * @param p_name Resource name
		 */
		template (value) Schedule_optional m_contentCreateSchedule (in template (value) ScheduleEntries p_scheduleElement,
																	in template (omit) XSD.String p_name := c_defaultScheduleResourceName) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			scheduleElement := p_scheduleElement,//M
			choice := omit//NP
		};  
    	
		/**
		 * @desc Base reception template of primitiveContent for CREATE operation for ScheduleAnnc resource
		 */
		template ScheduleAnnc_optional mw_contentCreateScheduleAnncBase := {
			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 := ?,//MA
			expirationTime := ?,//MA M
			link := ?,
			scheduleElement := * //OA
		};  	
    	
		template (value) ServiceSubscribedAppRule_optional m_contentCreateServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedAppIDs, in ListOfM2MID p_allowedAEs) := {
			resourceName := omit,//TODO TS-0004 7.4.29.1 2 Missing attribute
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			applicableCredIDs := p_applicableCredIDs,//O
			allowedApp_IDs := p_allowedAppIDs,//O
			allowedAEs := p_allowedAEs,//O
			choice := omit //O
		}
		
		/**
		 * @desc Base primitiveContent for CREATE operation for StatsConfig resource
		 * @param p_name Resource name
		 */
		template (value) StatsConfig_optional m_contentCreateStatsConfig (in template (omit) XSD.String p_name := c_defaultStatsConfigResourceName) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			creator := omit,//O
			choice := omit//O
		};  
    	

		/**
		 * @desc Base primitiveContent for CREATE operation for Subscription resource
		 * @param p_notificationURI Notification URI
		 * @param p_name Resource name
		 */
		template (value) Subscription_optional m_contentCreateSubscription (in template (value) ListOfURIs p_notificationURI,
																			in template (omit) XSD.String p_name := c_defaultSubscriptionResourceName) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			eventNotificationCriteria := omit,//O
			expirationCounter := omit,//O
			notificationURI := p_notificationURI,//M
			groupID := omit,//O
			notificationForwardingURI := omit,//O
			batchNotify := omit,//O
			rateLimit := omit,//O
			preSubscriptionNotify := omit,//O
			pendingNotification := omit,//O
			notificationStoragePriority := omit,//O
			latestNotify := omit,//O
			notificationContentType := omit, //O
			notificationEventCat := omit,//O
			creator := omit,//O
			subscriberURI := omit,//O
			choice := omit//NP
		};   	
    	
		template (value) Subscription_optional m_contentCreateSubscriptionAdvanced (in template (value) ListOfURIs p_notificationURI,
																					in template (omit)  XSD.String p_name := c_defaultSubscriptionResourceName,
																					in template (omit) EventNotificationCriteria p_eventNotificationCriteria,
																					in template (omit) XSD.PositiveInteger p_expirationCounter,
																					in template (omit) BatchNotify p_batchNotify,
																					in template (omit) XSD.Boolean p_latestNotify,
																					in template (omit) XSD.AnyURI p_subscriberURI,
																					in template (omit) NotificationContentType p_notificationContentType, 
																					in template (omit) PendingNotification p_pendingNotification) modifies m_contentCreateSubscription := {
			eventNotificationCriteria := p_eventNotificationCriteria,//O
			expirationCounter := p_expirationCounter,//O
			batchNotify := p_batchNotify,//O
			pendingNotification := p_pendingNotification,//O
			latestNotify := p_latestNotify,//O
			notificationContentType := p_notificationContentType, //TODO Set to omit once xsd is fixed,//O
			subscriberURI := p_subscriberURI//O
		}; 
		
		template (value) EventNotificationCriteria m_eventNotificationCriteria ( in EventNotificationCriteria.notificationEventType_list p_notificationEventType_list := {}, template (omit) EventNotificationCriteria.attribute p_attribute_list := omit) := { //the parameter should be a list of NotificationEventTypeEventType
			createdBefore := omit,
			createdAfter := omit,
			modifiedSince := omit,
			unmodifiedSince := omit,
			stateTagSmaller := omit,
			stateTagBigger := omit,
			expireBefore := omit,
			expireAfter := omit,
			sizeAbove := omit,
			sizeBelow := omit,
			operationMonitor_list := {},
			attribute := p_attribute_list, 
			notificationEventType_list := p_notificationEventType_list// TODO this list should be able to be omited see 9.6.8 (TS0001)
		};
        
		template (value) BatchNotify m_batchNotify (in XSD.NonNegativeInteger p_number, in XSD.Duration p_duration := "PT20S") := {
			number := p_number,
			duration := p_duration //TODO duration has to be set to 1s and match to the Duration regex 
		};
		//normaly duration can be omited
		
		
         	
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for ContentInstance resource
		 * @param p_primitiveContent Content for the ContentInstance
		 */
		template (value) ContentInstance_optional m_contentCreateContentInstance(in template (omit) XSD.String p_name := c_defaultContentInstanceResourceName, XSD.String p_primitiveContent := "AnyValue") := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			stateTag := omit,//NP
			creator := omit,//O
			contentInfo := "a",//O
			contentSize := omit,//NP
			ontologyRef := omit,//O
			content := p_primitiveContent//M
		};
			
		/**
		 * @desc Base primitiveContent for CREATE operation for ContentInstanceAnnc resource
		 * @param p_primitiveContent Content for the ContentInstanceAnnc
		 */
		template ContentInstanceAnnc_optional mw_contentCreateContentInstanceAnncBase := {
			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 := ?,//MA
			expirationTime := omit,//O NA
			link := omit, //O NA
			stateTag := *,// OA
			contentInfo := *,//OA
			contentSize := *,//OA
			ontologyRef := *,//OA
			content := * //OA
		};
		
		/**
		 * @desc Base primitiveContent for CREATE operation for Container resource
		 * @param p_name Resource name
		 */
		template (value) Container_optional m_contentCreateContainer (in template (omit) XSD.String p_name := c_defaultContainerResourceName):= {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			stateTag := omit,//NP
			creator := omit,//O
			maxNrOfInstances := omit,//O
			maxByteSize := omit,//O
			maxInstanceAge := omit,//O
			currentNrOfInstances := omit,//NP
			currentByteSize := omit,//NP
			locationID := omit,//O
			ontologyRef := omit,//O
			choice := omit//NP
		};
    	
		/**
		 * @desc Base primitiveContent for CREATE operation for RemoteCSE resource
		 * @param p_name Resource name
		 */
		template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE1_ID):= {
			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
			announceTo := omit,//O
			announcedAttribute := omit,//O
			cseType := omit,//O
			pointOfAccess := omit,//O
			cSEBase := valueof(p_cSEBase),//M
			cSE_ID := valueof(p_cSE_ID),//M
			m2M_Ext_ID := omit,//O
			trigger_Recipient_ID := omit,//O
			requestReachability := true,//M
			nodeLink := omit,//O
			choice := omit//O
		};
		
		/**
	  	* @desc Base reception template of primitiveContent for CREATE operation for remoteCSE resource
	  	*/
		template RemoteCSE_optional mw_contentCreateRemoteCSEBase := {
			resourceName := *,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//O
			announceTo := *,//O
			announcedAttribute := *,//O
			cseType := *,//O
			pointOfAccess := *,//O
			cSEBase := ?,//M
			cSE_ID := ?,//M
			m2M_Ext_ID := *,//O
			trigger_Recipient_ID := *,//O
			requestReachability := ?,//M
			nodeLink := *,//O
			choice := *//O
		};
    	
		/**
		* @desc Base reception template of primitiveContent for CREATE operation for ContainerAnnc resource
		*/
		template ContainerAnnc_optional mw_contentCreateContainerAnncBase := {
			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 := ?,//MA M
			accessControlPolicyIDs := ?,//MA
			expirationTime := ?,//MA M
			link := ?, //M
			stateTag := *,	//OA
			maxNrOfInstances := *,	//OA
			maxByteSize := *, //OA
			maxInstanceAge := *, //OA
			currentNrOfInstances := *, //OA
			currentByteSize := *, //OA
			locationID := *, //OA
			ontologyRef := *, //OA
			choice := omit //NA
		};
    	
		template (value) LocationPolicy_optional m_contentCreateLocationPolicy (in template (value) LocationSource p_locationSource, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.Duration p_locationUpdatePeriod, in template (omit) NodeID p_locationTargetID, in template (omit) XSD.AnyURI p_locationServerAddress) := {
			resourceName 				:= c_defaultLocationPolicyResourceName, //O
			resourceType				:= omit, //NP
			resourceID					:= omit, //NP
			parentID					:= omit, //NP
			creationTime				:= omit, //NP
			lastModifiedTime			:= omit, //NP
			labels 						:= PX_LABELS,//O
			accessControlPolicyIDs 	:= p_accessControlPolicyIds, //O
			expirationTime 			:= omit, //O
			announceTo 				:= omit, 				   //O
			announcedAttribute		:= omit, 			      //O
			locationSource 			:= p_locationSource, //M
			locationUpdatePeriod 		:= p_locationUpdatePeriod, //O
			locationTargetID 			:= p_locationTargetID, 	//O
			locationServer 			:= p_locationServerAddress,//O
			locationContainerID		:= omit,    		   //NP
			locationContainerName 	:= PX_LOCATION_CONTAINER_NAME,//O    		
			locationStatus				:= omit,              //NP
			choice 					:= omit  	         //NP
    	   	  	
		};
    	
		template (value) LocationPolicy_optional m_contentCreateLocationPolicyBase := {
				resourceName 				:= c_defaultLocationPolicyResourceName, //O
				resourceType				:= omit, //NP
				resourceID					:= omit, //NP
				parentID					:= omit, //NP
				creationTime				:= omit, //NP
				lastModifiedTime			:= omit, //NP
				labels 						:= PX_LABELS,//O
				accessControlPolicyIDs 	:= omit, //O
				expirationTime 			:= omit, //O
				announceTo 				:= omit, 				   //O
				announcedAttribute		:= omit, 			      //O
				locationSource 			:= omit, //M
				locationUpdatePeriod 		:= omit, //O
				locationTargetID 			:= omit, 	//O
				locationServer 			:= omit,//O
				locationContainerID		:= omit,    		   //NP
				locationContainerName 	:= PX_LOCATION_CONTAINER_NAME,//O    		
				locationStatus				:= omit,              //NP
				choice 					:= omit  	         //NP
			};
    	
	  /**
	  * @desc Base reception template of primitiveContent for CREATE operation for LocationPolicyAnnc resource
	  */
	  template LocationPolicyAnnc_optional mw_contentCreateLocationPolicyAnncBase := {
		  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 := ?,//MA
		  accessControlPolicyIDs := ?,//MA
		  expirationTime := ?,//MA M
		  link := ?,
		  locationSource := *, //OA
		  locationUpdatePeriod := *, //OA
		  locationTargetID := *, //OA
		  locationServer := *, //OA
		  locationContainerID := *, //OA
		  locationContainerName := *, //OA
		  locationStatus := *	//OA
	  };
    	
		template (value) Notification m_contentCreateNotification (in template (value) Representation p_resourcePresentation, 
																	in template (omit) NotificationEventType p_notifEventType, 
																	in template (omit) XSD.AnyURI p_subReference, 
																	in template (omit) XSD.AnyURI p_notifForwardingURI) := {
		  notificationEvent := {
			representation := p_resourcePresentation,
			operationMonitor := {
				operation := omit,
				originator := omit
			},
			notificationEventType := p_notifEventType    	    
		  },
		  verificationRequest := omit,
		  subscriptionDeletion := omit,
		  subscriptionReference := p_subReference,
		  creator := omit,
		  notificationForwardingURI := p_notifForwardingURI
		};
		
		template (value) Notification m_contentCreateNotification_allOmit := {
		  notificationEvent := {
			representation := omit,
			operationMonitor := {
				operation := omit,
				originator := omit
			},
			notificationEventType := omit    	    
		  },
		  verificationRequest := omit,
		  subscriptionDeletion := omit,
		  subscriptionReference := omit,
		  creator := omit,
		  notificationForwardingURI := omit
		};
		
		/**
			 * @desc Base primitiveContent for CREATE operation for StatConfig resource
			 * @param p_primitiveConten t Content for the StatConfig
			 */
		template StatsConfig_optional m_contentCreateStatsConfigBase := {
			resourceName 				:= c_defaultStatsConfigResourceName, //O
			resourceType				:= omit, //NP
			resourceID					:= omit, //NP
			parentID					:= omit, //NP
			creationTime				:= omit, //NP
			lastModifiedTime			:= omit, //NP
			labels 						:= PX_LABELS,//O
			accessControlPolicyIDs 	:= omit, //O
			expirationTime 			:= omit, //O
			creator                 := omit,
			choice 					:= omit  	         //NP
		};
		
		/**
			 * @desc Base primitiveContent for CREATE operation for StatCollect resource
			 * @param p_primitiveContent Content for the StatCollect
			 */
		template StatsCollect_optional m_contentCreateStatCollectBase := {
			resourceName 				:= c_defaultStatsCollectResourceName, //O
			resourceType				:= omit, //NP
			resourceID					:= omit, //NP
			parentID					:= omit, //NP
			creationTime				:= omit, //NP
			lastModifiedTime			:= omit, //NP
			labels 						:= PX_LABELS,//O
			accessControlPolicyIDs 	:= omit, //O
			expirationTime 			:= omit, //O
			creator                 := omit,
			statsCollectID          := omit,
			collectingEntityID      := omit,
			collectedEntityID       := omit,
			statsRuleStatus         := omit,
			statModel               := omit,
			collectPeriod           := omit,
			eventID                 := omit,
			choice 					:= omit  	         //NP
		};
		
		/**
			 * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource
			 * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile
			 */
		template M2mServiceSubscriptionProfile_optional m_contentCreatem2mServiceSubscriptionProfileBase := {
			resourceName 				:= c_defaultm2mServiceSubscriptionProfileResourceName, //O
			resourceType				:= omit, //NP
			resourceID					:= omit, //NP
			parentID					:= omit, //NP
			creationTime				:= omit, //NP
			lastModifiedTime			:= omit, //NP
			labels 						:= PX_LABELS,//O
			accessControlPolicyIDs 	:= omit, //O
			expirationTime 			:= omit, //O
			choice 					:= omit  	         //NP
		};
		
		/**
		  * @desc Base primitiveContent for CREATE operation for ServiceSubscribedAppRule_optional resource
		  * @param p_primitiveContent Content for the ServiceSubscribedAppRule_optional
		 */
		template ServiceSubscribedAppRule_optional m_contentCreateServiceSubscribedAppRuleBase := {
			resourceName 				:= c_defaultServiceSubscribedAppRuleResourceName, //O
			resourceType				:= omit, //NP
			resourceID					:= omit, //NP
			parentID					:= omit, //NP
			creationTime				:= omit, //NP
			lastModifiedTime			:= omit, //NP
			labels 						:= PX_LABELS,//O
			accessControlPolicyIDs 	:= omit, //O
			expirationTime 			:= omit, //O
			applicableCredIDs       := omit,
			allowedApp_IDs          := omit,
			allowedAEs              := omit,
			choice 					:= omit  	         //NP   
		};
		
		template ServiceSubscribedNode_optional m_contentServiceSubscribedNode := {
			resourceName 			:= "MyServiceServiceSubscribedNodeResource", //O
			resourceType 			:= omit, //M
			resourceID 				:= omit, //M
			parentID 				:= omit, //M
			creationTime 			:= omit, //M
			lastModifiedTime 		:= omit, //M
			labels 					:= omit, //O
			accessControlPolicyIDs 	:= omit, //O
			expirationTime 			:= omit, //M
			nodeID 					:= omit, //M
			cSE_ID 					:= omit, //O
			deviceIdentifier 		:= omit, //M
			ruleLinks 				:= omit, //O
			choice 					:= omit //O
		};
	}//end group ContentCreate
	
	group ContentUpdate {
		
		/**
		 * @desc Base primitiveContent for UPDATE operation for AE resource
		 */
		template (value) AE_optional m_contentUpdateAe := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			appName := omit,//O
			app_ID := omit,//NP
			aE_ID := omit,//NP
			pointOfAccess := omit,//O
			ontologyRef := omit,//O
			nodeLink := omit,//NP
			requestReachability := omit,//O
			contentSerialization := omit,//O
			choice := omit//NP
		};	
    	
		/**
		 * @desc Base primitiveContent for UPDATE operation for AccessControlPolicy resource
		 */
		template (value) AccessControlPolicy_optional m_contentUpdateAcp := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			privileges := omit,//O
			selfPrivileges := omit,//O
			choice := omit //NP
		};
		
		template (value) AccessControlPolicy_optional m_contentUpdateAcpPrivileges(in template(omit) SetOfAcrs p_privileges, in template(omit) SetOfAcrs p_selfPrivileges) modifies m_contentUpdateAcp := {
			privileges := p_privileges,//O
			selfPrivileges := p_selfPrivileges//O
		};
    	
		/**
		 * @desc Base primitiveContent for UPDATE operation for Group resource
		 */
		template (value) Group_optional m_contentUpdateGroup := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			creator := omit,//NP
			memberType := omit,//NP
			currentNrOfMembers := omit,//NP
			maxNrOfMembers := omit,//O
			memberIDs := omit,//O
			membersAccessControlPolicyIDs := omit,//O
			memberTypeValidated := omit,//NP
			consistencyStrategy := omit,//NP
			groupName := omit,//O
			choice := omit//NP

		};
		
		/**
		 * @desc Base primitiveContent for UPDATE operation for CSEBase resource
		 */
		template (value) CSEBase_optional m_contentUpdateCSEBase := {
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			cseType := omit,
			cSE_ID := omit,
			supportedResourceType := omit,
			pointOfAccess := omit,
			nodeLink := omit,
			choice := omit

		};
    	
		/**
		 * @desc Base primitiveContent for UPDATE operation for PollingChannel resource
		 */
		template (value) PollingChannel_optional m_contentUpdatePollingChannel := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit//O
		};
    	
		/**
		 * @desc Base primitiveContent for UPDATE operation for Schedule resource
		 */
		template (value) Schedule_optional m_contentUpdateSchedule := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			scheduleElement := omit,//O
			choice := omit//NP
		};
    	
		/**
		 * @desc Base primitiveContent for UPDATE operation for Subscription resource
		 */
		template (value) Subscription_optional m_contentUpdateSubscription := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			eventNotificationCriteria := omit,//O
			expirationCounter := omit,//O
			notificationURI := omit,//O
			groupID := omit,//O
			notificationForwardingURI := omit,//O
			batchNotify := omit,//O
			rateLimit := omit,//O
			preSubscriptionNotify := omit,//NP
			pendingNotification := omit,//O
			notificationStoragePriority := omit,//O
			latestNotify := omit,//O
			notificationContentType := omit,//O
			notificationEventCat := omit,//O
			creator := omit,//NP
			subscriberURI := omit,//NP
			choice := omit//NP
		};
				
		/**
		 * @desc Base primitiveContent for UPDATE operation for Container resource
		 */
		template (value) Container_optional m_contentUpdateContainer := {
			resourceName := omit,//NP
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			stateTag := omit,//NP
			creator := omit,//NP
			maxNrOfInstances := omit,//O
			maxByteSize := omit,//O
			maxInstanceAge := omit,//O
			currentNrOfInstances := omit,//NP
			currentByteSize := omit,//NP
			locationID := omit,//O
			ontologyRef := omit,//O
			choice := omit//NP
		};
		
		/**
		 * @desc Base primitiveContent for UPDATE operation for ContentInstance resource
		 */
		template (value) ContentInstance_optional m_contentUpdateContentInstance := {
			resourceName := omit,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			stateTag := omit,//NP
			creator := omit,//O
			contentInfo := omit,//O
			contentSize := omit,//NP
			ontologyRef := omit,//O
			content := omit //M
		};
		
		template (value) LocationPolicy_optional m_contentUpdateLocationPolicy (in template (omit) AcpType p_accessControlPolicyIds, in template (value) XSD.Duration p_locationUpdatePeriod) := {
			resourceName 			:= omit,//NP
			resourceType			:= omit,//NP
			resourceID				:= omit,//NP
			parentID				:= omit,//NP
			creationTime			:= omit,//NP
			lastModifiedTime		:= omit,//NP
			labels 					:= PX_LABELS,//O
			accessControlPolicyIDs 	:= p_accessControlPolicyIds,//O
			expirationTime 			:= omit,//O    	  	
			announceTo 				:= omit,//O
			announcedAttribute		:= omit,//O
			locationSource 			:= omit,//NP
			locationUpdatePeriod 	:= p_locationUpdatePeriod, //O
			locationTargetID 		:= omit, //NP
			locationServer 			:= omit, //NP
			locationContainerID		:= omit, //NP  
			locationContainerName 	:= PX_LOCATION_CONTAINER_NAME, //O    		 		
			locationStatus			:= omit, //NP
			choice 					:= omit  //NP	   	  	
		};
    	
		template (value) Node_optional m_contentUpdateNode := {
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			expirationTime := omit,
			announceTo := omit,
			announcedAttribute := omit,
			nodeID := omit,
			hostedCSELink := omit,
			choice := omit
		}
    	
		template (value) RemoteCSE_optional m_contentUpdateRemoteCSE := {
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			expirationTime := omit,
			announceTo := omit,
			announcedAttribute := omit,
			cseType := omit,
			pointOfAccess := omit,
			cSEBase := omit,
			cSE_ID := omit,
			m2M_Ext_ID := omit,
			trigger_Recipient_ID := omit,
			requestReachability := omit,
			nodeLink := omit,
			choice := omit
		}
    	
		template (value) AEAnnc_optional m_contentUpdateAEAnnc (template (omit) XSD.ID p_appId := omit, template (omit) XSD.ID p_stemId := omit) := {
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			expirationTime := omit,
			link := omit,
			appName := omit,
			app_ID := p_appId,
			aE_ID := omit,
			pointOfAccess := omit,
			ontologyRef := omit,
			nodeLink := omit,
			requestReachability := omit,
			contentSerialization := omit,
			choice := omit
		}
 		
	}//end group ContentUpdate
	
	group RequestContent {
		
		group CreateRequest {
		
		}
		
		group UpdateRequest {
		
			template AE_optional mw_contentAeUpdateRequest modifies mw_contentAe_any := {
				resourceName := omit,//NP
				resourceType := omit,//NP
				resourceID := omit,//NP
				parentID := omit,//NP
				creationTime := omit,//NP
				lastModifiedTime := omit,//NP
				app_ID := omit,//NP
				aE_ID := omit//NP
			};
            
            template Container_optional mw_contentContainerUpdateRequest modifies mw_contentContainer_any := {
				resourceName := omit,//NP
				resourceType := omit,//NP
				resourceID := omit,//NP
				parentID := omit,//NP
				creationTime := omit,//NP
				lastModifiedTime := omit//NP
			};
			
		}//End of group UpdateRequest
		
	 }//end of group RequestContent
	
	group ResponseContent {
		
		template AE_optional mw_contentAeBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			appName := *,//O
			app_ID := ?,//M
			aE_ID := ?,//M
			pointOfAccess := *,//O
			ontologyRef := *,//O
			nodeLink := *,//O
			requestReachability := ?,//M
			contentSerialization := *,//O
			choice := *//O
		};
    	
		template AE_optional m_contentAe_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//O
			appName := omit,//O
			app_ID := omit,//M
			aE_ID := omit,//M
			pointOfAccess := omit,//O
			ontologyRef := omit,//O
			nodeLink := omit,//O
			requestReachability := omit,//M
			contentSerialization := omit,//O
			choice := omit//O
		};
		
		template AE_optional mw_contentAe_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			appName := *,//O
			app_ID := *,//M
			aE_ID := *,//M
			pointOfAccess := *,//O
			ontologyRef := *,//O
			nodeLink := *,//O
			requestReachability := *,//M
			contentSerialization := *,//O
			choice := *//O
		};
    	
		template AccessControlPolicy_optional mw_contentAcpBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			privileges := ?,//M
			selfPrivileges := ?,//M
			choice := *//O
		};
		
		template AccessControlPolicy_optional mw_contentAcp_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			expirationTime := *,//M
			announceTo := *,//O
			announcedAttribute := *,//M
			privileges := *,//M
			selfPrivileges := *,//M
			choice := *//O
		}
		
		template AccessControlPolicy_optional m_contentAcp_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			privileges := omit,//M
			selfPrivileges := omit,//M
			choice := omit//O
		}
		
		template LocationPolicy_optional m_contentLocationPolicy_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//O
			locationSource := omit,//M
			locationUpdatePeriod := omit,//O
			locationTargetID := omit,//O
			locationServer := omit,//O
			locationContainerID := omit,//O
			locationContainerName := omit,//O
			locationStatus := omit,//M
			choice := omit//O
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc1 modifies mw_contentAcpBase := {
			choice := omit	//O
		}
		
		//TODO
		template XSD.AnyURI mw_contentAcp_rc2 := ?;
		
		template Resource mw_contentAcp_rc3 := {
			choice := {accessControlPolicy := ?},
			uRI := ? 	
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc4 modifies mw_contentAcpBase := {
			choice := {subscription_list := ?}	//O
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc5 modifies mw_contentAcpBase := {
			choice := {childResource_list := ?}	//O
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc6 modifies mw_contentAcpBase := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			privileges := omit,//M
			selfPrivileges := omit,//M
			choice := {childResource_list := ?}//O
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc7 modifies mw_contentAcpBase := {
			
		}
		
		template AccessControlPolicy_optional mw_contentAcp_rc8 modifies m_contentAcp_allOmit := {
			choice := {childResource_list := ?}	//O
		}
    	
		template Group_optional mw_contentGroupBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			creator := *,//O
			memberType := ?,//M
			currentNrOfMembers := ?,//M
			maxNrOfMembers := ?,//M
			memberIDs := ?,//M
			membersAccessControlPolicyIDs := *,//O
			memberTypeValidated := *,//O
			consistencyStrategy := *,//O
			groupName := *,//O
			choice := *//O
		};
		
		template Group_optional mw_contentGroup_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//M
			announceTo := *,//O
			announcedAttribute := *,//M
			creator := *,//O
			memberType := *,//M
			currentNrOfMembers := *,//M
			maxNrOfMembers := *,//M
			memberIDs := *,//M
			membersAccessControlPolicyIDs := *,//O
			memberTypeValidated := *,//M
			consistencyStrategy := *,//O
			groupName := *,//O
			choice := *//O
		}
		
		template Group_optional m_contentGroup_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			creator := omit,//O
			memberType := omit,//M
			currentNrOfMembers := omit,//M
			maxNrOfMembers := omit,//M
			memberIDs := omit,//M
			membersAccessControlPolicyIDs := omit,//O
			memberTypeValidated := omit,//M
			consistencyStrategy := omit,//O
			groupName := omit,//O
			choice := omit//O
		}
		
		template Group_optional mw_contentGroup_rc1 modifies mw_contentGroupBase := {
			choice := omit	//O
		}
		
		template XSD.AnyURI mw_contentGroup_rc2 := ?; 
		
		template Resource  mw_contentGroup_rc3 := {
			choice := {group_ := ?},
			uRI := ?
		}
		
		template Group_optional mw_contentGroup_rc4 modifies mw_contentGroupBase := {
			choice := {subscription_list := ?}	//O
		}
		
		template Group_optional mw_contentGroup_rc5 modifies mw_contentGroupBase := {
			choice := {childResource_list := ?}	//O
		}
		
		template Group_optional mw_contentGroup_rc6 modifies mw_contentGroupBase := { 
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			creator := omit,//O
			memberType := omit,//M
			currentNrOfMembers := omit,//M
			maxNrOfMembers := omit,//M
			memberIDs := omit,//M
			membersAccessControlPolicyIDs := omit,//O
			memberTypeValidated := omit,//M
			consistencyStrategy := omit,//O
			groupName := omit,//O
			choice := {childResource_list := ?}//O
		}
		
		template Group_optional mw_contentGroup_rc7 modifies mw_contentGroupBase := {
			
		}
		
		template Group_optional mw_contentGroup_rc8 modifies m_contentGroup_allOmit := {
			choice := {childResource_list := ?}	//O
		}
		
		template MgmtCmd_optional m_contentMgmtCmd_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			description := omit,//O
			cmdType := omit,//M
			execReqArgs := omit,//O
			execEnable := omit,//M
			execTarget := omit,//M
			execMode := omit,//O
			execFrequency := omit,//O
			execDelay := omit,//O
			execNumber := omit,//O
			choice := omit//M
		}
    	
		template PollingChannel_optional mw_contentPollingChannelBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			expirationTime := ?//M
		};
		
		template PollingChannel_optional mw_contentPollingChannel_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			expirationTime := *//M
		};
		
		template PollingChannel_optional m_contentPollingChannel_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			expirationTime := omit//M
		};
		
		template PollingChannel_optional mw_contentPollingChannel_rc1 modifies mw_contentPollingChannelBase := {
		}
		
		template XSD.AnyURI mw_contentPollingChannel_rc2 := ?; 
		
		template Resource  mw_contentPollingChannel_rc3 := {
			choice := {pollingChannel := ?},
			uRI := ?
		}
		
		template PollingChannel_optional mw_contentPollingChannel_rc4 modifies mw_contentPollingChannelBase := {
		}
		
		template PollingChannel_optional mw_contentPollingChannel_rc5 modifies mw_contentPollingChannelBase := {
		}
		
		template PollingChannel_optional mw_contentPollingChannel_rc6 modifies mw_contentPollingChannelBase := { 
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			expirationTime := *//M
		}
		
		template RemoteCSE_optional m_contentRemoteCSE_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//O
			cseType := omit,//O
			pointOfAccess := omit,//O
			cSEBase := omit,//M
			cSE_ID := omit,//M
			m2M_Ext_ID := omit,//O
			trigger_Recipient_ID := omit,//O
			requestReachability := omit,//M
			nodeLink := omit,//O
			choice := omit//O
		};
		
		template RemoteCSE_optional mw_contentRemoteCSEBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			cseType := *,//O
			pointOfAccess := *,//O
			cSEBase := ?,//M
			cSE_ID := ?,//M
			m2M_Ext_ID := *,//O
			trigger_Recipient_ID := *,//O
			requestReachability := ?,//M
			nodeLink := *,//O
			choice := *//O
		};
		
		template Schedule_optional mw_contentScheduleBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			scheduleElement := ?,//M
			choice := *//O
		};
		
		template Schedule_optional mw_contentSchedule_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			expirationTime := *,//M
			announceTo := *,//O
			announcedAttribute := *,//M
			scheduleElement := *,//M
			choice := *//O
		}
		
		template Schedule_optional m_contentSchedule_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			scheduleElement := omit,//M
			choice := omit//O
		}
		
		template Schedule_optional mw_contentSchedule_rc1 modifies mw_contentScheduleBase := {
			choice := omit	//O
		}
		
		template XSD.AnyURI mw_contentSchedule_rc2 := ?; 
		
		template Resource mw_contentSchedule_rc3 := {
			choice := {schedule := ?},
			uRI := ?
		}
		
		template Schedule_optional mw_contentSchedule_rc4 modifies mw_contentScheduleBase := {
			choice := {choice_list := ?}	//O
		}
		
		template Schedule_optional mw_contentSchedule_rc5 modifies mw_contentScheduleBase := {
			choice := {childResource_list := ?}	//O
		}
		
		template Schedule_optional mw_contentSchedule_rc6 modifies mw_contentScheduleBase := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			scheduleElement := omit,//M
			choice := {childResource_list := ?}//O
		}
		
		template Schedule_optional mw_contentSchedule_rc7 modifies mw_contentScheduleBase := {
			
		}
		
		template Schedule_optional mw_contentSchedule_rc8 modifies m_contentSchedule_allOmit := {
			choice := {childResource_list := ?}	//O
		}
		
		template StatsCollect_optional m_contentStatsCollect_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			creator := omit,//O
			statsCollectID := omit,//M
			collectingEntityID := omit,//M
			collectedEntityID := omit,//M
			statsRuleStatus := omit,//M
			statModel := omit,//M
			collectPeriod := omit,//O
			eventID := omit,//O
			choice := omit//M
		}
		
		template StatsConfig_optional m_contentStatsConfig_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			creator := omit,//O
			choice := omit//M
		}
    	
		template Subscription_optional mw_contentSubscriptionBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := ?,//M
			eventNotificationCriteria := *,//O
			expirationCounter := *,//O
			notificationURI := ?,//M
			groupID := *,//O
			notificationForwardingURI := *,//O
			batchNotify := *,//O
			rateLimit := *,//O
			preSubscriptionNotify := *,//O
			pendingNotification := *,//O
			notificationStoragePriority := *,//O
			latestNotify := *,//O
			notificationContentType := *,//O
			notificationEventCat := *,//O
			creator := *,//O
			subscriberURI := *,//O
			choice := *//O
		};
		template Subscription_optional mw_contentSubscription_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//M
			eventNotificationCriteria := *,//O
			expirationCounter := *,//O
			notificationURI := *,//M
			groupID := *,//O
			notificationForwardingURI := *,//O
			batchNotify := *,//O
			rateLimit := *,//O
			preSubscriptionNotify := *,//O
			pendingNotification := *,//O
			notificationStoragePriority := *,//O
			latestNotify := *,//O
			notificationContentType := *,//M
			notificationEventCat := *,//O
			creator := *,//O
			subscriberURI := *,//O
			choice := *//O
		}
		
		template Subscription_optional m_contentSubscription_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			eventNotificationCriteria := omit,//O
			expirationCounter := omit,//O
			notificationURI := omit,//M
			groupID := omit,//O
			notificationForwardingURI := omit,//O
			batchNotify := omit,//O
			rateLimit := omit,//O
			preSubscriptionNotify := omit,//O
			pendingNotification := omit,//O
			notificationStoragePriority := omit,//O
			latestNotify := omit,//O
			notificationContentType := omit,//M
			notificationEventCat := omit,//O
			creator := omit,//O
			subscriberURI := omit,//O
			choice := omit//O
		}
		
		template Subscription_optional m_contentSubscription modifies m_contentSubscription_allOmit := {
			resourceType := int23	//M
		}
		
		template Subscription_optional mw_contentSubscription_rc1 modifies mw_contentSubscriptionBase := {
			choice := omit	//O
		}
		
		template XSD.AnyURI mw_contentSubscription_rc2 := ?;  
		
		template Resource mw_contentSubscription_rc3 := {
			choice := {subscription := ?},
			uRI := ?
		}
		
		template Subscription_optional mw_contentSubscription_rc4 modifies mw_contentSubscriptionBase := {
			choice := {choice_list := ?}	//O
		}
		
		template Subscription_optional mw_contentSubscription_rc5 modifies mw_contentSubscriptionBase := {
			choice := {childResource_list := ?}	//O
		}
		
		template Subscription_optional mw_contentSubscription_rc6 modifies mw_contentSubscriptionBase := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			eventNotificationCriteria := omit,//O
			expirationCounter := omit,//O
			notificationURI := omit,//M
			groupID := omit,//O
			notificationForwardingURI := omit,//O
			batchNotify := omit,//O
			rateLimit := omit,//O
			preSubscriptionNotify := omit,//O
			pendingNotification := omit,//O
			notificationStoragePriority := omit,//O
			latestNotify := omit,//O
			notificationContentType := omit,//M
			notificationEventCat := omit,//O
			creator := omit,//O
			subscriberURI := omit,//O
			choice := {childResource_list := ?}//O
		}
		
		template Subscription_optional mw_contentSubscription_rc7 modifies mw_contentSubscriptionBase := {
			
		}
		
		template Subscription_optional mw_contentSubscription_rc8 modifies m_contentSubscription_allOmit := {
			choice := {childResource_list := ?}	//O
		}
    	
		template ContentInstance_optional mw_contentContentInstanceBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			stateTag := ?,//M
			creator := *,//O
			contentInfo := *,//O
			contentSize := ?,//M
			ontologyRef := *,//O
			content := ?//M	
		};
		
		template ContentInstance_optional mw_contentContentInstance_rc1 modifies mw_contentContentInstanceBase := {
		}
		
		template ContentInstance_optional m_contentContentInstance_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit ,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//O
			stateTag := omit,//M
			creator := omit,//O
			contentInfo := omit,//O
			contentSize := omit,//M
			ontologyRef := omit,//O
			content := omit//M
		};
		
		template Container_optional mw_contentContainerBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := ?,//M
			announceTo := *,//O
			announcedAttribute := *,//O
			stateTag := ?,//M
			creator := *,//O
			maxNrOfInstances := *,//O
			maxByteSize := *,//O
			maxInstanceAge := *,//O
			currentNrOfInstances := ?,//M
			currentByteSize := ?,//M
			locationID := *,//O
			ontologyRef := *,//O
			choice := *//O
		};
		
		template Container_optional mw_contentContainer_any := {
			resourceName := *,//M
			resourceType := *,//M
			resourceID := *,//M
			parentID := *,//M
			creationTime := *,//M
			lastModifiedTime := *,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//M
			announceTo := *,//O
			announcedAttribute := *,//M
			stateTag := *,//M
			creator := *,//M
			maxNrOfInstances := *,//O
			maxByteSize := *,//O
			maxInstanceAge := *,//O
			currentNrOfInstances := *,//M
			currentByteSize := *,//M
			locationID := *,//O
			ontologyRef := *,//O
			choice := *//O
		}
		
		template Container_optional m_contentContainer_allOmit := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			stateTag := omit,//M
			creator := omit,//M
			maxNrOfInstances := omit,//O
			maxByteSize := omit,//O
			maxInstanceAge := omit,//O
			currentNrOfInstances := omit,//M
			currentByteSize := omit,//M
			locationID := omit,//O
			ontologyRef := omit,//O
			choice := omit//O
		}
		
		template Delivery_optional m_contentDelivery_allOmit := {
	
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			stateTag := omit,//M
			source := omit,//M
			target := omit,//M
			lifespan := omit,//M
			eventCat := omit,//M
			deliveryMetaData := omit,//M
			aggregatedRequest := omit,//M
			choice := omit//O
	
		};    
		
		template Container_optional mw_contentContainer_rc1 modifies mw_contentContainerBase := {
			choice := omit	//O
		}
		
		template XSD.AnyURI mw_contentContainer_rc2 := ?;
		
		template Resource mw_contentContainer_rc3 := {
			choice := {container := ?},
			uRI := ?
		}
		
		template Container_optional mw_contentContainer_rc4 modifies mw_contentContainerBase := {
			choice := {choice_list := ?}	//O
		}
		
		template Container_optional mw_contentContainer_rc5 modifies mw_contentContainerBase := {
			choice := {childResource_list := ?}	//O
		}
		
		template Container_optional mw_contentContainer_rc6 modifies mw_contentContainerBase := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			stateTag := omit,//M
			creator := omit,//M
			maxNrOfInstances := omit,//O
			maxByteSize := omit,//O
			maxInstanceAge := omit,//O
			currentNrOfInstances := omit,//M
			currentByteSize := omit,//M
			locationID := omit,//O
			ontologyRef := omit,//O
			choice := {childResource_list := ?}//O
		}
		
		template Container_optional mw_contentContainer_rc7 modifies mw_contentContainerBase := {
		
		}
		
		template Container_optional mw_contentContainer_rc8 modifies m_contentContainer_allOmit := {
			choice := {childResource_list := ?}	//O
		}
		
		template Notification m_contentNotification_allOmit := {
			notificationEvent:= omit,
			verificationRequest := omit,
			subscriptionDeletion := omit,
			subscriptionReference := omit,
			creator := omit,
			notificationForwardingURI := omit
		};
		
		template Notification mw_contentNotification_any := {
			notificationEvent := *,
			verificationRequest := *,
			subscriptionDeletion := *,
			subscriptionReference := *,
			creator := *,
			notificationForwardingURI := *
		};
		

		template Notification mw_contentNotificationBase := {
			notificationEvent := *,//O
			verificationRequest := *,//O
			subscriptionDeletion := *,//O
			subscriptionReference := *,//M //TODO Put it back to ? subscriptionReference is mandatory
			creator := *,//O
			notificationForwardingURI := *//O
		};
		
		template Notification mw_contentNotificationVerification modifies mw_contentNotificationBase := {
			verificationRequest := true,
			creator := ?
		}


		template Notification mw_contentNotification (in template (present) Representation p_representation) modifies mw_contentNotificationBase := {
			notificationEvent := {
				representation := p_representation,
				operationMonitor := *,
				notificationEventType := ?
			}
		};
		
		template Node_optional m_contentNode_allOmit := {
			
			resourceName := omit,
			resourceType := omit,
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			expirationTime := omit,
			announceTo := omit,
			announcedAttribute := omit,
			nodeID := omit,
			hostedCSELink := omit,
			choice := omit			
			
		};
		
		template CSEBase_optional mw_contentCSEBaseBase := {
			resourceName := ?,//M
			resourceType := ?,//M
			resourceID := ?,//M
			parentID := ?,//M
			creationTime := ?,//M
			lastModifiedTime := ?,//M
			labels := *,//O
			accessControlPolicyIDs := *,//O
			cseType := *,//O
			cSE_ID := ?,//M
			supportedResourceType := ?,//M
			pointOfAccess := ?,//M
			nodeLink := *,//O
			choice := *//O
		};

		template CSEBase_optional mw_contentCSEBase_rc1 modifies mw_contentCSEBaseBase := {
			choice := omit	//O
		}


	}//end group responseContent
	
	group SpecialContents {

		template (value) AE_optional m_contentCreateAe_Invalid  := {
			resourceName := omit,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			appName := omit,//O
			app_ID := omit,//M
			aE_ID := omit,//NP
			pointOfAccess := omit, //O
			ontologyRef := omit,//O
			nodeLink := omit,//NP
			requestReachability := omit,//M
			contentSerialization := omit,//O
			choice := omit//NP
		};	
        
        template  AE_optional mw_contentCreateAe_invalid  := {
			resourceName := *,//O
			resourceType := *,//NP
			resourceID := *,//NP
			parentID := *,//NP
			creationTime := *,//NP
			lastModifiedTime := *,//NP
			labels := *,//O
			accessControlPolicyIDs := *,//O
			expirationTime := *,//O
			announceTo := *,//O
			announcedAttribute := *,//O
			appName := *,//O
			app_ID := omit,//M
			aE_ID := *,//NP
			pointOfAccess := *, //O
			ontologyRef := *,//O
			nodeLink := *,//NP
			requestReachability := omit,//M
			contentSerialization := *,//O
			choice := *//NP
		}; 

		template (value) AE_update_invalid m_contentUpdateAe_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//O
			appName := omit,//O
			app_ID := omit,//M
			aE_ID := omit,//M
			pointOfAccess := omit,//O
			ontologyRef := omit,//O
			nodeLink := omit,//O
			requestReachability := omit,//M
			contentSerialization := omit,//O
			choice := omit//O
		};
    	
		template (value) ACP_update_invalid m_contentUpdateAcp_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			privileges := omit,//M
			selfPrivileges := omit,//M
			choice := omit//O
		};
    	
		template (value) Group_update_invalid m_contentUpdateGroup_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			creator := omit,//O
			memberType := omit,//M
			currentNrOfMembers := omit,//M
			maxNrOfMembers := omit,//M
			memberIDs := omit,//M
			membersAccessControlPolicyIDs := omit,//O
			memberTypeValidated := omit,//M
			consistencyStrategy := omit,//O
			groupName := omit,//O
			choice := omit//O
		};
    	
		template (value) PollingChannel_update_invalid m_contentUpdatePollingChannel_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			expirationTime := omit//M
		};
    	
		template (value) Schedule_update_invalid m_contentUpdateSchedule_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			scheduleElement := omit,//M
			choice := omit//O
		};
    	
		template (value) Subscription_update_invalid m_contentUpdateSubscription_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			maxNrOfInstances := omit,//Invalid attribute
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			eventNotificationCriteria := omit,//O
			expirationCounter := omit,//O
			notificationURI := omit,//M
			groupID := omit,//O
			notificationForwardingURI := omit,//O
			batchNotify := omit,//O
			rateLimit := omit,//O
			preSubscriptionNotify := omit,//O
			pendingNotification := omit,//O
			notificationStoragePriority := omit,//O
			latestNotify := omit,//O
			notificationContentType := omit,//M
			notificationEventCat := omit,//O
			creator := omit,//O
			subscriberURI := omit,//O
			choice := omit//O
		};
		
		template (value) Container_update_invalid m_contentUpdateContainer_invalid := {
			resourceName := omit,//M
			resourceType := omit,//M
			resourceID := omit,//M
			parentID := omit,//M
			creationTime := omit,//M
			lastModifiedTime := omit,//M
			expirationCounter := omit,//Invalid attribute
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//M
			announceTo := omit,//O
			announcedAttribute := omit,//M
			stateTag := omit,//M
			creator := omit,//M
			maxNrOfInstances := omit,//O
			maxByteSize := omit,//O
			maxInstanceAge := omit,//O
			currentNrOfInstances := omit,//M
			currentByteSize := omit,//M
			locationID := omit,//O
			ontologyRef := omit,//O
			choice := omit//O
		};		
				
	}//end group SpecialContents
	
	group ResponsePrimitives {
		
		/**
		 * @desc  Base template for sending ResponsePrimitive
		 * @param p_statusCode	Status code
		 * @param p_requestId	Request ID of the corresponding request
		 */
		template (value) ResponsePrimitive m_responsePrimitive(in ResponseStatusCode p_statusCode, in RequestID p_requestId, in template (omit) PrimitiveContent p_content := omit) := {
			responseStatusCode := p_statusCode,
			requestIdentifier := p_requestId,
			primitiveContent := p_content,
			to_ := omit,
			from_ := omit,
			originatingTimestamp := omit,
			resultExpirationTimestamp := omit,
			eventCategory := omit
		};
		
		/**
		 * @desc  Base template for sending ResponsePrimitive
		 * @param p_statusCode	Status code
		 * @param p_requestId	Request ID of the corresponding request
		 */
		template (value) ResponsePrimitive m_responsePrimitive_content(in ResponseStatusCode p_statusCode, in RequestID p_requestId, in template (value) PrimitiveContent p_content) modifies m_responsePrimitive := {
			primitiveContent := p_content			
		}
		
		template ResponsePrimitive mw_responsePrimitiveforInfoPort := ?;
		
		template RequestPrimitive mw_requestPrimitiveforInfoPort := ?;
		
		template ResponsePrimitive mw_responsePrimitive(in template (present) ResponseStatusCode p_statusCode, in template PrimitiveContent p_content := *) := {
			responseStatusCode := p_statusCode,
			requestIdentifier := ?,
			primitiveContent := p_content,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		};
    	
		template ResponsePrimitive mw_responsePrimitiveInverse(ResponseStatusCode p_statusCode) := {
			responseStatusCode := complement(p_statusCode),
			requestIdentifier := ?,
			primitiveContent := *,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		};
    	
		template ResponsePrimitive mw_responsePrimitiveOK(in template PrimitiveContent p_content := *) := {
			responseStatusCode := (int2000, int2001, int2002, int2004),
			requestIdentifier := ?,
			primitiveContent := p_content,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		};
        		 
		template ResponsePrimitive mw_responsePrimitiveKO := {
			responseStatusCode := complement(int2000, int2001, int2002, int2004),
			requestIdentifier := ?,
			primitiveContent := *,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		};
    	
		template ResponsePrimitive mw_responseDiscovery(template URIList p_uriList := ?) := {
			responseStatusCode := int2000,
			requestIdentifier := ?,
			primitiveContent := {uRIList := p_uriList},
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		};
    	
		template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := {
			responseStatusCode := p_statusCode,
			requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000),
			primitiveContent := p_notification,
			to_ := omit,
			from_ := omit,
			originatingTimestamp := omit,
			resultExpirationTimestamp := omit,
			eventCategory := omit
		};
		
		group InfoPortTemplates {
		
			template MyResource mw_resource := ?;		
		
		}//end group InfoPortTemplates
    	
	}//end group ResponsePrimitives	

	group UpperTester {
		template (value) UtTriggerPrimitive m_utCreate := {
			operation := int1,
			to_ := "NotInitialized",
			from_ := "NotInitialized",
			requestIdentifier := testcasename() & "-m_utCreate" & f_rnd(1, 1000000),
			resourceType := omit,
			primitiveContent := omit,
			role := 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
		};
		
		template (value) UtTriggerPrimitive m_utCreateContainer modifies m_utCreate := {
			requestIdentifier := testcasename() & "-m_utCreateContainer" & f_rnd(1, 1000000),
			resourceType := int3,
			primitiveContent := {container := m_contentContainer_allOmit}
		}
		
		template (value) UtTriggerPrimitive m_utCreateContentInstance modifies m_utCreate := {
			requestIdentifier := testcasename() & "-m_utCreateContentInstance" & f_rnd(1, 1000000),
			resourceType := int4,
			primitiveContent := {contentInstance := m_contentContentInstance_allOmit}
		}
		
		template (value) UtTriggerPrimitive m_utCreateSubscription modifies m_utCreate := {
			requestIdentifier := testcasename() & "-m_utCreateSubscription" & f_rnd(1, 1000000),
			resourceType := int23,
			primitiveContent := {subscription := m_contentSubscription}
		}
		
		template (value) UtTriggerPrimitive m_utCreateRemoteCSE modifies m_utCreate := {
			requestIdentifier := testcasename() & "-m_utCreateRemoteCSE" & f_rnd(1, 1000000),
			resourceType := int16,
			primitiveContent := {remoteCSE := m_contentRemoteCSE_allOmit}
		}
 		
		template (value) UtTriggerPrimitive m_utRetrieveResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
			operation := int2,
			to_ := p_targetResourceAddress,
			from_ := p_originator,
			requestIdentifier := "m_utRetrieveResource" & f_rnd(1, 1000000),
			resourceType := omit,
			primitiveContent := omit,
			role := 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
		};
		
		template (value) UtTriggerPrimitive m_utUpdate := {
			operation := int3,
			to_ := "NotInitialized",
			from_ := "NotInitialized",
			requestIdentifier := testcasename() & "-m_utUpdate" & f_rnd(1, 1000000),
			resourceType := omit,
			primitiveContent := omit,
			role := 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
		};
		
		template (value) UtTriggerPrimitive m_utUpdateContainer modifies m_utUpdate := {
			requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000),
			resourceType := int3,
			primitiveContent := {container := m_contentUpdateContainer}
		}
		
		template (value) UtTriggerPrimitive m_utDeleteRequest := {
			operation := int4,
			to_ := "NotInitialized",
			from_ := "NotInitialized",
			requestIdentifier := testcasename() & "-m_utDeleteRequest" & f_rnd(1, 1000000),
			resourceType := omit,
			primitiveContent := omit, 
			role := 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
		};
		
		template (value) UtTriggerPrimitive m_utDeleteResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_utDeleteRequest := {
			to_ := p_targetResourceAddress,
			from_ := p_originator
		};
		
		
		
		template UtTriggerAckPrimitive mw_utResponseOK := {
			responseStatusCode := int2000,
			requestIdentifier := ?,
			primitiveContent := *,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		}
		
		template UtTriggerAckPrimitive mw_utResponseKO := {
			responseStatusCode := int4000,
			requestIdentifier := ?,
			primitiveContent := *,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		}
		
		template UtTriggerAckPrimitive mw_utResponse(ResponseStatusCode p_statusCode) := {
			responseStatusCode := p_statusCode,
			requestIdentifier := ?,
			primitiveContent := *,
			to_ := *,
			from_ := *,
			originatingTimestamp := *,
			resultExpirationTimestamp := *,
			eventCategory := *
		}
	 }	
	
}  // end of module