From 9e66209287056e28934f57b437eefc31dc0536f7 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Mon, 11 May 2020 14:42:02 +0200
Subject: [PATCH] XSD v3_1_0 baseline

---
 CDT-commonTypes.xsd       | 82 ++++++++++++++++++++++++++++++++++++++-
 CDT-enumerationTypes.xsd  | 40 +++++++++++++++++++
 CDT-notification.xsd      | 12 +++++-
 CDT-remoteCSE.xsd         |  2 +
 CDT-requestPrimitive.xsd  | 10 ++++-
 CDT-responsePrimitive.xsd |  4 +-
 CDT-subscription.xsd      |  9 ++++-
 7 files changed, 153 insertions(+), 6 deletions(-)

diff --git a/CDT-commonTypes.xsd b/CDT-commonTypes.xsd
index 1acaf12..212c45b 100644
--- a/CDT-commonTypes.xsd
+++ b/CDT-commonTypes.xsd
@@ -125,6 +125,23 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			<xs:length value="2" />
 		</xs:restriction>
 	</xs:simpleType>
+	
+	<!-- "signatureList" is a space separated list of base64url encoded elements which includes at lease one element -->
+	<xs:simpleType name="signatureList">
+		<xs:restriction>
+			<xs:simpleType>
+				<xs:list itemType="m2m:base64url"/>
+			</xs:simpleType>
+			<xs:minLength value="1" />
+		</xs:restriction>
+	</xs:simpleType>
+	
+	<!-- data type required to define "signatureList" above -->
+	<xs:simpleType name="base64url">
+		<xs:restriction base="xs:string" >
+			<xs:pattern value="([a-zA-Z0-9\-_=]+)" />
+		</xs:restriction>
+	</xs:simpleType>
 
 	 
 	<!-- ipv4 and ipv6 are defined in commonTypes -->
@@ -480,7 +497,11 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 					</xs:restriction> 
 				</xs:simpleType>
 			</xs:element>
-			<xs:element name="groupRequestTargetMembers" type="m2m:listOfURIs" minOccurs="0"/>
+			<xs:element name="groupRequestTargetMembers" type="m2m:listOfURIs" minOccurs="0"/>			
+			<xs:element name="authorSignIndicator" type="xs:boolean" minOccurs="0"/>
+			<xs:element name="authorSigns" type="m2m:signatureList" minOccurs="0"/>
+			<xs:element name="authorRelIndicator" type="xs:boolean" minOccurs="0"/>
+			<xs:element name="originator" type="m2m:ID" minOccurs="0"/>
 		</xs:sequence>
 	</xs:complexType>
 
@@ -1028,6 +1049,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 					</xs:restriction> 
 				</xs:simpleType>
 			</xs:element>
+			<xs:element name="authorSignIndicator" type="xs:boolean" minOccurs="0" />
 		</xs:sequence>
 	</xs:complexType>
 	
@@ -1076,6 +1098,64 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			
 		</xs:sequence>
 	</xs:complexType>
+	
+	<!-- data type m2m:operationMonitor is defined in the CDT-subscription XSD file -->
+	
+	<xs:complexType name="dynAuthRelMapRequest">
+		<xs:sequence>
+			<xs:element name="originator" type="m2m:ID" minOccurs="0" />
+			<xs:element name="tokenIDs" minOccurs="1" >
+				<xs:simpleType>
+					<xs:restriction> 
+						<xs:simpleType> 
+							<xs:list itemType="m2m:tokenID" />
+						</xs:simpleType> 				
+						<xs:minLength value="1" /> 
+					</xs:restriction> 
+				</xs:simpleType>
+			</xs:element>		
+			<xs:element name="tokens" minOccurs="0" >
+				<xs:simpleType>
+					<xs:restriction> 
+						<xs:simpleType> 
+							<xs:list itemType="m2m:dynAuthJWT" />
+						</xs:simpleType> 				
+						<xs:minLength value="1" /> 
+					</xs:restriction> 
+				</xs:simpleType>
+			</xs:element>		
+			<xs:element name="authorSigns" type="m2m:signatureList" minOccurs="0" />
+			<xs:element name="authorSignReqInfo" type="xs:boolean" minOccurs="0" />
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="dynAuthRelMapResponse">
+		<xs:sequence>
+			<xs:element name="tokenIDs" minOccurs="1" >
+				<xs:simpleType>
+					<xs:restriction> 
+						<xs:simpleType> 
+							<xs:list itemType="m2m:tokenID" />
+						</xs:simpleType> 				
+						<xs:minLength value="1" /> 
+					</xs:restriction> 
+				</xs:simpleType>
+			</xs:element>		
+			<xs:element name="tokens" minOccurs="0" >
+				<xs:simpleType>
+					<xs:restriction> 
+						<xs:simpleType> 
+							<xs:list itemType="m2m:dynAuthJWT" />
+						</xs:simpleType> 				
+						<xs:minLength value="1" /> 
+					</xs:restriction> 
+				</xs:simpleType>
+			</xs:element>		
+			<xs:element name="authorSignReqInfo" type="xs:boolean" minOccurs="0" />
+			<xs:element name="authorSigns" type="m2m:signatureList" minOccurs="0" />
+		</xs:sequence>
+	</xs:complexType>
+	
 
 	<!-- Resource type definitions. These types include the "common attributes" that are used by oneM2M Resources. Each oneM2M 
 		Resource has a resource type that is defined in a separate schema, but each resource type extends one of the types that is 
