From b55fb5d2489d8dfb810ab35513c44f7284ded86a Mon Sep 17 00:00:00 2001
From: Wolfgang Granzow <wgranzow@qti.qualcomm.com>
Date: Tue, 11 Apr 2017 15:22:31 +0200
Subject: [PATCH] Rel-3 changes agreed at PRO#28

See PRO-2017-0084 for the CR references and detailed list of changes
---
 v3_1_0/CDT-commonTypes-v3_1_0.xsd       | 82 ++++++++++++++++++++++++-
 v3_1_0/CDT-enumerationTypes-v3_1_0.xsd  | 40 ++++++++++++
 v3_1_0/CDT-notification-v3_1_0.xsd      | 12 +++-
 v3_1_0/CDT-remoteCSE-v3_1_0.xsd         |  2 +
 v3_1_0/CDT-requestPrimitive-v3_1_0.xsd  | 10 ++-
 v3_1_0/CDT-responsePrimitive-v3_1_0.xsd |  4 +-
 v3_1_0/CDT-subscription-v3_1_0.xsd      |  9 ++-
 7 files changed, 153 insertions(+), 6 deletions(-)

diff --git a/v3_1_0/CDT-commonTypes-v3_1_0.xsd b/v3_1_0/CDT-commonTypes-v3_1_0.xsd
index 4295a02..5f1dc8d 100644
--- a/v3_1_0/CDT-commonTypes-v3_1_0.xsd
+++ b/v3_1_0/CDT-commonTypes-v3_1_0.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/v3_1_0/CDT-enumerationTypes-v3_1_0.xsd b/v3_1_0/CDT-enumerationTypes-v3_1_0.xsd
index 994ca30..f9c1748 100644
--- a/v3_1_0/CDT-enumerationTypes-v3_1_0.xsd
+++ b/v3_1_0/CDT-enumerationTypes-v3_1_0.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/v3_1_0/CDT-notification-v3_1_0.xsd b/v3_1_0/CDT-notification-v3_1_0.xsd
index 7708d01..850e6b6 100644
--- a/v3_1_0/CDT-notification-v3_1_0.xsd
+++ b/v3_1_0/CDT-notification-v3_1_0.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/v3_1_0/CDT-remoteCSE-v3_1_0.xsd b/v3_1_0/CDT-remoteCSE-v3_1_0.xsd
index d8883e6..3ff9cb2 100644
--- a/v3_1_0/CDT-remoteCSE-v3_1_0.xsd
+++ b/v3_1_0/CDT-remoteCSE-v3_1_0.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/v3_1_0/CDT-requestPrimitive-v3_1_0.xsd b/v3_1_0/CDT-requestPrimitive-v3_1_0.xsd
index c907f3b..715a7ee 100644
--- a/v3_1_0/CDT-requestPrimitive-v3_1_0.xsd
+++ b/v3_1_0/CDT-requestPrimitive-v3_1_0.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/v3_1_0/CDT-responsePrimitive-v3_1_0.xsd b/v3_1_0/CDT-responsePrimitive-v3_1_0.xsd
index 1e6913c..e8fe22c 100644
--- a/v3_1_0/CDT-responsePrimitive-v3_1_0.xsd
+++ b/v3_1_0/CDT-responsePrimitive-v3_1_0.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/v3_1_0/CDT-subscription-v3_1_0.xsd b/v3_1_0/CDT-subscription-v3_1_0.xsd
index 9b6f38c..16a9cdd 100644
--- a/v3_1_0/CDT-subscription-v3_1_0.xsd
+++ b/v3_1_0/CDT-subscription-v3_1_0.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