/**
 *  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://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $
 *              $Id: OneM2M_Types.ttcn 229 2017-03-16 08:00:30Z reinaortega $
 *  @desc       Test System module for oneM2M
 *
 */
module OneM2M_Types {


	import from XSD all;


	type record AccessControlPolicy
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		SetOfAcrs privileges,
		SetOfAcrs selfPrivileges,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record AccessControlPolicyAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		XSD.AnyURI link,
		SetOfAcrs privileges,
		SetOfAcrs selfPrivileges,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};








	type record ActiveCmdhPolicy
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.ID activeCmdhPolicyLink
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record AE
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.String appName optional,
		XSD.String app_ID,
		XSD.ID aE_ID,
		PoaList pointOfAccess optional,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyURI nodeLink optional,
		XSD.Boolean requestReachability,
		Serializations contentSerialization optional,
		E2eSecInfo e2eSecInfo optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Container container,
				Group group_,
				AccessControlPolicy accessControlPolicy,
				Subscription subscription,
				PollingChannel pollingChannel,
				Schedule schedule,
				SemanticDescriptor semanticDescriptor,
				TimeSeries timeSeries,
				TrafficPattern trafficPattern,
				Sg_flexContainerResource_group sg_flexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (app_ID) "name as 'App-ID'";
		variant (aE_ID) "name as 'AE-ID'";
		//variant (requestReachability) "text 'true' as '1'";
		//variant (requestReachability) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].group_) "name as 'group'";
	};


	type record AEAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.String appName optional,
		XSD.String app_ID optional,
		XSD.ID aE_ID optional,
		PoaList pointOfAccess optional,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyURI nodeLink optional,
		XSD.Boolean requestReachability optional,
		Serializations contentSerialization optional,
		E2eSecInfo e2eSecInfo optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Container container,
				ContainerAnnc containerAnnc,
				Group group_,
				GroupAnnc groupAnnc,
				AccessControlPolicy accessControlPolicy,
				AccessControlPolicyAnnc accessControlPolicyAnnc,
				Subscription subscription,
				ScheduleAnnc scheduleAnnc,
				SemanticDescriptor semanticDescriptor,
				TimeSeries timeSeries,
				TimeSeriesAnnc timeSeriesAnnc,
				TrafficPatternAnnc trafficPatternAnnc,
				Sg_flexContainerResource_group sg_flexContainerResource,
				Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "element";
		variant (resourceName) "attribute";
		variant (app_ID) "name as 'App-ID'";
		variant (aE_ID) "name as 'AE-ID'";
		//variant (requestReachability) "text 'true' as '1'";
		//variant (requestReachability) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].group_) "name as 'group'";
	};


	type record AllJoynApp
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		AllJoynDirection direction,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription,
				AllJoynSvcObject allJoynSvcObject
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynAppAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		AllJoynDirection direction,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription,
				AllJoynSvcObject allJoynSvcObject,
				AllJoynSvcObjectAnnc allJoynSvcObjectAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynInterface
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyURI interfaceIntrospectXmlRef,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription,
				AllJoynMethod allJoynMethod,
				AllJoynProperty allJoynProperty,
				Container container
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynInterfaceAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyURI interfaceIntrospectXmlRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription,
				AllJoynMethod allJoynMethod,
				AllJoynMethodAnnc allJoynMethodAnnc,
				AllJoynProperty allJoynProperty,
				AllJoynPropertyAnnc allJoynPropertyAnnc,
				Container container,
				ContainerAnnc containerAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynMethodCall
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String input optional,
		XSD.String callStatus optional,
		XSD.String output optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynMethodCallAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynMethod
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription,
				AllJoynMethodCall allJoynMethodCall
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynMethodAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription,
				AllJoynMethodCall allJoynMethodCall,
				AllJoynMethodCallAnnc allJoynMethodCallAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynProperty
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String currentValue,
		XSD.String requestedValue optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynPropertyAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynSvcObject
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String objectPath,
		XSD.Boolean enable,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription,
				AllJoynInterface allJoynInterface
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (enable) "text 'true' as '1'";
		//variant (enable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AllJoynSvcObjectAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String objectPath,
		XSD.Boolean enable optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription,
				AllJoynInterface allJoynInterface,
				AllJoynInterfaceAnnc allJoynInterfaceAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (enable) "text 'true' as '1'";
		//variant (enable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record AreaNwkDeviceInfo
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String devID,
		XSD.String devType,
		XSD.AnyURI areaNwkId,
		XSD.NonNegativeInteger sleepInterval optional,
		XSD.NonNegativeInteger sleepDuration optional,
		XSD.String devStatus optional,
		ListOfURIs listOfNeighbors,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record AreaNwkDeviceInfoAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String devID optional,
		XSD.String devType optional,
		XSD.AnyURI areaNwkId optional,
		XSD.NonNegativeInteger sleepInterval optional,
		XSD.NonNegativeInteger sleepDuration optional,
		XSD.String devStatus optional,
		ListOfURIs listOfNeighbors optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record AreaNwkInfo
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String areaNwkType,
		ListOfURIs listOfDevices,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record AreaNwkInfoAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String areaNwkType optional,
		ListOfURIs listOfDevices optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record Battery
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.UnsignedInt batteryLevel,
		BatteryStatus batteryStatus,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record BatteryAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.UnsignedInt batteryLevel optional,
		BatteryStatus batteryStatus optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record CmdhBuffer
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		ListOfEventCatWithDef applicableEventCategory,
		XSD.NonNegativeInteger maxBufferSize,
		XSD.PositiveInteger storagePriority (1 .. !11)
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record CmdhDefaults
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		record length(2 .. infinity) of MgmtLinkRef mgmtLink_list
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (mgmtLink_list) "untagged";
		variant (mgmtLink_list[-]) "name as 'mgmtLink'";
	};


	type record CmdhDefEcValue
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.PositiveInteger order,
		EventCat defEcValue,
		ListOfM2MID requestOrigin,
		XSD.AnyType requestContext optional,
		XSD.Boolean requestContextNotification optional,
		XSD.AnyType requestCharacteristics optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	//variant (requestContextNotification) "text 'true' as '1'";
	//variant (requestContextNotification) "text 'false' as '0'";
	};


	type record CmdhEcDefParamValues
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		ListOfEventCatWithDef applicableEventCategory,
		XSD.Long defaultRequestExpTime,
		XSD.Long defaultResultExpTime,
		XSD.Long defaultOpExecTime,
		XSD.Long defaultRespPersistence,
		XSD.Boolean defaultDelAggregation
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	//variant (defaultDelAggregation) "text 'true' as '1'";
	//variant (defaultDelAggregation) "text 'false' as '0'";
	};


	type record CmdhLimits
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.PositiveInteger order,
		ListOfM2MID requestOrigin,
		XSD.AnyType requestContext,
		XSD.Boolean requestContextNotification optional,
		XSD.AnyType requestCharacteristics,
		ListOfEventCat limitsEventCategory,
		ListOfMinMax limitsRequestExpTime,
		ListOfMinMax limitsResultExpTime,
		ListOfMinMax limitsOpExecTime,
		ListOfMinMax limitsRespPersistence,
		enumerated {
			x0,
			x1,
			x0_1
		} limitsDelAggregation
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (requestContextNotification) "text 'true' as '1'";
		//variant (requestContextNotification) "text 'false' as '0'";
		variant (limitsDelAggregation) "text 'x0' as '0'";
		variant (limitsDelAggregation) "text 'x0_1' as '0 1'";
		variant (limitsDelAggregation) "text 'x1' as '1'";
	};


	type record CmdhNetworkAccessRules
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		ListOfEventCatWithDef applicableEventCategories,
		record of MgmtLinkRef mgmtLink_list
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (mgmtLink_list) "untagged";
		variant (mgmtLink_list[-]) "name as 'mgmtLink'";
	};


	type record CmdhNwAccessRule
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		ListOfM2MID targetNetwork,
		XSD.NonNegativeInteger minReqVolume,
		XSD.NonNegativeInteger spreadingWaitTime,
		BackOffParameters backOffParameters,
		XSD.AnyType otherConditions,
		MgmtLinkRef mgmtLink
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record CmdhPolicy
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String cmdhPolicyName,
		record length(4 .. infinity) of MgmtLinkRef mgmtLink_list
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (mgmtLink_list) "untagged";
		variant (mgmtLink_list[-]) "name as 'mgmtLink'";
	};








	type XSD.AnyURI ID;


	type XSD.Token NodeID
	with {
		variant "name as uncapitalized";
	};


	type XSD.Token DeviceID (pattern "urn:meid:[\dABCDEFabcdef]#(14)")
	with {
		variant "name as uncapitalized";
	};


	type XSD.Token ExternalID
	with {
		variant "name as uncapitalized";
	};


	type XSD.Token RequestID
	with {
		variant "name as uncapitalized";
	};


	type XSD.String RoleID (pattern "([a-zA-Z0-9.\-,_]*)@([A-Za-z0-9\-_]*)(.([A-Za-z0-9\-_])*)*")
	with {
		variant "name as uncapitalized";
	};


	type XSD.String TokenID (pattern "([a-zA-Z0-9.\-,_]*)@([A-Za-z0-9\-_]*)(.([A-Za-z0-9\-_])*)*")
	with {
		variant "name as uncapitalized";
	};


	type XSD.AnyURI NhURI
	with {
		variant "name as uncapitalized";
	};


	type record length(1 .. infinity) of XSD.ID AcpType
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type record length(1 .. infinity) of XSD.Token Labels
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type XSD.UnsignedInt TriggerRecipientID (0 .. 65535)
	with {
		variant "name as uncapitalized";
	};




	type record length(1 .. infinity) of XSD.ID ListOfM2MID
	with {
		variant "name as uncapitalized";
		variant "list";
	};




	type XSD.Long LongMin_1 (-1 .. infinity)
	with {
		variant "name as 'longMin-1'";
	};




	type record length(2) of LongMin_1 ListOfMinMax
	with {
		variant "name as uncapitalized";
		variant "list";
	};






	type XSD.Token Ipv4 (pattern "[0-9A-Fa-f]#(8)(/([0-9]|[1-2][0-9]|3[0-2]))#(0,1)")
	with {
		variant "name as uncapitalized";
	};


	type XSD.Token Ipv6 (pattern "::(/0)#(0,1)")
	with {
		variant "name as uncapitalized";
	};


	type record length(1 .. infinity) of XSD.String PoaList
	with {
		variant "name as uncapitalized";
		variant "list";
	};




	type XSD.String Timestamp (pattern "\d#(4)(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|30|31)T([01]\d|2[0-3])[0-5]\d[0-5]\d(,\d#(1,6))#(0,1)")
	with {
		variant "name as uncapitalized";
	};


	type union AbsRelTimestamp
	{
		Timestamp alt_,
		XSD.Long alt_1
	}
	with {
		variant "name as uncapitalized";
		variant "useUnion";
		variant (alt_) "name as ''";
		variant (alt_1) "name as ''";
	};


	type union MissingDataList
	{
		ListOfTimeStamp alt_,
		ListOfRelTimeStamp alt_1
	}
	with {
		variant "name as uncapitalized";
		variant "useUnion";
		variant (alt_) "name as ''";
		variant (alt_1) "name as ''";
	};




	type record length(1 .. infinity) of Timestamp ListOfTimeStamp
	with {
		variant "name as uncapitalized";
		variant "list";
	};




	type record length(1 .. infinity) of XSD.Long ListOfRelTimeStamp
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type XSD.String TypeOfContent (pattern "[\w/!#$\^_.+\q{0, 0, 0, 38}&\-]+")
	with {
		variant "name as uncapitalized";
	};




	type enumerated PermittedMediaTypes
	{
		applicationcbor,
		applicationjson,
		applicationxml
	}
	with {
		variant "text 'applicationcbor' as 'application/cbor'";
		variant "text 'applicationjson' as 'application/json'";
		variant "text 'applicationxml' as 'application/xml'";
		variant "name as uncapitalized";
	};




	type record length(1 .. infinity) of PermittedMediaTypes Serializations
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type XSD.String ContentInfo //FIXME To be fixed (pattern "[\w/!#$\^_.+\q{0, 0, 0, 38}&\-]+((:[0-2])#(0,1))+((:[0-5])#(0,1))") TODO To verify pattern
	with {
		variant "name as uncapitalized";
	};


	type union EventCat
	{
		StdEventCats alt_,
		XSD.Integer alt_1 (100 .. 999)
	}
	with {
		variant "name as uncapitalized";
		variant "useUnion";
		variant (alt_) "name as ''";
		variant (alt_1) "name as ''";
	};


	type union EventCatWithDef
	{
		enumerated {
			int0(0)
		} alt_,
		StdEventCats alt_1,
		XSD.Integer alt_2 (100 .. 999)
	}
	with {
		variant "name as uncapitalized";
		variant "useUnion";
		variant (alt_) "name as ''";
		variant (alt_) "useNumber";
		variant (alt_1) "name as ''";
		variant (alt_2) "name as 'alt_1'";
		variant (alt_2) "name as ''";
	};


	type record length(1 .. infinity) of EventCat ListOfEventCat
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type record length(1 .. infinity) of EventCatWithDef ListOfEventCatWithDef
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type XSD.String ScheduleEntry //FIXME To be fixed (pattern "(([*]|[1-5]#(0,1)\d([,-/][1-5]#(0,1)\d)*)[\q{0,0,0,20}\q{0,0,0,10}\t\r]+)#(2)([*]|((1#(0,1)\d|2[0-3])([,-/](1#(0,1)\d|2[0-3]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1\d|2\d|3[01])([,-/]([1-9]|1\d|2\d|3[01]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|(([1-9]|1[0-2])([,-/]([1-9]|1[0-2]))*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|([0-6]([,-/][0-6])*))[\q{0,0,0,20}\q{0,0,0,10}\t\r]+([*]|([2-9]\d\d\d)(([,-]([2-9]\d\d\d)([/][\d]#(0,1)[\d]#(0,1)[\d]#(0,1)[\d])#(0,1))*))")
	with {
		variant "name as uncapitalized";
	};


	type record length(1 .. infinity) of XSD.AnyURI ListOfURIs
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type record of XSD.Duration ListOfDuration
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type record of XSD.NCName AttributeList_1
	with {
		variant "name as 'attributeList'";
		variant "list";
	};


	type record length(1 .. infinity) of ResourceType ResourceTypeList
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type XSD.String Sparql
	with {
		variant "name as uncapitalized";
	};


	type XSD.String DescriptorRepresentation (pattern "application/rdf+xml:1")
	with {
		variant "name as uncapitalized";
	};


	type XSD.String E2eCompactJWS (pattern "([a-zA-Z0-9\-_=]+).([a-zA-Z0-9\-_=]*).([A-Za-z0-9\-_=])+")
	with {
		variant "name as uncapitalized";
	};


	type XSD.String E2eCompactJWE (pattern "([a-zA-Z0-9\-_=]+).([a-zA-Z0-9\-_=]*).([a-zA-Z0-9\-_=]*).([a-zA-Z0-9\-_=]*).([A-Za-z0-9\-_=])+")
	with {
		variant "name as uncapitalized";
	};


	type union DynAuthJWT
	{
		E2eCompactJWS alt_,
		E2eCompactJWE alt_1
	}
	with {
		variant "name as uncapitalized";
		variant "useUnion";
		variant (alt_) "name as ''";
		variant (alt_1) "name as ''";
	};


	type XSD.String ResourceName (pattern "[a-zA-Z0-9]([a-zA-Z0-9.\-,_]*)")
	with {
		variant "name as uncapitalized";
	};








	type record DeliveryMetaData
	{
		XSD.Boolean tracingOption,
		ListOfM2MID tracingInfo optional
	}
	with {
		variant "name as uncapitalized";
	//variant (tracingOption) "text 'true' as '1'";
	//variant (tracingOption) "text 'false' as '0'";
	};


	type record AggregatedRequest
	{
		record length(1 .. infinity) of record {
			Operation operation,
			XSD.AnyURI to_,
			XSD.ID from_,
			RequestID requestIdentifier,
			PrimitiveContent primitiveContent optional,
			MetaInformation metaInformation optional
		} request_list
	}
	with {
		variant "name as uncapitalized";
		variant (request_list) "untagged";
		variant (request_list[-]) "name as 'request'";
		variant (request_list[-].to_) "name as 'to'";
		variant (request_list[-].from_) "name as 'from'";
	};


	type record MetaInformation
	{
		ResourceType resourceType optional,
		XSD.NCName name optional,
		Timestamp originatingTimestamp optional,
		AbsRelTimestamp requestExpirationTimestamp optional,
		AbsRelTimestamp resultExpirationTimestamp optional,
		AbsRelTimestamp operationExecutionTime optional,
		ResponseTypeInfo responseType optional,
		AbsRelTimestamp resultPersistence optional,
		ResultContent resultContent optional,
		EventCat eventCategory optional,
		XSD.Boolean deliveryAggregation optional,
		XSD.String groupRequestIdentifier optional,
		FilterCriteria filterCriteria optional,
		DiscResType discoveryResultType optional,
		record length(1 .. infinity) of RoleID roleIDs,
		XSD.Boolean tokenRequestIndicator optional,
		record length(1 .. infinity) of DynAuthJWT tokens,
		record length(1 .. infinity) of TokenID tokenIDs,
		record length(1 .. infinity) of XSD.NCName localTokenIDs
	}
	with {
		variant "name as uncapitalized";
		//variant (deliveryAggregation) "text 'true' as '1'";
		//variant (deliveryAggregation) "text 'false' as '0'";
		variant (roleIDs) "list";
		//variant (tokenRequestIndicator) "text 'true' as '1'";
		//variant (tokenRequestIndicator) "text 'false' as '0'";
		variant (tokens) "list";
		variant (tokenIDs) "list";
		variant (localTokenIDs) "list";
	};


	type record of anytype Contents; // FIXME added by AMB, necessary for Codec

	type record PrimitiveContent
	{
		Contents any_1
	/*record of union {
	XSD.String elem,
	XSD.String elem_1
	} choice_list*/
	}
	with {
		variant "name as uncapitalized";
	//variant (choice_list) "untagged";
	//variant (choice_list[-]) "untagged";
	//variant (choice_list[-].elem) "anyElement from 'http://www.onem2m.org/xml/protocols'";
	//variant (choice_list[-].elem_1) "name as 'elem'";
	//variant (choice_list[-].elem_1) "anyElement except unqualified, 'http://www.onem2m.org/xml/protocols'";
	};


	type record FilterCriteria
	{
		Timestamp createdBefore optional,
		Timestamp createdAfter optional,
		Timestamp modifiedSince optional,
		Timestamp unmodifiedSince optional,
		XSD.PositiveInteger stateTagSmaller optional,
		XSD.NonNegativeInteger stateTagBigger optional,
		Timestamp expireBefore optional,
		Timestamp expireAfter optional,
		Labels labels optional,
		ResourceTypeList resourceType optional,
		XSD.NonNegativeInteger sizeAbove optional,
		XSD.PositiveInteger sizeBelow optional,
		record of TypeOfContent contentType_list,
		record of Attribute attribute_list,
		FilterUsage filterUsage optional,
		XSD.NonNegativeInteger limit optional,
		record of Sparql semanticsFilter_list,
		XSD.Boolean filterOperation optional,
		ContentFilterSyntax contentFilterSyntax optional,
		XSD.String contentFilterQuery optional,
		XSD.PositiveInteger level optional,
		XSD.PositiveInteger offset optional
	}
	with {
		variant "name as uncapitalized";
		variant (contentType_list) "untagged";
		variant (contentType_list[-]) "name as 'contentType'";
		variant (attribute_list) "untagged";
		variant (attribute_list[-]) "name as 'attribute'";
		variant (semanticsFilter_list) "untagged";
		variant (semanticsFilter_list[-]) "name as 'semanticsFilter'";
	//variant (filterOperation) "text 'true' as '1'";
	//variant (filterOperation) "text 'false' as '0'";
	};


	type record Attribute
	{
		XSD.NCName name,
		XSD.AnyType value_
	}
	with {
		variant "name as uncapitalized";
		variant (value_) "name as 'value'";
	};


	type record ScheduleEntries
	{
		record length(1 .. infinity) of ScheduleEntry scheduleEntry_list
	}
	with {
		variant "name as uncapitalized";
		variant (scheduleEntry_list) "untagged";
		variant (scheduleEntry_list[-]) "name as 'scheduleEntry'";
	};






	type record ActionStatus
	{
		XSD.AnyURI action_ optional,
		Status status optional
	}
	with {
		variant "name as uncapitalized";
		variant (action_) "name as 'action'";
	};


	type record AnyArgType
	{
		XSD.NCName name,
		XSD.AnyType value_
	}
	with {
		variant "name as uncapitalized";
		variant (value_) "name as 'value'";
	};


	type record ResetArgsType
	{
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record RebootArgsType
	{
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record UploadArgsType
	{
		XSD.String fileType,
		XSD.AnyURI uRL,
		XSD.String username,
		XSD.String password,
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (uRL) "name as capitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record DownloadArgsType
	{
		XSD.String fileType,
		XSD.AnyURI uRL,
		XSD.String username,
		XSD.String password,
		XSD.PositiveInteger filesize,
		XSD.String targetFile,
		XSD.PositiveInteger delaySeconds,
		XSD.AnyURI successURL,
		Timestamp startTime,
		Timestamp completeTime,
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (uRL) "name as capitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record SoftwareInstallArgsType
	{
		XSD.AnyURI uRL,
		XSD.String uUID,
		XSD.String username,
		XSD.String password,
		XSD.String executionEnvRef,
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (uRL) "name as capitalized";
		variant (uUID) "name as capitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record SoftwareUpdateArgsType
	{
		XSD.String uUID,
		XSD.String version,
		XSD.AnyURI uRL,
		XSD.String username,
		XSD.String password,
		XSD.String executionEnvRef,
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (uUID) "name as capitalized";
		variant (uRL) "name as capitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record SoftwareUninstallArgsType
	{
		XSD.String uUID,
		XSD.String version,
		XSD.String executionEnvRef,
		record of AnyArgType anyArg_list
	}
	with {
		variant "name as uncapitalized";
		variant (uUID) "name as capitalized";
		variant (anyArg_list) "untagged";
		variant (anyArg_list[-]) "name as 'anyArg'";
	};


	type record ExecReqArgsListType
	{
		union {
			record of ResetArgsType reset_list,
			record length(1 .. infinity) of RebootArgsType reboot_list,
			record length(1 .. infinity) of UploadArgsType upload_list,
			record length(1 .. infinity) of DownloadArgsType download_list,
			record length(1 .. infinity) of SoftwareInstallArgsType softwareInstall_list,
			record length(1 .. infinity) of SoftwareUpdateArgsType softwareUpdate_list,
			record length(1 .. infinity) of SoftwareUninstallArgsType softwareUninstall_list
		} choice
	}
	with {
		variant "name as uncapitalized";
		variant (choice) "untagged";
		variant (choice.reset_list) "untagged";
		variant (choice.reset_list[-]) "name as 'reset'";
		variant (choice.reboot_list) "untagged";
		variant (choice.reboot_list[-]) "name as 'reboot'";
		variant (choice.upload_list) "untagged";
		variant (choice.upload_list[-]) "name as 'upload'";
		variant (choice.download_list) "untagged";
		variant (choice.download_list[-]) "name as 'download'";
		variant (choice.softwareInstall_list) "untagged";
		variant (choice.softwareInstall_list[-]) "name as 'softwareInstall'";
		variant (choice.softwareUpdate_list) "untagged";
		variant (choice.softwareUpdate_list[-]) "name as 'softwareUpdate'";
		variant (choice.softwareUninstall_list) "untagged";
		variant (choice.softwareUninstall_list[-]) "name as 'softwareUninstall'";
	};


	type record MgmtLinkRef
	{
		ResourceName name,
		MgmtDefinition type_,
		XSD.AnyURI base
	}
	with {
		variant "name as uncapitalized";
		variant (name) "attribute";
		variant (type_) "name as 'type'";
		variant (type_) "attribute";
		variant (base) "untagged";
	};




	type record SetOfAcrs
	{
		record of AccessControlRule accessControlRule_list
	}
	with {
		variant "name as uncapitalized";
		variant (accessControlRule_list) "untagged";
		variant (accessControlRule_list[-]) "name as 'accessControlRule'";
	};


	type record AccessControlRule
	{
		ListOfURIs accessControlOriginators,
		AccessControlOperations accessControlOperations,
		record of record {
			record of ScheduleEntry accessControlWindow_list,
			record {
				record length(1 .. infinity) of Ipv4 ipv4Addresses optional,//FIXME It must be optional
				record length(1 .. infinity) of Ipv6 ipv6Addresses optional//FIXME It must be optional
			} accessControlIpAddresses optional,
			LocationRegion accessControlLocationRegion optional
		} accessControlContexts_list,
		XSD.Boolean accessControlAuthenticationFlag optional,
		record of record {
			ResourceType resourceType optional,
			XSD.AnyURI specializationID optional,
			record length(1 .. infinity) of ResourceType childResourceType
		} accessControlObjectDetails_list
	}
	with {
		variant "name as uncapitalized";
		variant (accessControlContexts_list) "untagged";
		variant (accessControlContexts_list[-]) "name as 'accessControlContexts'";
		variant (accessControlContexts_list[-].accessControlWindow_list) "untagged";
		variant (accessControlContexts_list[-].accessControlWindow_list[-]) "name as 'accessControlWindow'";
		variant (accessControlContexts_list[-].accessControlIpAddresses.ipv4Addresses) "list";
		variant (accessControlContexts_list[-].accessControlIpAddresses.ipv6Addresses) "list";
		//variant (accessControlAuthenticationFlag) "text 'true' as '1'";
		//variant (accessControlAuthenticationFlag) "text 'false' as '0'";
		variant (accessControlObjectDetails_list) "untagged";
		variant (accessControlObjectDetails_list[-]) "name as 'accessControlObjectDetails'";
		variant (accessControlObjectDetails_list[-].childResourceType) "list";
	};


	type record ChildResourceRef
	{
		ResourceName name,
		XSD.AnyURI specializationID optional,
		ResourceType type_,
		XSD.AnyURI base
	}
	with {
		variant "name as uncapitalized";
		variant (name) "attribute";
		variant (specializationID) "attribute";
		variant (type_) "name as 'type'";
		variant (type_) "attribute";
		variant (base) "untagged";
	};


	type record ResponseTypeInfo
	{
		ResponseType responseTypeValue,
		record of XSD.AnyURI notificationURI
	}
	with {
		variant "name as uncapitalized";
		variant (notificationURI) "list";
	};




	type record OperationResult
	{
		ResponseStatusCode responseStatusCode,
		RequestID requestIdentifier,
		PrimitiveContent primitiveContent optional,
		XSD.AnyURI to_ optional,
		XSD.ID from_ optional,
		Timestamp originatingTimestamp optional,
		AbsRelTimestamp resultExpirationTimestamp optional,
		EventCat eventCategory optional,
		ContentStatus contentStatus optional,
		XSD.PositiveInteger contentOffset optional
	}
	with {
		variant "name as uncapitalized";
		variant (to_) "name as 'to'";
		variant (from_) "name as 'from'";
	};




	type record ContentRef
	{
		record length(1 .. infinity) of record {
			XSD.NCName name,
			XSD.AnyURI uRI
		} uRIReference_list
	}
	with {
		variant "name as uncapitalized";
		variant (uRIReference_list) "untagged";
		variant (uRIReference_list[-]) "name as 'URIReference'";
		variant (uRIReference_list[-].uRI) "name as capitalized";
	};


	type record DeletionContexts
	{
		record of ScheduleEntry timeOfDay_list,
		record of LocationRegion locationRegions_list
	}
	with {
		variant "name as uncapitalized";
		variant (timeOfDay_list) "untagged";
		variant (timeOfDay_list[-]) "name as 'timeOfDay'";
		variant (locationRegions_list) "untagged";
		variant (locationRegions_list[-]) "name as 'locationRegions'";
	};


	type record LocationRegion
	{
		union {
			record length(1 .. infinity) of CountryCode countryCode,
			record length(3) of XSD.Float circRegion
		} choice
	}
	with {
		variant "name as uncapitalized";
		variant (choice) "untagged";
		variant (choice.countryCode) "list";
		variant (choice.circRegion) "list";
	};


	type XSD.String CountryCode (pattern "[A-Z]#(2)")
	with {
		variant "name as uncapitalized";
	};


	type record MissingData
	{
		XSD.NonNegativeInteger number,
		XSD.Duration duration
	}
	with {
		variant "name as uncapitalized";
	};






	type record ReceiverESPrimRandObject
	{
		XSD.NCName esprimRandID,
		XSD.NCName esprimRandValue,
		AbsRelTimestamp esprimRandExpiry,
		record length(1 .. infinity) of EsprimKeyGenAlgID esprimKeyGenAlgIDs,
		record length(1 .. infinity) of EsprimProtocolAndAlgID esprimProtocolAndAlgIDs
	}
	with {
		variant "name as uncapitalized";
		variant (esprimKeyGenAlgIDs) "list";
		variant (esprimProtocolAndAlgIDs) "list";
	};




	type record OriginatorESPrimRandObject
	{
		XSD.NCName esprimRandID,
		XSD.NCName esprimRandValue,
		AbsRelTimestamp esprimRandExpiry,
		EsprimKeyGenAlgID esprimKeyGenAlgIDs,
		record length(1 .. infinity) of EsprimProtocolAndAlgID esprimProtocolAndAlgIDs
	}
	with {
		variant "name as uncapitalized";
		variant (esprimProtocolAndAlgIDs) "list";
	};


	type record E2eSecInfo
	{
		record length(1 .. infinity) of Suid supportedE2ESecFeatures,
		record length(1 .. infinity) of XSD.Base64Binary certificates,
		ReceiverESPrimRandObject sharedReceiverESPrimRandObject optional
	}
	with {
		variant "name as uncapitalized";
		variant (supportedE2ESecFeatures) "list";
		variant (certificates) "list";
	};


	type record TokenPermission
	{
		ListOfM2MID resourceIDs optional,
		SetOfAcrs privileges optional,
		record length(1 .. infinity) of RoleID roleIDs
	}
	with {
		variant "name as uncapitalized";
		variant (roleIDs) "list";
	};


	type record TokenPermissions
	{
		record of TokenPermission permission_list
	}
	with {
		variant "name as uncapitalized";
		variant (permission_list) "untagged";
		variant (permission_list[-]) "name as 'permission'";
	};


	type record TokenClaimSet
	{
		XSD.String version,
		TokenID tokenID,
		XSD.ID holder,
		XSD.ID issuer,
		Timestamp notBefore,
		Timestamp notAfter,
		XSD.String tokenName optional,
		ListOfM2MID audience optional,
		TokenPermissions permissions optional,
		XSD.String extension_ optional
	}
	with {
		variant "name as uncapitalized";
		variant (extension_) "name as 'extension'";
	};


	type record DynAuthLocalTokenIdAssignments
	{
		record length(1 .. infinity) of record {
			XSD.NCName localTokenID,
			TokenID tokenID
		} localTokenIdAssignment_list
	}
	with {
		variant "name as uncapitalized";
		variant (localTokenIdAssignment_list) "untagged";
		variant (localTokenIdAssignment_list[-]) "name as 'localTokenIdAssignment'";
	};


	type record DynAuthTokenSummary
	{
		TokenID tokenID,
		Timestamp notBefore,
		Timestamp notAfter,
		XSD.String tokenName optional,
		ListOfM2MID audience optional
	}
	with {
		variant "name as uncapitalized";
	};


	type record DynAuthTokenReqInfo
	{
		record length(1 .. infinity) of record {
			XSD.AnyURI uRI,
			DynAuthDasRequest dasRequest optional,
			DynAuthJWT securedDasRequest optional
		} dasInfo_list
	}
	with {
		variant "name as uncapitalized";
		variant (dasInfo_list) "untagged";
		variant (dasInfo_list[-]) "name as 'dasInfo'";
		variant (dasInfo_list[-].uRI) "name as capitalized";
	};


	type record DynAuthDasRequest
	{
		XSD.ID originator,
		ResourceType targetedResourceType,
		Operation operation,
		record {
			Ipv4 ipv4Address optional,
			Ipv6 ipv6Address optional
		} originatorIP optional,
		LocationRegion originatorLocation optional,
		record length(1 .. infinity) of RoleID originatorRoleIDs,
		AbsRelTimestamp requestTimestamp optional,
		XSD.AnyURI targetedResourceID optional,
		AbsRelTimestamp proposedPrivilegesLifetime optional,
		record length(1 .. infinity) of RoleID roleIDsFromACPs,
		record length(1 .. infinity) of TokenID tokenIDs
	}
	with {
		variant "name as uncapitalized";
		variant (originatorRoleIDs) "list";
		variant (roleIDsFromACPs) "list";
		variant (tokenIDs) "list";
	};




	type record BackOffParameters
	{
		record length(1 .. infinity) of record {
			NetworkAction networkAction optional,
			XSD.NonNegativeInteger initialBackoffTime,
			XSD.NonNegativeInteger additionalBackoffTime,
			XSD.NonNegativeInteger maximumBackoffTime,
			XSD.NonNegativeInteger optionalRandomBackoffTime optional
		} backOffParametersSet_list
	}
	with {
		variant "name as uncapitalized";
		variant (backOffParametersSet_list) "untagged";
		variant (backOffParametersSet_list[-]) "name as 'backOffParametersSet'";
	};






	type record ListOfDataLinks
	{
		record length(1 .. infinity) of DataLink dataLinkEntry_list
	}
	with {
		variant "name as uncapitalized";
		variant (dataLinkEntry_list) "untagged";
		variant (dataLinkEntry_list[-]) "name as 'dataLinkEntry'";
	};




	type record DataLink
	{
		XSD.AnyURI name,
		XSD.ID dataContainerID,
		XSD.NCName attributeName optional
	}
	with {
		variant "name as uncapitalized";
	};




	type record Resource_1
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional
	}
	with {
		variant "name as 'resource'";
		variant (resourceName) "attribute";
	};


	type record RegularResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};


	type record AnnounceableResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record AnnouncedResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};


	type record AnnounceableSubordinateResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record SubordinateResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};


	type record AnnouncedSubordinateResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		XSD.AnyURI link
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};


	type record MgmtResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record AnnouncedMgmtResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};




	type record length(1 .. infinity) of XSD.NCName ListOfNCNames
	with {
		variant "name as uncapitalized";
		variant "list";
	};


	type record FlexContainerResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};


	type record AnnouncedFlexContainerResource
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional
	}
	with {
		variant "name as uncapitalized";
		variant (resourceName) "attribute";
	};




	type union Sg_announceableSubordinateResource_group
	{
		AnnounceableSubordinateResource sg_announceableSubordinateResource,
		AccessControlPolicy accessControlPolicy,
		ContentInstance contentInstance,
		Schedule schedule,
		TimeSeriesInstance timeSeriesInstance
	}
	with {
		variant "untagged";
		variant (sg_announceableSubordinateResource) "form as qualified";
		variant (sg_announceableSubordinateResource) "abstract";
	};


	type union Sg_announcedSubordinateResource_group
	{
		AnnouncedSubordinateResource sg_announcedSubordinateResource,
		AccessControlPolicyAnnc accessControlPolicyAnnc,
		ContentInstanceAnnc contentInstanceAnnc,
		ScheduleAnnc scheduleAnnc,
		TimeSeriesInstanceAnnc timeSeriesInstanceAnnc
	}
	with {
		variant "untagged";
		variant (sg_announcedSubordinateResource) "form as qualified";
		variant (sg_announcedSubordinateResource) "abstract";
	};


	type union Sg_mgmtResource_group
	{
		MgmtResource sg_mgmtResource,
		ActiveCmdhPolicy activeCmdhPolicy,
		AreaNwkDeviceInfo areaNwkDeviceInfo,
		AreaNwkInfo areaNwkInfo,
		Battery battery,
		CmdhBuffer cmdhBuffer,
		CmdhDefEcValue cmdhDefEcValue,
		CmdhDefaults cmdhDefaults,
		CmdhEcDefParamValues cmdhEcDefParamValues,
		CmdhLimits cmdhLimits,
		CmdhNetworkAccessRules cmdhNetworkAccessRules,
		CmdhNwAccessRule cmdhNwAccessRule,
		CmdhPolicy cmdhPolicy,
		DeviceCapability deviceCapability,
		DeviceInfo deviceInfo,
		EventLog eventLog,
		Firmware firmware,
		Memory memory,
		Reboot reboot,
		Software software
	}
	with {
		variant "untagged";
		variant (sg_mgmtResource) "form as qualified";
		variant (sg_mgmtResource) "abstract";
	};


	type union Sg_announceableResource_group
	{
		AnnounceableResource sg_announceableResource,
		AE aE,
		Container container,
		Group group_,
		LocationPolicy locationPolicy,
		Node node,
		RemoteCSE remoteCSE,
		SemanticDescriptor semanticDescriptor,
		TimeSeries timeSeries,
		TrafficPattern trafficPattern
	}
	with {
		variant "untagged";
		variant (sg_announceableResource) "form as qualified";
		variant (sg_announceableResource) "abstract";
		variant (aE) "name as capitalized";
		variant (group_) "name as 'group'";
	};


	type union Sg_announcedResource_group
	{
		AnnouncedResource sg_announcedResource,
		AEAnnc aEAnnc,
		ContainerAnnc containerAnnc,
		GroupAnnc groupAnnc,
		LocationPolicyAnnc locationPolicyAnnc,
		NodeAnnc nodeAnnc,
		RemoteCSEAnnc remoteCSEAnnc,
		SemanticDescriptorAnnc semanticDescriptorAnnc,
		TimeSeriesAnnc timeSeriesAnnc,
		TrafficPatternAnnc trafficPatternAnnc
	}
	with {
		variant "untagged";
		variant (sg_announcedResource) "form as qualified";
		variant (sg_announcedResource) "abstract";
		variant (aEAnnc) "name as capitalized";
	};


	type union Sg_flexContainerResource_group
	{
		FlexContainerResource sg_flexContainerResource,
		AllJoynApp allJoynApp,
		AllJoynInterface allJoynInterface,
		AllJoynMethod allJoynMethod,
		AllJoynMethodCall allJoynMethodCall,
		AllJoynProperty allJoynProperty,
		AllJoynSvcObject allJoynSvcObject,
		GenericInterworkingOperationInstance genericInterworkingOperationInstance,
		GenericInterworkingService genericInterworkingService,
		SvcFwWrapper svcFwWrapper,
		SvcObjWrapper svcObjWrapper
	}
	with {
		variant "untagged";
		variant (sg_flexContainerResource) "form as qualified";
		variant (sg_flexContainerResource) "abstract";
	};


	type union Sg_announcedFlexContainerResource_group
	{
		AnnouncedFlexContainerResource sg_announcedFlexContainerResource,
		AllJoynAppAnnc allJoynAppAnnc,
		AllJoynInterfaceAnnc allJoynInterfaceAnnc,
		AllJoynMethodAnnc allJoynMethodAnnc,
		AllJoynMethodCallAnnc allJoynMethodCallAnnc,
		AllJoynPropertyAnnc allJoynPropertyAnnc,
		AllJoynSvcObjectAnnc allJoynSvcObjectAnnc,
		GenericInterworkingOperationInstanceAnnc genericInterworkingOperationInstanceAnnc,
		GenericInterworkingServiceAnnc genericInterworkingServiceAnnc,
		SvcFwWrapperAnnc svcFwWrapperAnnc,
		SvcObjWrapperAnnc svcObjWrapperAnnc
	}
	with {
		variant "untagged";
		variant (sg_announcedFlexContainerResource) "form as qualified";
		variant (sg_announcedFlexContainerResource) "abstract";
	};


	type union Sg_announcedMgmtResource_group
	{
		AnnouncedMgmtResource sg_announcedMgmtResource,
		AreaNwkDeviceInfoAnnc areaNwkDeviceInfoAnnc,
		AreaNwkInfoAnnc areaNwkInfoAnnc,
		BatteryAnnc batteryAnnc,
		DeviceCapabilityAnnc deviceCapabilityAnnc,
		DeviceInfoAnnc deviceInfoAnnc,
		EventLogAnnc eventLogAnnc,
		FirmwareAnnc firmwareAnnc,
		MemoryAnnc memoryAnnc,
		RebootAnnc rebootAnnc,
		SoftwareAnnc softwareAnnc
	}
	with {
		variant "untagged";
		variant (sg_announcedMgmtResource) "form as qualified";
		variant (sg_announcedMgmtResource) "abstract";
	};


	type union Sg_resource_group
	{
		Resource sg_resource,
		CSEBase cSEBase
	}
	with {
		variant "untagged";
		variant (sg_resource) "form as qualified";
		variant (sg_resource) "abstract";
		variant (cSEBase) "name as capitalized";
	};


	type union Sg_regularResource_group
	{
		RegularResource sg_regularResource,
		Delivery delivery,
		DynamicAuthorizationConsultation dynamicAuthorizationConsultation,
		EventConfig eventConfig,
		ExecInstance execInstance,
		M2mServiceSubscriptionProfile m2mServiceSubscriptionProfile,
		MgmtCmd mgmtCmd,
		NotificationTargetMgmtPolicyRef notificationTargetMgmtPolicyRef,
		NotificationTargetPolicy notificationTargetPolicy,
		PolicyDeletionRules policyDeletionRules,
		Request request,
		Role role,
		ServiceSubscribedAppRule serviceSubscribedAppRule,
		ServiceSubscribedNode serviceSubscribedNode,
		StatsCollect statsCollect,
		StatsConfig statsConfig,
		Subscription subscription,
		Token token
	}
	with {
		variant "untagged";
		variant (sg_regularResource) "form as qualified";
		variant (sg_regularResource) "abstract";
	};


	type union Sg_subordinateResource_group
	{
		SubordinateResource sg_subordinateResource,
		PollingChannel pollingChannel
	}
	with {
		variant "untagged";
		variant (sg_subordinateResource) "form as qualified";
		variant (sg_subordinateResource) "abstract";
	};


	type record Container
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.NonNegativeInteger maxNrOfInstances optional,
		XSD.NonNegativeInteger maxByteSize optional,
		XSD.NonNegativeInteger maxInstanceAge optional,
		XSD.NonNegativeInteger currentNrOfInstances,
		XSD.NonNegativeInteger currentByteSize,
		XSD.AnyURI locationID optional,
		XSD.AnyURI ontologyRef optional,
		XSD.Boolean disableRetrieval optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				ContentInstance contentInstance,
				Container container,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				Sg_flexContainerResource_group sg_flexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (disableRetrieval) "text 'true' as '1'";
		//variant (disableRetrieval) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record ContainerAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag,
		XSD.NonNegativeInteger maxNrOfInstances optional,
		XSD.NonNegativeInteger maxByteSize optional,
		XSD.NonNegativeInteger maxInstanceAge optional,
		XSD.NonNegativeInteger currentNrOfInstances optional,
		XSD.NonNegativeInteger currentByteSize optional,
		XSD.AnyURI locationID optional,
		XSD.AnyURI ontologyRef optional,
		XSD.Boolean disableRetrieval optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				ContentInstance contentInstance,
				ContentInstanceAnnc contentInstanceAnnc,
				Container container,
				ContainerAnnc containerAnnc,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Sg_flexContainerResource_group sg_flexContainerResource,
				Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (disableRetrieval) "text 'true' as '1'";
		//variant (disableRetrieval) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record ContentInstance
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		ContentInfo contentInfo optional,
		XSD.NonNegativeInteger contentSize,
		ContentRef contentRef optional,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyType content,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of SemanticDescriptor semanticDescriptor_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.semanticDescriptor_list) "untagged";
		variant (choice.semanticDescriptor_list[-]) "name as 'semanticDescriptor'";
	};


	type record ContentInstanceAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		XSD.AnyURI link,
		XSD.NonNegativeInteger stateTag,
		ContentInfo contentInfo optional,
		XSD.NonNegativeInteger contentSize optional,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyType content optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of SemanticDescriptor semanticDescriptor_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.semanticDescriptor_list) "untagged";
		variant (choice.semanticDescriptor_list[-]) "name as 'semanticDescriptor'";
	};


	type record CSEBase
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		CseTypeID cseType optional,
		XSD.ID cSE_ID,
		record of ResourceType supportedResourceType,
		PoaList pointOfAccess,
		XSD.AnyURI nodeLink optional,
		E2eSecInfo e2eSecInfo optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				RemoteCSE remoteCSE,
				RemoteCSEAnnc remoteCSEAnnc,
				Node node,
				AE aE,
				Container container,
				Group group_,
				AccessControlPolicy accessControlPolicy,
				Subscription subscription,
				MgmtCmd mgmtCmd,
				LocationPolicy locationPolicy,
				StatsConfig statsConfig,
				StatsCollect statsCollect,
				Request request,
				Delivery delivery,
				Schedule schedule,
				M2mServiceSubscriptionProfile m2mServiceSubscriptionProfile,
				ServiceSubscribedAppRule serviceSubscribedAppRule,
				Role role,
				XSD.Token token,
				Sg_flexContainerResource_group sg_flexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "element";
		variant (resourceName) "attribute";
		variant (cSE_ID) "name as 'CSE-ID'";
		variant (supportedResourceType) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].aE) "name as capitalized";
		variant (choice.choice_list[-].group_) "name as 'group'";
	};


	type record Delivery
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID source,
		XSD.ID target,
		Timestamp lifespan,
		EventCat eventCat,
		DeliveryMetaData deliveryMetaData,
		AggregatedRequest aggregatedRequest,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record DeviceCapability
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String capabilityName,
		XSD.Boolean attached,
		ActionStatus capabilityActionStatus,
		XSD.Boolean currentState,
		XSD.Boolean enable optional,
		XSD.Boolean disable optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (attached) "text 'true' as '1'";
		//variant (attached) "text 'false' as '0'";
		//variant (currentState) "text 'true' as '1'";
		//variant (currentState) "text 'false' as '0'";
		//variant (enable) "text 'true' as '1'";
		//variant (enable) "text 'false' as '0'";
		//variant (disable) "text 'true' as '1'";
		//variant (disable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record DeviceCapabilityAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String capabilityName optional,
		XSD.Boolean attached optional,
		ActionStatus capabilityActionStatus optional,
		XSD.Boolean currentState optional,
		XSD.Boolean enable optional,
		XSD.Boolean disable optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (attached) "text 'true' as '1'";
		//variant (attached) "text 'false' as '0'";
		//variant (currentState) "text 'true' as '1'";
		//variant (currentState) "text 'false' as '0'";
		//variant (enable) "text 'true' as '1'";
		//variant (enable) "text 'false' as '0'";
		//variant (disable) "text 'true' as '1'";
		//variant (disable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record DeviceInfo
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String deviceLabel,
		XSD.String manufacturer,
		XSD.String model,
		XSD.String deviceType,
		XSD.String fwVersion,
		XSD.String swVersion,
		XSD.String hwVersion,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record DeviceInfoAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String deviceLabel optional,
		XSD.String manufacturer optional,
		XSD.String model optional,
		XSD.String deviceType optional,
		XSD.String fwVersion optional,
		XSD.String swVersion optional,
		XSD.String hwVersion optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record DynamicAuthorizationConsultation
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.Boolean dynamicAuthorizationEnabled,
		ListOfURIs dynamicAuthorizationPoA,
		Timestamp dynamicAuthorizationLifetime optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
	//variant (dynamicAuthorizationEnabled) "text 'true' as '1'";
	//variant (dynamicAuthorizationEnabled) "text 'false' as '0'";
	};


	type enumerated ResourceType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7),
		int8(8),
		int9(9),
		int10(10),
		int11(11),
		int12(12),
		int13(13),
		int14(14),
		int15(15),
		int16(16),
		int17(17),
		int18(18),
		int19(19),
		int20(20),
		int21(21),
		int22(22),
		int23(23),
		int24(24),
		int25(25),
		int26(26),
		int27(27),
		int28(28),
		int29(29),
		int30(30),
		int31(31),
		int32(32),
		int33(33),
		int34(34),
		int10001(10001),
		int10002(10002),
		int10003(10003),
		int10004(10004),
		int10009(10009),
		int10010(10010),
		int10013(10013),
		int10014(10014),
		int10016(10016),
		int10018(10018),
		int10024(10024),
		int10028(10028),
		int10029(10029),
		int10030(10030),
		int10033(10033),
		int10034(10034)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated CseTypeID
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated LocationSource
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated StdEventCats
	{
		int2(2),
		int3(3),
		int4(4)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated Operation
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ResponseType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ResultContent
	{
		int0(0),
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7),
		int8(8)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated DiscResType
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ResponseStatusCode
	{
		int1000(1000),
		int2000(2000),
		int2001(2001),
		int2002(2002),
		int2004(2004),
		int4000(4000),
		int4004(4004),
		int4005(4005),
		int4008(4008),
		int4101(4101),
		int4102(4102),
		int4103(4103),
		int4104(4104),
		int4105(4105),
		int4106(4106),
		int4107(4107),
		int4108(4108),
		int4109(4109),
		int4110(4110),
		int4111(4111),
		int4112(4112),
		int4113(4113),
		int4114(4114),
		int4115(4115),
		int5000(5000),
		int5001(5001),
		int5103(5103),
		int5105(5105),
		int5106(5106),
		int5203(5203),
		int5204(5204),
		int5205(5205),
		int5206(5206),
		int5207(5207),
		int5208(5208),
		int5209(5209),
		int5210(5210),
		int5211(5211),
		int5212(5212),
		int6003(6003),
		int6005(6005),
		int6010(6010),
		int6011(6011),//TODO To be deleted - Added to be backward compatible with Rel 1
		int6020(6020),
		int6021(6021),
		int6022(6022),
		int6023(6023),
		int6024(6024),
		int6025(6025),
		int6026(6026),
		int6028(6028),
		int6029(6029)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated RequestStatus
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated MemberType
	{
		int0(0),
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7),
		int8(8),
		int9(9),
		int10(10),
		int11(11),
		int12(12),
		int13(13),
		int14(14),
		int15(15),
		int16(16),
		int17(17),
		int18(18),
		int19(19),
		int20(20),
		int21(21),
		int22(22),
		int23(23),
		int24(24),
		int25(25),
		int26(26),
		int27(27),
		int28(28),
		int29(29),
		int30(30),
		int31(31),
		int32(32),
		int33(33),
		int34(34),
		int10001(10001),
		int10002(10002),
		int10003(10003),
		int10004(10004),
		int10009(10009),
		int10010(10010),
		int10013(10013),
		int10014(10014),
		int10016(10016),
		int10018(10018),
		int10024(10024),
		int10028(10028),
		int10029(10029),
		int10030(10030),
		int10033(10033),
		int10034(10034),
		int20001(20001),
		int20002(20002)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ConsistencyStrategy
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated CmdType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ExecModeType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ExecStatusType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ExecResultType
	{
		int0(0),
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7),
		int8(8),
		int9(9),
		int10(10),
		int11(11),
		int12(12),
		int13(13),
		int14(14),
		int15(15),
		int16(16),
		int19(19),
		int20(20),
		int21(21),
		int22(22),
		int23(23),
		int24(24),
		int25(25),
		int26(26),
		int27(27),
		int28(28),
		int29(29),
		int30(30),
		int31(31)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated PendingNotification
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated NotificationContentType
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated NotificationEventType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated Status
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated BatteryStatus
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated MgmtDefinition
	{
		int0(0),
		int1001(1001),
		int1002(1002),
		int1003(1003),
		int1004(1004),
		int1005(1005),
		int1006(1006),
		int1007(1007),
		int1008(1008),
		int1009(1009),
		int1010(1010),
		int1011(1011),
		int1012(1012),
		int1013(1013),
		int1014(1014),
		int1015(1015),
		int1016(1016),
		int1017(1017),
		int1018(1018),
		int1019(1019)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated LogTypeId
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated LogStatus
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated EventType
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated StatsRuleStatusType
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated StatModelType
	{
		int1(1)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated EncodingType
	{
		int0(0),
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};




	type enumerated AccessControlOperations
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6),
		int7(7),
		int8(8),
		int9(9),
		int10(10),
		int11(11),
		int12(12),
		int13(13),
		int14(14),
		int15(15),
		int16(16),
		int17(17),
		int18(18),
		int19(19),
		int20(20),
		int21(21),
		int22(22),
		int23(23),
		int24(24),
		int25(25),
		int26(26),
		int27(27),
		int28(28),
		int29(29),
		int30(30),
		int31(31),
		int32(32),
		int33(33),
		int34(34),
		int35(35),
		int36(36),
		int37(37),
		int38(38),
		int39(39),
		int40(40),
		int41(41),
		int42(42),
		int43(43),
		int44(44),
		int45(45),
		int46(46),
		int47(47),
		int48(48),
		int49(49),
		int50(50),
		int51(51),
		int52(52),
		int53(53),
		int54(54),
		int55(55),
		int56(56),
		int57(57),
		int58(58),
		int59(59),
		int60(60),
		int61(61),
		int62(62),
		int63(63)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated FilterUsage
	{
		int1(1),
		int2(2),
		int3(3)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated NotificationTargetPolicyAction
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated LogicalOperator
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};




	type enumerated AllJoynDirection
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ContentFilterSyntax
	{
		int1(1)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ContentSecurity
	{
		int0(0),
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated Suid
	{
		int10(10),
		int11(11),
		int12(12),
		int13(13),
		int14(14),
		int15(15),
		int21(21),
		int22(22),
		int23(23),
		int24(24),
		int25(25),
		int32(32),
		int33(33),
		int34(34),
		int35(35),
		int40(40),
		int41(41),
		int42(42),
		int43(43),
		int44(44),
		int45(45)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated EsprimKeyGenAlgID
	{
		int1(1)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated EsprimProtocolAndAlgID
	{
		int10(10),
		int11(11),
		int12(12)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated PeriodicIndicator
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated StationaryIndication
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated ContentStatus
	{
		int1(1),
		int2(2)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type enumerated NetworkAction
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type record EventConfig
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.ID creator optional,
		XSD.String eventID,
		EventType eventType,
		Timestamp eventStart optional,
		Timestamp eventEnd optional,
		record of Operation operationType,
		XSD.NonNegativeInteger dataSize optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (operationType) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record EventLog
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		LogTypeId logTypeId,
		XSD.String logData,
		LogStatus logStatus,
		XSD.Boolean logStart,
		XSD.Boolean logStop,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (logStart) "text 'true' as '1'";
		//variant (logStart) "text 'false' as '0'";
		//variant (logStop) "text 'true' as '1'";
		//variant (logStop) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record EventLogAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		LogTypeId logTypeId optional,
		XSD.String logData optional,
		LogStatus logStatus optional,
		XSD.Boolean logStart optional,
		XSD.Boolean logStop optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (logStart) "text 'true' as '1'";
		//variant (logStart) "text 'false' as '0'";
		//variant (logStop) "text 'true' as '1'";
		//variant (logStop) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record ExecInstance
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ExecStatusType execStatus,
		ExecResultType execResult,
		XSD.Boolean execDisable optional,
		NodeID execTarget,
		ExecModeType execMode optional,
		XSD.Duration execFrequency optional,
		XSD.Duration execDelay optional,
		XSD.NonNegativeInteger execNumber optional,
		ExecReqArgsListType execReqArgs optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (execDisable) "text 'true' as '1'";
		//variant (execDisable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record Firmware
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String version,
		XSD.String firmwareName,
		XSD.AnyURI uRL,
		XSD.Boolean update,
		ActionStatus updateStatus,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (uRL) "name as capitalized";
		//variant (update) "text 'true' as '1'";
		//variant (update) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record FirmwareAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String version optional,
		XSD.String firmwareName optional,
		XSD.AnyURI uRL optional,
		XSD.Boolean update optional,
		ActionStatus updateStatus optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (uRL) "name as capitalized";
		//variant (update) "text 'true' as '1'";
		//variant (update) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record GenericInterworkingOperationInstance
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String operationName,
		XSD.String operationState,
		ListOfDataLinks inputDataPointLinks optional,
		ListOfDataLinks outputDataPointLinks optional,
		ListOfDataLinks inputLinks optional,
		ListOfDataLinks outputLinks optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record GenericInterworkingOperationInstanceAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String operationName optional,
		XSD.String operationState optional,
		ListOfDataLinks inputDataPointLinks optional,
		ListOfDataLinks outputDataPointLinks optional,
		ListOfDataLinks inputLinks optional,
		ListOfDataLinks outputLinks optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record GenericInterworkingService
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String serviceName,
		ListOfDataLinks inputDataPointLinks optional,
		ListOfDataLinks outputDataPointLinks optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				GenericInterworkingService genericInterworkingService,
				GenericInterworkingOperationInstance genericInterworkingOperationInstance,
				SemanticDescriptor semanticDescriptor,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record GenericInterworkingServiceAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		XSD.String serviceName,
		ListOfDataLinks inputDataPointLinks optional,
		ListOfDataLinks outputDataPointLinks optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				GenericInterworkingServiceAnnc genericInterworkingServiceAnnc,
				GenericInterworkingOperationInstanceAnnc genericInterworkingOperationInstanceAnnc,
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Group
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.ID creator optional,
		MemberType memberType,
		XSD.NonNegativeInteger currentNrOfMembers,
		XSD.PositiveInteger maxNrOfMembers,
		ListOfURIs memberIDs,
		ListOfURIs membersAccessControlPolicyIDs optional,
		XSD.Boolean memberTypeValidated optional,
		ConsistencyStrategy consistencyStrategy optional,
		XSD.String groupName optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription,
				SemanticDescriptor semanticDescriptor
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (memberTypeValidated) "text 'true' as '1'";
		//variant (memberTypeValidated) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record GroupAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MemberType memberType optional,
		XSD.NonNegativeInteger currentNrOfMembers optional,
		XSD.PositiveInteger maxNrOfMembers optional,
		record of XSD.AnyURI memberIDs,
		ListOfURIs membersAccessControlPolicyIDs optional,
		XSD.Boolean memberTypeValidated optional,
		ConsistencyStrategy consistencyStrategy optional,
		XSD.String groupName optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (memberIDs) "list";
		//variant (memberTypeValidated) "text 'true' as '1'";
		//variant (memberTypeValidated) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record LocationPolicy
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		LocationSource locationSource,
		ListOfDuration locationUpdatePeriod optional,
		NodeID locationTargetID optional,
		XSD.AnyURI locationServer optional,
		XSD.AnyURI locationContainerID optional,
		XSD.String locationContainerName optional,
		XSD.String locationStatus,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record LocationPolicyAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		LocationSource locationSource optional,
		ListOfDuration locationUpdatePeriod optional,
		NodeID locationTargetID optional,
		XSD.AnyURI locationServer optional,
		XSD.AnyURI locationContainerID optional,
		XSD.String locationContainerName optional,
		XSD.String locationStatus optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
	};


	type record M2mServiceSubscriptionProfile
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				ServiceSubscribedNode serviceSubscribedNode,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Memory
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.UnsignedLong memAvailable,
		XSD.UnsignedLong memTotal,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record MemoryAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.UnsignedLong memAvailable optional,
		XSD.UnsignedLong memTotal optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record MgmtCmd
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.String description optional,
		CmdType cmdType,
		ExecReqArgsListType execReqArgs optional,
		XSD.Boolean execEnable,
		NodeID execTarget,
		ExecModeType execMode optional,
		XSD.Duration execFrequency optional,
		XSD.Duration execDelay optional,
		XSD.NonNegativeInteger execNumber optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				ExecInstance execInstance,
				Subscription subscription
			} choice_list
		} choice
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (execEnable) "text 'true' as '1'";
		//variant (execEnable) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Node
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		NodeID nodeID,
		XSD.ID hostedCSELink optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Memory memory,
				Battery battery,
				AreaNwkInfo areaNwkInfo,
				AreaNwkDeviceInfo areaNwkDeviceInfo,
				Firmware firmware,
				Software software,
				DeviceInfo deviceInfo,
				DeviceCapability deviceCapability,
				Reboot reboot,
				EventLog eventLog,
				CmdhPolicy cmdhPolicy,
				ActiveCmdhPolicy activeCmdhPolicy,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				TrafficPattern trafficPattern
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record NodeAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		NodeID nodeID,
		XSD.ID hostedCSELink optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				MemoryAnnc memoryAnnc,
				BatteryAnnc batteryAnnc,
				AreaNwkInfoAnnc areaNwkInfoAnnc,
				AreaNwkDeviceInfoAnnc areaNwkDeviceInfoAnnc,
				FirmwareAnnc firmwareAnnc,
				SoftwareAnnc softwareAnnc,
				DeviceInfoAnnc deviceInfoAnnc,
				DeviceCapabilityAnnc deviceCapabilityAnnc,
				RebootAnnc rebootAnnc,
				EventLogAnnc eventLogAnnc,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				TrafficPatternAnnc trafficPatternAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record NotificationTargetMgmtPolicyRef
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs notificationTargetURI optional,
		XSD.AnyURI notificationlPolicyID optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record NotificationTargetPolicy
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.ID creator optional,
		NotificationTargetPolicyAction action_,
		XSD.Token policyLabel,
		LogicalOperator rulesRelationship optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				PolicyDeletionRules policyDeletionRules,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (action_) "name as 'action'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type Notification_1 Notification
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type AggregatedNotification_1 AggregatedNotification
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type record AggregatedNotification_1
	{
		record of Notification notification_list
	}
	with {
		variant "name as 'aggregatedNotification'";
		variant (notification_list) "untagged";
		variant (notification_list[-]) "name as 'notification'";
	};

//FIXME To be added
	type union Representation {
		anytype resource,
		ResponsePrimitive responsePrimitive
	};

	type record Notification_1
	{
		record {
			//XSD.AnyType representation optional, To be exchanged by Representation
			Representation representation optional,
			record {
				Operation operation optional,
				XSD.ID originator optional
			} operationMonitor optional,
			NotificationEventType notificationEventType optional
		} notificationEvent optional,
		XSD.Boolean verificationRequest optional,
		XSD.Boolean subscriptionDeletion optional,
		XSD.AnyURI subscriptionReference optional,
		XSD.ID creator optional,
		XSD.AnyURI notificationForwardingURI optional,
		record {
			XSD.ID originator,
			FilterCriteria filterCriteria
		} iPEDiscoveryRequest optional
	}
	with {
		variant "name as 'notification'";
		//variant (verificationRequest) "text 'true' as '1'";
		//variant (verificationRequest) "text 'false' as '0'";
		//variant (subscriptionDeletion) "text 'true' as '1'";
		//variant (subscriptionDeletion) "text 'false' as '0'";
		variant (iPEDiscoveryRequest) "name as capitalized";
	};


	type SecurityInfo_1 SecurityInfo
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type record SecurityInfo_1
	{
		SecurityInfoType securityInfoType optional,
		DynAuthDasRequest dasRequest optional,
		DynAuthDasResponse dasResponse optional,
		ReceiverESPrimRandObject esprimRandObject optional,
		E2eCompactJWE esprimObject optional,
		XSD.Base64Binary escertkeMessage optional
	}
	with {
		variant "name as 'securityInfo'";
	};


	type enumerated SecurityInfoType
	{
		int1(1),
		int2(2),
		int3(3),
		int4(4),
		int5(5),
		int6(6)
	}
	with {
		variant "useNumber";
		variant "name as uncapitalized";
	};


	type record DynAuthDasResponse
	{
		record {
			SetOfAcrs grantedPrivileges optional,
			AbsRelTimestamp privilegesLifetime optional
		} dynamicACPInfo optional,
		record length(1 .. infinity) of DynAuthJWT tokens
	}
	with {
		variant "name as uncapitalized";
		variant (tokens) "list";
	};


	type record PolicyDeletionRules
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		DeletionContexts deletionRules optional,
		LogicalOperator deletionRulesRelation optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record PollingChannel
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
	};


	type record Reboot
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.Boolean reboot,
		XSD.Boolean factoryReset,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (reboot) "text 'true' as '1'";
		//variant (reboot) "text 'false' as '0'";
		//variant (factoryReset) "text 'true' as '1'";
		//variant (factoryReset) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record RebootAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.Boolean reboot optional,
		XSD.Boolean factoryReset optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (reboot) "text 'true' as '1'";
		//variant (reboot) "text 'false' as '0'";
		//variant (factoryReset) "text 'true' as '1'";
		//variant (factoryReset) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record RemoteCSE
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		CseTypeID cseType optional,
		PoaList pointOfAccess optional,
		XSD.AnyURI cSEBase,
		XSD.ID cSE_ID,
		ExternalID m2M_Ext_ID optional,
		TriggerRecipientID trigger_Recipient_ID optional,
		XSD.Boolean requestReachability,
		XSD.AnyURI nodeLink optional,
		E2eSecInfo e2eSecInfo optional,
		XSD.UnsignedInt triggerReferenceNumber optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				NodeAnnc nodeAnnc,
				Container container,
				ContainerAnnc containerAnnc,
				Group group_,
				GroupAnnc groupAnnc,
				AccessControlPolicy accessControlPolicy,
				AccessControlPolicyAnnc accessControlPolicyAnnc,
				Subscription subscription,
				PollingChannel pollingChannel,
				Schedule schedule,
				TimeSeries timeSeries,
				TimeSeriesAnnc timeSeriesAnnc,
				LocationPolicyAnnc locationPolicyAnnc,
				AEAnnc aEAnnc,
				Sg_flexContainerResource_group sg_flexContainerResource,
				Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (cSEBase) "name as capitalized";
		variant (cSE_ID) "name as 'CSE-ID'";
		variant (m2M_Ext_ID) "name as 'M2M-Ext-ID'";
		variant (trigger_Recipient_ID) "name as 'Trigger-Recipient-ID'";
		//variant (requestReachability) "text 'true' as '1'";
		//variant (requestReachability) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].group_) "name as 'group'";
		variant (choice.choice_list[-].aEAnnc) "name as capitalized";
	};


	type record RemoteCSEAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		CseTypeID cseType optional,
		PoaList pointOfAccess optional,
		XSD.AnyURI cSEBase optional,
		XSD.ID cSE_ID optional,
		XSD.Boolean requestReachability optional,
		XSD.AnyURI nodeLink optional,
		E2eSecInfo e2eSecInfo optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				NodeAnnc nodeAnnc,
				Container container,
				ContainerAnnc containerAnnc,
				Group group_,
				GroupAnnc groupAnnc,
				AccessControlPolicy accessControlPolicy,
				AccessControlPolicyAnnc accessControlPolicyAnnc,
				Subscription subscription,
				PollingChannel pollingChannel,
				ScheduleAnnc scheduleAnnc,
				LocationPolicyAnnc locationPolicyAnnc,
				TimeSeries timeSeries,
				TimeSeriesAnnc timeSeriesAnnc,
				AEAnnc aEAnnc,
				Sg_flexContainerResource_group sg_flexContainerResource,
				Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (cSEBase) "name as capitalized";
		variant (cSE_ID) "name as 'CSE-ID'";
		//variant (requestReachability) "text 'true' as '1'";
		//variant (requestReachability) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].group_) "name as 'group'";
		variant (choice.choice_list[-].aEAnnc) "name as capitalized";
	};


	type record RequestPrimitive
	{
		Operation operation,
		XSD.AnyURI to_,
		XSD.ID from_ optional,
		RequestID requestIdentifier,
		ResourceType resourceType optional,
		PrimitiveContent primitiveContent optional,
		record length(1 .. infinity) of RoleID roleIDs optional,//TODO it must be optional
		Timestamp originatingTimestamp optional,
		AbsRelTimestamp requestExpirationTimestamp optional,
		AbsRelTimestamp resultExpirationTimestamp optional,
		AbsRelTimestamp operationExecutionTime optional,
		ResponseTypeInfo responseType optional,
		AbsRelTimestamp resultPersistence optional,
		ResultContent resultContent optional,
		EventCat eventCategory optional,
		XSD.Boolean deliveryAggregation optional,
		XSD.String groupRequestIdentifier optional,
		FilterCriteria filterCriteria optional,
		DiscResType discoveryResultType optional,
		record length(1 .. infinity) of DynAuthJWT tokens optional,//TODO it must be optional
		record length(1 .. infinity) of TokenID tokenIDs optional,//TODO it must be optional
		record length(1 .. infinity) of XSD.NCName localTokenIDs optional,//TODO it must be optional
		XSD.Boolean tokenRequestIndicator optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (to_) "name as 'to'";
		variant (from_) "name as 'from'";
		variant (roleIDs) "list";
		//variant (deliveryAggregation) "text 'true' as '1'";
		//variant (deliveryAggregation) "text 'false' as '0'";
		variant (tokens) "list";
		variant (tokenIDs) "list";
		variant (localTokenIDs) "list";
	//variant (tokenRequestIndicator) "text 'true' as '1'";
	//variant (tokenRequestIndicator) "text 'false' as '0'";
	};


	type AttributeList_1 AttributeList
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type record Request
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag,
		Operation operation,
		XSD.AnyURI target,
		XSD.ID originator,
		RequestID requestID,
		MetaInformation metaInformation,
		PrimitiveContent primitiveContent,
		RequestStatus requestStatus,
		OperationResult operationResult,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record ResponsePrimitive
	{
		ResponseStatusCode responseStatusCode,
		RequestID requestIdentifier,
		PrimitiveContent primitiveContent optional,
		XSD.ID to_ optional,
		XSD.ID from_ optional,
		Timestamp originatingTimestamp optional,
		AbsRelTimestamp resultExpirationTimestamp optional,
		EventCat eventCategory optional,
		ContentStatus contentStatus optional,
		XSD.PositiveInteger contentOffset optional,
		DynAuthLocalTokenIdAssignments assignedTokenIdentifiers optional,
		DynAuthTokenReqInfo tokenRequestInformation optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (to_) "name as 'to'";
		variant (from_) "name as 'from'";
	};


	type ResourceWrapper Resource
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type ListOfURIs URIList
	with {
		variant "element";
	};


	type XSD.AnyURI URI
	with {
		variant "element";
	};


	type AggregatedResponse_1 AggregatedResponse
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type ListOfChildResourceRef ResourceRefList
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type XSD.String DebugInfo
	with {
		variant "name as uncapitalized";
		variant "element";
	};


	type record ResourceWrapper
	{
		union {
			Sg_resource_group sg_resource,
			Sg_regularResource_group sg_regularResource,
			Sg_announcedResource_group sg_announcedResource,
			Sg_announceableResource_group sg_announceableResource,
			Sg_subordinateResource_group sg_subordinateResource,
			Sg_announcedSubordinateResource_group sg_announcedSubordinateResource,
			Sg_announceableSubordinateResource_group sg_announceableSubordinateResource,
			Sg_mgmtResource_group sg_mgmtResource,
			Sg_announcedMgmtResource_group sg_announcedMgmtResource,
			Sg_flexContainerResource_group sg_flexContainerResource,
			Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
		} choice,
		XSD.AnyURI uRI
	}
	with {
		variant "name as uncapitalized";
		variant (choice) "untagged";
		variant (uRI) "name as capitalized";
	};


	type record AggregatedResponse_1
	{
		XSD.AnyURI resourceID optional,
		record of ResponsePrimitive responsePrimitive_list
	}
	with {
		variant "name as 'aggregatedResponse'";
		variant (responsePrimitive_list) "untagged";
		variant (responsePrimitive_list[-]) "name as 'responsePrimitive'";
	};


	type record ListOfChildResourceRef
	{
		record of ChildResourceRef childResource_list
	}
	with {
		variant "name as uncapitalized";
		variant (childResource_list) "untagged";
		variant (childResource_list[-]) "name as 'childResource'";
	};


	type record Role
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		RoleID roleID,
		XSD.ID issuer,
		XSD.ID holder,
		Timestamp notBefore,
		Timestamp notAfter,
		XSD.String roleName optional,
		XSD.AnyURI tokenLink optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Schedule
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		ScheduleEntries scheduleElement,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record ScheduleAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ScheduleEntries scheduleElement optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
	};


	type record SemanticDescriptor
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.ID creator optional,
		DescriptorRepresentation descriptorRepresentation optional,
		Sparql semanticOpExec optional,
		XSD.Base64Binary descriptor,
		XSD.AnyURI ontologyRef optional,
		ListOfURIs relatedSemantics optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record SemanticDescriptorAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		DescriptorRepresentation descriptorRepresentation optional,
		Sparql semanticOpExec optional,
		XSD.Base64Binary descriptor optional,
		XSD.AnyURI ontologyRef optional,
		ListOfURIs relatedSemantics optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record ServiceSubscribedAppRule
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfM2MID applicableCredIDs optional,
		ListOfM2MID allowedApp_IDs optional,
		ListOfM2MID allowedAEs optional,
		record length(1 .. infinity) of RoleID allowedRole_IDs,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (allowedApp_IDs) "name as 'allowedApp-IDs'";
		variant (allowedRole_IDs) "name as 'allowedRole-IDs'";
		variant (allowedRole_IDs) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record ServiceSubscribedNode
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		NodeID nodeID,
		XSD.ID cSE_ID optional,
		record of DeviceID deviceIdentifier,
		ListOfURIs ruleLinks optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (cSE_ID) "name as 'CSE-ID'";
		variant (deviceIdentifier) "list";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record Software
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String version,
		XSD.String softwareName,
		XSD.AnyURI uRL,
		XSD.Boolean install,
		XSD.Boolean uninstall,
		ActionStatus installStatus,
		XSD.Boolean activate_ optional,
		XSD.Boolean deactivate_ optional,
		ActionStatus activeStatus optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		variant (uRL) "name as capitalized";
		//variant (install) "text 'true' as '1'";
		//variant (install) "text 'false' as '0'";
		//variant (uninstall) "text 'true' as '1'";
		//variant (uninstall) "text 'false' as '0'";
		variant (activate_) "name as 'activate'";
		//variant (activate_) "text 'true' as '1'";
		//variant (activate_) "text 'false' as '0'";
		variant (deactivate_) "name as 'deactivate'";
		//variant (deactivate_) "text 'true' as '1'";
		//variant (deactivate_) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record SoftwareAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		MgmtDefinition mgmtDefinition,
		ListOfURIs objectIDs optional,
		ListOfURIs objectPaths optional,
		XSD.String description optional,
		XSD.String version optional,
		XSD.String softwareName optional,
		XSD.AnyURI uRL optional,
		XSD.Boolean install optional,
		XSD.Boolean uninstall optional,
		ActionStatus installStatus optional,
		XSD.Boolean activate_ optional,
		XSD.Boolean deactivate_ optional,
		ActionStatus activeStatus optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (uRL) "name as capitalized";
		//variant (install) "text 'true' as '1'";
		//variant (install) "text 'false' as '0'";
		//variant (uninstall) "text 'true' as '1'";
		//variant (uninstall) "text 'false' as '0'";
		variant (activate_) "name as 'activate'";
		//variant (activate_) "text 'true' as '1'";
		//variant (activate_) "text 'false' as '0'";
		variant (deactivate_) "name as 'deactivate'";
		//variant (deactivate_) "text 'true' as '1'";
		//variant (deactivate_) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record StatsCollect
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.ID creator optional,
		XSD.String statsCollectID,
		XSD.ID collectingEntityID,
		XSD.ID collectedEntityID,
		StatsRuleStatusType statsRuleStatus,
		StatModelType statModel,
		ScheduleEntries collectPeriod optional,
		XSD.String eventID optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of Subscription subscription_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.subscription_list) "untagged";
		variant (choice.subscription_list[-]) "name as 'subscription'";
	};


	type record StatsConfig
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.ID creator optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				EventConfig eventConfig,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Subscription
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.ID creator optional,
		EventNotificationCriteria eventNotificationCriteria optional,
		XSD.PositiveInteger expirationCounter optional,
		ListOfURIs notificationURI,
		XSD.AnyURI groupID optional,
		XSD.AnyURI notificationForwardingURI optional,
		BatchNotify batchNotify optional,
		RateLimit rateLimit optional,
		XSD.PositiveInteger preSubscriptionNotify optional,
		PendingNotification pendingNotification optional,
		XSD.PositiveInteger notificationStoragePriority optional,
		XSD.Boolean latestNotify optional,
		NotificationContentType notificationContentType,
		EventCat notificationEventCat optional,
		XSD.AnyURI subscriberURI optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Schedule schedule,
				NotificationTargetMgmtPolicyRef notificationTargetMgmtPolicyRef
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (latestNotify) "text 'true' as '1'";
		//variant (latestNotify) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record EventNotificationCriteria
	{
		Timestamp createdBefore optional,
		Timestamp createdAfter optional,
		Timestamp modifiedSince optional,
		Timestamp unmodifiedSince optional,
		XSD.PositiveInteger stateTagSmaller optional,
		XSD.NonNegativeInteger stateTagBigger optional,
		Timestamp expireBefore optional,
		Timestamp expireAfter optional,
		XSD.NonNegativeInteger sizeAbove optional,
		XSD.PositiveInteger sizeBelow optional,
		record length(0 .. 5) of Operation operationMonitor_list,
		AttributeList_1 attribute optional,
		record length(0 .. 5) of NotificationEventType notificationEventType_list,
		MissingData missingData optional
	}
	with {
		variant "name as uncapitalized";
		variant (operationMonitor_list) "untagged";
		variant (operationMonitor_list[-]) "name as 'operationMonitor'";
		variant (notificationEventType_list) "untagged";
		variant (notificationEventType_list[-]) "name as 'notificationEventType'";
	};


	type record BatchNotify
	{
		XSD.NonNegativeInteger number,
		XSD.Duration duration
	}
	with {
		variant "name as uncapitalized";
	};


	type record RateLimit
	{
		XSD.NonNegativeInteger maxNrOfNotify optional,
		XSD.Duration timeWindow optional
	}
	with {
		variant "name as uncapitalized";
	};


	type record SvcFwWrapper
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record SvcFwWrapperAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record SvcObjWrapper
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime optional,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		ListOfNCNames announcedAttribute optional,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				Subscription subscription,
				AllJoynApp allJoynApp
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record SvcObjWrapperAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime optional,
		Timestamp lastModifiedTime optional,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime optional,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.AnyURI containerDefinition,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record of union {
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc,
				Subscription subscription,
				AllJoynAppAnnc allJoynAppAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record TimeSeriesInstance
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		AbsRelTimestamp dataGenerationTime,
		XSD.AnySimpleType content,
		XSD.NonNegativeInteger sequenceNr optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
	};


	type record TimeSeriesInstanceAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		Timestamp expirationTime,
		XSD.AnyURI link,
		AbsRelTimestamp dataGenerationTime optional,
		XSD.AnySimpleType content optional,
		XSD.NonNegativeInteger sequenceNr optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
	};


	type record TimeSeries
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.NonNegativeInteger stateTag,
		XSD.ID creator,
		XSD.NonNegativeInteger maxNrOfInstances optional,
		XSD.NonNegativeInteger maxByteSize optional,
		XSD.NonNegativeInteger maxInstanceAge optional,
		XSD.NonNegativeInteger currentNrOfInstances,
		XSD.NonNegativeInteger currentByteSize,
		XSD.NonNegativeInteger periodicInterval optional,
		XSD.Boolean missingDataDetect optional,
		XSD.NonNegativeInteger missingDataMaxNr optional,
		MissingDataList missingDataList optional,
		XSD.NonNegativeInteger missingDataCurrentNr optional,
		XSD.NonNegativeInteger missingDataDetectTimer optional,
		XSD.AnyURI ontologyRef optional,
		XSD.AnyURI latest,
		XSD.AnyURI oldest,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				TimeSeriesInstance timeSeriesInstance,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (missingDataDetect) "text 'true' as '1'";
		//variant (missingDataDetect) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record TimeSeriesAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.NonNegativeInteger stateTag optional,
		XSD.NonNegativeInteger maxNrOfInstances optional,
		XSD.NonNegativeInteger maxByteSize optional,
		XSD.NonNegativeInteger maxInstanceAge optional,
		XSD.NonNegativeInteger currentNrOfInstances,
		XSD.NonNegativeInteger currentByteSize,
		XSD.NonNegativeInteger periodicInterval optional,
		XSD.Boolean missingDataDetect optional,
		MissingDataList missingDataList optional,
		XSD.NonNegativeInteger missingDataCurrentNr optional,
		XSD.NonNegativeInteger missingDataDetectTimer optional,
		XSD.AnyURI ontologyRef optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				TimeSeriesInstance timeSeriesInstance,
				TimeSeriesInstanceAnnc timeSeriesInstanceAnnc,
				Subscription subscription,
				SemanticDescriptor semanticDescriptor,
				SemanticDescriptorAnnc semanticDescriptorAnnc
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (missingDataDetect) "text 'true' as '1'";
		//variant (missingDataDetect) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record Token
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		TokenID tokenID,
		DynAuthJWT tokenObject,
		XSD.String version optional,
		XSD.ID issuer optional,
		XSD.ID holder optional,
		Timestamp notBefore,
		Timestamp notAfter optional,
		XSD.String tokenName optional,
		ListOfM2MID audience optional,
		record {
			TokenPermission permission
		} permissions optional,
		XSD.String extension_ optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				Subscription subscription
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (extension_) "name as 'extension'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
	};


	type record TrafficPattern
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs optional,
		Timestamp expirationTime,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		ListOfURIs announceTo optional,
		record length(1 .. infinity) of XSD.NCName announcedAttribute,
		XSD.Boolean provideToNSE optional,
		PeriodicIndicator periodicIndicator optional,
		XSD.UnsignedInt periodicDurationTime optional,
		XSD.UnsignedInt periodicIntervalTime optional,
		StationaryIndication stationaryIndication optional,
		XSD.PositiveInteger dataSizeIndicator optional,
		Timestamp validityTime optional,
		ListOfM2MID targetNetwork,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				record of Subscription subscription_list,
				record length(1) of Schedule schedule_list
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		variant (announcedAttribute) "list";
		//variant (provideToNSE) "text 'true' as '1'";
		//variant (provideToNSE) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].subscription_list) "untagged";
		variant (choice.choice_list[-].subscription_list[-]) "name as 'subscription'";
		variant (choice.choice_list[-].schedule_list) "untagged";
		variant (choice.choice_list[-].schedule_list[-]) "name as 'schedule'";
	};


	type record TrafficPatternAnnc
	{
		ResourceName resourceName,
		ResourceType resourceType,
		XSD.ID resourceID,
		NhURI parentID,
		Timestamp creationTime,
		Timestamp lastModifiedTime,
		Labels labels optional,
		AcpType accessControlPolicyIDs,
		Timestamp expirationTime,
		XSD.AnyURI link,
		ListOfURIs dynamicAuthorizationConsultationIDs optional,
		XSD.Boolean provideToNSE optional,
		PeriodicIndicator periodicIndicator optional,
		XSD.UnsignedInt periodicDurationTime optional,
		XSD.UnsignedInt periodicIntervalTime optional,
		StationaryIndication stationaryIndication optional,
		XSD.PositiveInteger dataSizeIndicator optional,
		Timestamp validityTime optional,
		ListOfM2MID targetNetwork optional,
		union {
			record length(1 .. infinity) of ChildResourceRef childResource_list,
			record length(1 .. infinity) of union {
				record of Subscription subscription_list,
				record length(1) of ScheduleAnnc scheduleAnnc_list
			} choice_list
		} choice optional
	}
	with {
		variant "name as uncapitalized";
		variant "element";
		variant (resourceName) "attribute";
		//variant (provideToNSE) "text 'true' as '1'";
		//variant (provideToNSE) "text 'false' as '0'";
		variant (choice) "untagged";
		variant (choice.childResource_list) "untagged";
		variant (choice.childResource_list[-]) "name as 'childResource'";
		variant (choice.choice_list) "untagged";
		variant (choice.choice_list[-]) "untagged";
		variant (choice.choice_list[-].subscription_list) "untagged";
		variant (choice.choice_list[-].subscription_list[-]) "name as 'subscription'";
		variant (choice.choice_list[-].scheduleAnnc_list) "untagged";
		variant (choice.choice_list[-].scheduleAnnc_list[-]) "name as 'scheduleAnnc'";
	};