diff --git a/CDT-enumerationTypes.xsd b/CDT-enumerationTypes.xsd
index 994ca30..f9c1748 100644
--- a/CDT-enumerationTypes.xsd
+++ b/CDT-enumerationTypes.xsd
@@ -237,6 +237,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			<xs:enumeration value="7" />
 			<!-- Child Resources -->
 			<xs:enumeration value="8" />
+			<!-- Modified Attributes -->
+			<xs:enumeration value="9" />
 		</xs:restriction>
 	</xs:simpleType>
 
@@ -1191,6 +1193,44 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 		</xs:restriction>
 	</xs:simpleType>
 
+	<xs:simpleType name="triggerPurpose">
+		<xs:annotation>
+			<xs:documentation>Used for the triggerPurpose field of trigger requests on Mcn</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:integer">
+			<!-- establishConnection -->
+			<xs:enumeration value="0" />
+			<!-- registrationRequest -->
+			<xs:enumeration value="1" />
+			<!-- executeCRUD -->
+			<xs:enumeration value="2" />
+		</xs:restriction>
+	</xs:simpleType>
+	
+	
+	<xs:simpleType name="serializationType">
+		<xs:annotation>
+			<xs:documentation>Used for the triggerInfoSrializationType field of trigger requests on Mcn</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:integer">
+			<!-- XML -->
+			<xs:enumeration value="1" />
+			<!-- JSON -->
+			<xs:enumeration value="2" />
+			<!-- XML + JSON -->
+			<xs:enumeration value="3" />
+			<!-- CBOR -->
+			<xs:enumeration value="4" />
+			<!-- XML + CBOR -->
+			<xs:enumeration value="5" />
+			<!-- JSON + CBOR -->
+			<xs:enumeration value="6" />
+			<!-- XML + JSON + CBOR -->
+			<xs:enumeration value="7" />
+		</xs:restriction>
+	</xs:simpleType>
+	
+
 	
 </xs:schema>
 
diff --git a/CDT-notification.xsd b/CDT-notification.xsd
index 26ac7ff..70a5a4e 100644
--- a/CDT-notification.xsd
+++ b/CDT-notification.xsd
@@ -82,9 +82,12 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
             <xs:element name="esprimRandObject" type="m2m:receiverESPrimRandObject" minOccurs="0" />
             <xs:element name="esprimObject" type="m2m:e2eCompactJWE" minOccurs="0" />
             <xs:element name="escertkeMessage" type="xs:base64Binary" minOccurs="0" />
+            <xs:element name="dynAuthRelMapRequest" type="m2m:dynAuthRelMapRequest" minOccurs="0" />
+            <xs:element name="dynAuthRelMapResponse" type="m2m:dynAuthRelMapResponse" minOccurs="0" />
         </xs:sequence>
     </xs:complexType>
     
+    
     <xs:simpleType name="securityInfoType">
         <xs:restriction base="xs:integer">
             <!-- Dynamic Authorization Request -->
@@ -99,9 +102,13 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
             <xs:enumeration value="5" />
             <!-- ESCertKE Message -->
             <xs:enumeration value="6" />
+            <!-- Dynamic Authorization Relationship Mapping Request -->
+            <xs:enumeration value="7" />
+            <!-- Dynamic Authorization Relationship Mapping Response -->
+            <xs:enumeration value="8" />
         </xs:restriction>
     </xs:simpleType>
-    
+        
     <xs:complexType name="dynAuthDasResponse">
         <xs:sequence>
             <xs:element name="dynamicACPInfo" minOccurs="0" >
@@ -121,7 +128,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
                         <xs:minLength value="1" /> 
                     </xs:restriction> 
                 </xs:simpleType>
-            </xs:element>        
+            </xs:element>
+            <xs:element name="authorSignReqInfo" type="xs:boolean" minOccurs="0" />
         </xs:sequence>
     </xs:complexType>
 
diff --git a/CDT-remoteCSE.xsd b/CDT-remoteCSE.xsd
index 44a2943..7c730d8 100644
--- a/CDT-remoteCSE.xsd
+++ b/CDT-remoteCSE.xsd
@@ -55,6 +55,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 						<xs:element name="nodeLink" type="xs:anyURI" minOccurs="0" />
 						<xs:element name="e2eSecInfo" type="m2m:e2eSecInfo" minOccurs="0" />
 						<xs:element name="triggerReferenceNumber" type="xs:unsignedInt" minOccurs="0" />
+						<xs:element name="descendantCSEs" type="m2m:listOfM2MID" minOccurs="0" />
 						
 	                    <!-- Child Resources -->
                         <xs:choice minOccurs="0" maxOccurs="1">
@@ -98,6 +99,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 						<xs:element name="requestReachability" type="xs:boolean" minOccurs="0" />
 						<xs:element name="nodeLink" type="xs:anyURI" minOccurs="0" />
 						<xs:element name="e2eSecInfo" type="m2m:e2eSecInfo" minOccurs="0" />
+						<xs:element name="descendantCSEs" type="m2m:listOfM2MID" minOccurs="0" />
                        
                         <!-- Child Resources -->
                         <xs:choice minOccurs="0" maxOccurs="1">
diff --git a/CDT-requestPrimitive.xsd b/CDT-requestPrimitive.xsd
index 9d53289..e827a0f 100644
--- a/CDT-requestPrimitive.xsd
+++ b/CDT-requestPrimitive.xsd
@@ -116,7 +116,15 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
           </xs:element>
           <!-- parameter "Token Request Indicator" -->
           <xs:element name="tokenRequestIndicator" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="groupRequestTargetMembers" type="m2m:listOfURIs" minOccurs="0"/>       
+          <!-- parameter "Group Request Traget Members" -->
+          <xs:element name="groupRequestTargetMembers" type="m2m:listOfURIs" minOccurs="0"/>            
+          <!-- parameter "Authorization Signature Indicator" -->
+          <xs:element name="authorSignIndicator" type="xs:boolean" minOccurs="0"/>
+          <!-- parameter "Authorization Signatures" -->
+          <xs:element name="authorSigns" type="m2m:signatureList" minOccurs="0"/>
+          <!-- parameter "Authorization Relationship Indicator" -->
+          <xs:element name="authorRelIndicator" type="xs:boolean" minOccurs="0"/>
+         
         </xs:sequence> 	       
       </xs:complexType>
     </xs:element>
diff --git a/CDT-responsePrimitive.xsd b/CDT-responsePrimitive.xsd
index aca28c3..714f8cd 100644
--- a/CDT-responsePrimitive.xsd
+++ b/CDT-responsePrimitive.xsd
@@ -106,7 +106,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
           <!-- parameter "Assigned Token Identifiers -->
           <xs:element name="assignedTokenIdentifiers" type="m2m:dynAuthLocalTokenIdAssignments" minOccurs="0" />
           <!-- parameter "Token Request Information -->
-          <xs:element name="tokenRequestInformation" type="m2m:dynAuthTokenReqInfo" minOccurs="0" />          
+          <xs:element name="tokenRequestInformation" type="m2m:dynAuthTokenReqInfo" minOccurs="0" />    
+          <!-- parameter "Authorization Signature Request Information -->
+          <xs:element name="authorSignReqInfo" type="xs:boolean" minOccurs="0" />
         </xs:sequence> 	       
       </xs:complexType>
     </xs:element>
diff --git a/CDT-subscription.xsd b/CDT-subscription.xsd
index 184cc7f..4da487d 100644
--- a/CDT-subscription.xsd
+++ b/CDT-subscription.xsd
@@ -81,12 +81,19 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			<xs:element name="expireAfter" type="m2m:timestamp" minOccurs="0" />
 			<xs:element name="sizeAbove" type="xs:nonNegativeInteger" minOccurs="0" />
 			<xs:element name="sizeBelow" type="xs:positiveInteger" minOccurs="0" />
-			<xs:element name="operationMonitor" type="m2m:operation" minOccurs="0" maxOccurs="5" />
+			<xs:element name="operationMonitor" type="m2m:operationMonitor" minOccurs="0" maxOccurs="unbounded" />
 			<xs:element name="attribute" type="m2m:attributeList" minOccurs="0" maxOccurs="1" />
 			<xs:element name="notificationEventType" type="m2m:notificationEventType" minOccurs="0" maxOccurs="5" />
 			<xs:element name="missingData" type="m2m:missingData" minOccurs="0" />
 		</xs:sequence>
 	</xs:complexType>
+	
+	<xs:complexType name="operationMonitor">
+		<xs:sequence>
+			<xs:element name="operations" type="m2m:accessControlOperations" minOccurs="0" />
+			<xs:element name="originator" type="m2m:ID" minOccurs="0" />
+		</xs:sequence>
+	</xs:complexType>
 
 	<xs:complexType name="batchNotify">
 		<xs:sequence>
-- 
GitLab