/* Additional types */

	group OptionalResourceTypes {
  
		//Added by @Naum
		type record AEAnnc_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			XSD.AnyURI link optional,
			XSD.String appName optional,
			XSD.String app_ID optional,
			XSD.ID aE_ID optional,
			PoaList pointOfAccess optional,
			XSD.AnyURI ontologyRef optional,
			XSD.AnyURI nodeLink optional,
			XSD.Boolean requestReachability optional,
			Serializations contentSerialization optional,
			E2eSecInfo e2eSecInfo optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Container container,
					ContainerAnnc containerAnnc,
					Group group_,
					GroupAnnc groupAnnc,
					AccessControlPolicy accessControlPolicy,
					AccessControlPolicyAnnc accessControlPolicyAnnc,
					Subscription subscription,
					ScheduleAnnc scheduleAnnc,
					SemanticDescriptor semanticDescriptor,
					TimeSeries timeSeries,
					TimeSeriesAnnc timeSeriesAnnc,
					TrafficPatternAnnc trafficPatternAnnc,
					Sg_flexContainerResource_group sg_flexContainerResource,
					Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource
				} choice_list
			} choice optional
		}
		with {
			variant "element";
			variant (resourceName) "attribute";
			variant (app_ID) "name as 'App-ID'";
			variant (aE_ID) "name as 'AE-ID'";
			//variant (requestReachability) "text 'true' as '1'";
			//variant (requestReachability) "text 'false' as '0'";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
			variant (choice.choice_list[-].group_) "name as 'group'";
		};

		type record AE_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			XSD.String appName optional,
			XSD.String app_ID optional,
			XSD.ID aE_ID optional,
			PoaList pointOfAccess optional,
			XSD.AnyURI ontologyRef optional,
			XSD.AnyURI nodeLink optional,
			XSD.Boolean requestReachability optional,
			Serializations contentSerialization optional,
			E2eSecInfo e2eSecInfo optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Container container,
					Group group_,
					AccessControlPolicy accessControlPolicy,
					Subscription subscription,
					PollingChannel pollingChannel,
					Schedule schedule,
					SemanticDescriptor semanticDescriptor,
					TimeSeries timeSeries,
					TrafficPattern trafficPattern,
					Sg_flexContainerResource_group sg_flexContainerResource
				} choice_list
			} choice optional
		}
		with {
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (app_ID) "name as 'App-ID'";
			variant (aE_ID) "name as 'AE-ID'";
			//variant (requestReachability) "text 'true' as '1'";
			//variant (requestReachability) "text 'false' as '0'";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
			variant (choice.choice_list[-].group_) "name as 'group'";
	  
			//  long->short conversion XML
			variant                                             "name as 'ae'";
			//variant (resourceName)                              "name as 'rn'";
			variant (resourceType)                              "name as 'ty'";
			variant (resourceID)                                "name as 'ri'";
			variant (parentID)                                  "name as 'pi'";
			variant (creationTime)                              "name as 'ct'";
			variant (lastModifiedTime)                          "name as 'lt'";
			variant (labels)                                    "name as 'lbl'";
			variant (accessControlPolicyIDs)                    "name as 'acpi'";
			variant (expirationTime)                            "name as 'et'";
			variant (dynamicAuthorizationConsultationIDs)       "name as 'daci'";
			variant (announceTo)                                "name as 'at'";
			variant (announcedAttribute)                        "name as 'aa'";
			variant (appName)                                   "name as 'apn'";
			variant (app_ID)                                    "name as 'api'";
			variant (aE_ID)                                     "name as 'aei'";
			variant (pointOfAccess)                             "name as 'poa'";
			variant (ontologyRef)                               "name as 'or'";
			variant (nodeLink)                                  "name as 'nl'";
			variant (requestReachability)                       "name as 'rr'";
			variant (contentSerialization)                      "name as 'csz'";
			variant (e2eSecInfo)								  "name as 'esi'";
			variant (choice.childResource_list[-])              "name as 'cr'";
			variant (choice.choice_list[-].container)           "name as 'cnt'";
			variant (choice.choice_list[-].group_)              "name as 'grp'";
			variant (choice.choice_list[-].accessControlPolicy) "name as 'acp'";
			variant (choice.choice_list[-].subscription)        "name as 'sub'";
			variant (choice.choice_list[-].pollingChannel)      "name as 'pch'";
			variant (choice.choice_list[-].schedule)            "name as 'sch'";

			//  long->short conversion JSON
			//variant (resourceName)                              "JSON:name as rn";
			variant (resourceType)                              "JSON:name as ty";
			variant (resourceID)                                "JSON:name as ri";
			variant (parentID)                                  "JSON:name as pi";
			variant (creationTime)                              "JSON:name as ct";
			variant (lastModifiedTime)                          "JSON:name as lt";
			variant (labels)                                    "JSON:name as lbl";
			variant (accessControlPolicyIDs)                    "JSON:name as acpi";
			variant (expirationTime)                            "JSON:name as et";
			variant (dynamicAuthorizationConsultationIDs)       "JSON:name as daci";
			variant (announceTo)                                "JSON:name as at";
			variant (announcedAttribute)                        "JSON:name as aa";
			variant (appName)                                   "JSON:name as apn";
			variant (app_ID)                                    "JSON:name as api";
			variant (aE_ID)                                     "JSON:name as aei";
			variant (pointOfAccess)                             "JSON:name as poa";
			variant (ontologyRef)                               "JSON:name as or";
			variant (nodeLink)                                  "JSON:name as nl";
			variant (requestReachability)                       "JSON:name as rr";
			variant (contentSerialization)                      "JSON:name as csz";
			variant (e2eSecInfo)								  "JSON:name as esi";
			variant (choice.childResource_list)                 "JSON:name as cr";
			variant (choice.choice_list[-].container)           "JSON:name as cnt";
			variant (choice.choice_list[-].group_)              "JSON:name as grp";
			variant (choice.choice_list[-].accessControlPolicy) "JSON:name as acp";
			variant (choice.choice_list[-].subscription)        "JSON:name as sub";
			variant (choice.choice_list[-].pollingChannel)      "JSON:name as pch";
			variant (choice.choice_list[-].schedule)            "JSON:name as sch";
		};

		type record AccessControlPolicy_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			Timestamp expirationTime optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			SetOfAcrs privileges optional,
			SetOfAcrs selfPrivileges optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of Subscription subscription_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.subscription_list) "untagged";
			variant (choice.subscription_list[-]) "name as 'subscription'";
		};

		type record ContentInstance_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			Timestamp expirationTime optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			XSD.NonNegativeInteger stateTag optional,
			XSD.ID creator optional,
			ContentInfo contentInfo optional,
			XSD.NonNegativeInteger contentSize optional,
			ContentRef contentRef optional,
			XSD.AnyURI ontologyRef optional,
			XSD.AnyType content optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of SemanticDescriptor semanticDescriptor_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
		};

		type record Container_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			XSD.NonNegativeInteger stateTag optional,
			XSD.ID creator optional,
			XSD.NonNegativeInteger maxNrOfInstances optional,
			XSD.NonNegativeInteger maxByteSize optional,
			XSD.NonNegativeInteger maxInstanceAge optional,
			XSD.NonNegativeInteger currentNrOfInstances optional,
			XSD.NonNegativeInteger currentByteSize optional,
			XSD.AnyURI locationID optional,
			XSD.AnyURI ontologyRef optional,
			XSD.Boolean disableRetrieval optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					ContentInstance contentInstance,
					Container container,
					Subscription subscription,
					SemanticDescriptor semanticDescriptor,
					Sg_flexContainerResource_group sg_flexContainerResource
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
		};
	
		type record FlexContainer_optional
		{
			ResourceName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			ListOfNCNames announcedAttribute optional,
			XSD.NonNegativeInteger stateTag optional,
			XSD.ID creator optional,
			XSD.AnyURI containerDefinition optional,
			XSD.AnyURI ontologyRef optional
		}
		with {
			variant "name as uncapitalized";
			variant (resourceName) "attribute";
		};
	
		//added by @Naum
		type record CSEBase_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			CseTypeID cseType optional,
			XSD.ID cSE_ID optional,
			record of ResourceType supportedResourceType optional,
			PoaList pointOfAccess optional,
			XSD.AnyURI nodeLink optional,
			E2eSecInfo e2eSecInfo optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					RemoteCSE remoteCSE,
					RemoteCSEAnnc remoteCSEAnnc,
					Node node,
					AE aE,
					Container container,
					Group group_,
					AccessControlPolicy accessControlPolicy,
					Subscription subscription,
					MgmtCmd mgmtCmd,
					LocationPolicy locationPolicy,
					StatsConfig statsConfig,
					StatsCollect statsCollect,
					Request request,
					Delivery delivery,
					Schedule schedule,
					M2mServiceSubscriptionProfile m2mServiceSubscriptionProfile,
					ServiceSubscribedAppRule serviceSubscribedAppRule,
					Role role,
					XSD.Token token,
					Sg_flexContainerResource_group sg_flexContainerResource
				} choice_list
			} choice optional
		}
		with {
			variant "element";
			variant (resourceName) "attribute";
			variant (cSE_ID) "name as 'CSE-ID'";
			variant (supportedResourceType) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
			variant (choice.choice_list[-].aE) "name as capitalized";
			variant (choice.choice_list[-].group_) "name as 'group'";
		};
	
	
		type record Group_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			XSD.ID creator optional,
			MemberType memberType optional,
			XSD.PositiveInteger currentNrOfMembers optional,
			XSD.PositiveInteger maxNrOfMembers optional,
			ListOfURIs memberIDs optional,
			ListOfURIs membersAccessControlPolicyIDs optional,
			XSD.Boolean memberTypeValidated optional,
			ConsistencyStrategy consistencyStrategy optional,
			XSD.String groupName optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Subscription subscription,
					SemanticDescriptor semanticDescriptor
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			//variant (memberTypeValidated) "text 'true' as '1'";
			//variant (memberTypeValidated) "text 'false' as '0'";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.choice_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list[-]) "name as 'choice'";
			variant (choice.choice_list[-].subscription) "name as 'subscription'";
			variant (choice.choice_list[-].semanticDescriptor) "name as 'semanticDescriptor'";
		};
	
		type record PollingChannel_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			Timestamp expirationTime optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
		};
	
		type record Schedule_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			Timestamp expirationTime optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			ScheduleEntries scheduleElement optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Subscription subscription
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
		};
	
		//Added by @Naum
		type record ServiceSubscribedAppRule_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfM2MID applicableCredIDs optional,
			ListOfM2MID allowedApp_IDs optional,
			ListOfM2MID allowedAEs optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of Subscription subscription_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (allowedApp_IDs) "name as 'allowedApp-IDs'";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.subscription_list) "untagged";
			variant (choice.subscription_list[-]) "name as 'subscription'";
		};
	
		type record Subscription_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			XSD.ID creator optional,
			EventNotificationCriteria eventNotificationCriteria optional,
			XSD.PositiveInteger expirationCounter optional,
			ListOfURIs notificationURI optional,
			XSD.AnyURI groupID optional,
			XSD.AnyURI notificationForwardingURI optional,
			BatchNotify batchNotify optional,
			RateLimit rateLimit optional,
			XSD.PositiveInteger preSubscriptionNotify optional,
			PendingNotification pendingNotification optional,
			XSD.PositiveInteger notificationStoragePriority optional,
			XSD.Boolean latestNotify optional,
			NotificationContentType notificationContentType optional,
			EventCat notificationEventCat optional,
			XSD.AnyURI subscriberURI optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Schedule schedule,
					NotificationTargetMgmtPolicyRef notificationTargetMgmtPolicyRef
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			//variant (latestNotify) "text 'true' as '1'";
			//variant (latestNotify) "text 'false' as '0'";
			variant (choice) "untagged";
		};
	
		//@Martin
		type record LocationPolicy_optional
		{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			LocationSource locationSource optional,
			XSD.Duration locationUpdatePeriod optional,
			NodeID locationTargetID optional,
			XSD.AnyURI locationServer optional,
			XSD.AnyURI locationContainerID optional,
			XSD.String locationContainerName optional,
			XSD.String locationStatus optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					Subscription subscription
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
		};
	
		type record SemanticDescriptor_optional	{
			XSD.NCName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
			XSD.ID creator optional,
			DescriptorRepresentation descriptorRepresentation optional,
			Sparql semanticOpExec optional,
			XSD.Base64Binary descriptor optional,
			XSD.AnyURI ontologyRef optional,
			ListOfURIs relatedSemantics optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of Subscription subscription_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (announcedAttribute) "list";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.subscription_list) "untagged";
			variant (choice.subscription_list[-]) "name as 'subscription'";
		};
	
		type record GenericInterworkingOperationInstance_optional
		{
			ResourceName resourceName optional,
			ResourceType resourceType optional,
			XSD.ID resourceID optional,
			NhURI parentID optional,
			Timestamp creationTime optional,
			Timestamp lastModifiedTime optional,
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			ListOfNCNames announcedAttribute optional,
			XSD.NonNegativeInteger stateTag optional,
			XSD.ID creator optional,
			XSD.AnyURI containerDefinition optional,
			XSD.AnyURI ontologyRef optional,
			XSD.String operationName optional,
			XSD.String operationState optional,
			ListOfDataLinks inputDataPointLinks optional,
			ListOfDataLinks outputDataPointLinks optional,
			ListOfDataLinks inputLinks optional,
			ListOfDataLinks outputLinks optional,
			union {
				record length(1 .. infinity) of ChildResourceRef childResource_list,
				record length(1 .. infinity) of union {
					SemanticDescriptor semanticDescriptor,
					Subscription subscription
				} choice_list
			} choice optional
		}
		with {
			variant "name as uncapitalized";
			variant "element";
			variant (resourceName) "attribute";
			variant (choice) "untagged";
			variant (choice.childResource_list) "untagged";
			variant (choice.childResource_list[-]) "name as 'childResource'";
			variant (choice.choice_list) "untagged";
			variant (choice.choice_list[-]) "untagged";
		};
	
	}//end group
	
	
	group InvalidTypes {
		
		type record AE_update_invalid {
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			XSD.String appName optional,
			PoaList pointOfAccess optional,
			XSD.AnyURI ontologyRef optional,
			XSD.AnyURI nodeLink optional,
			XSD.Boolean requestReachability optional,
			Serializations contentSerialization optional,
			E2eSecInfo e2eSecInfo optional
		};
       
		type record ACP_update_invalid {
			Labels labels optional,
			Timestamp expirationTime optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for ACP
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			SetOfAcrs privileges optional,
			SetOfAcrs selfPrivileges optional
		}
    
    	
		type record Container_update_invalid {
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests (RO attributes)
			XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Container
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			XSD.NonNegativeInteger maxNrOfInstances optional,
			XSD.NonNegativeInteger maxByteSize optional,
			XSD.NonNegativeInteger maxInstanceAge optional,
			XSD.AnyURI locationID optional,
			XSD.AnyURI ontologyRef optional
		}
	          
		type record Group_update_invalid {
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Group
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			XSD.NonNegativeInteger maxNrOfMembers optional,
			ListOfURIs memberIDs optional,
			ListOfURIs membersAccessControlPolicyIDs optional,
			XSD.String groupName optional
		}
       
		type record PollingChannel_update_invalid {
			Labels labels optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for PollingChannel
			Timestamp expirationTime optional
		}
       
		type record Schedule_update_invalid {
			Labels labels optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Schedule
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			ScheduleEntries scheduleElement optional
		}
       
		type record Subscription_update_invalid {
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp creationTime optional,//Invalid field to be used for BI tests
			XSD.NonNegativeInteger maxNrOfInstances optional,//Invalid field, non existing for Subscription
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			EventNotificationCriteria eventNotificationCriteria optional,
			XSD.PositiveInteger expirationCounter optional,
			ListOfURIs notificationURI optional,
			XSD.AnyURI groupID optional,
			XSD.AnyURI notificationForwardingURI optional,
			BatchNotify batchNotify optional,
			RateLimit rateLimit optional,
			PendingNotification pendingNotification optional,
			XSD.PositiveInteger notificationStoragePriority optional,
			XSD.Boolean latestNotify optional,
			NotificationContentType notificationContentType optional,
			EventCat notificationEventCat optional
		}
       
		//@Martin
		type record LocationPolicy_update_invalid {
			Timestamp creationTime optional,//invalid field to be used for BI tests
			Timestamp lastModifiedTime optional,//invalid field to be used for BI tests
			Labels labels optional,
			AcpType accessControlPolicyIDs optional,
			Timestamp expirationTime optional,
			ListOfURIs dynamicAuthorizationConsultationIDs optional,
			ListOfURIs announceTo optional,
			record of XSD.Token announcedAttribute optional,
			LocationSource locationSource optional,//invalid field to be used for BI tests
			XSD.Duration locationUpdatePeriod optional,
			NodeID locationTargetID optional,//invalid field to be used for BI tests
			XSD.AnyURI locationServer optional,//invalid field to be used for BI tests
			XSD.AnyURI locationContainerID optional,//invalid field to be used for BI tests
			XSD.String locationContainerName optional,
			XSD.String locationStatus optional//invalid field to be used for BI tests
		}
       
	}//end group invalidTypes

	group OtherTypes {
		
		type NhURI ParentID;
    	
		type record MyResource {
			integer parentIndex,
			PrimitiveContent resource
		};
		
		type record of MyResource MyResourcesList;
		
		type record of integer IntegerList;
		
		type enumerated AddressingFormat {
			e_cseRelative,
			e_spRelative,
			e_absolute
		}
	}

}
with {
	encode "XML";
	variant "namespace as 'http://www.onem2m.org/xml/protocols' prefix 'm2m'";
	variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
	extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid, Schedule_optional, Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainer_optional, GenericInterworkingOperationInstance_optional"
}