From 36da398e0297d7c7eb9c92d8593e4832d4a86b91 Mon Sep 17 00:00:00 2001
From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org>
Date: Tue, 17 May 2022 15:35:25 +0200
Subject: [PATCH] SDS-2020-0019R12 - TS-0004-nwMonitoringReq_resource_R4

Signed-off-by: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org>
---
 CDT-AE.xsd               |  5 +++-
 CDT-CSEBase.xsd          |  2 ++
 CDT-commonTypes.xsd      | 17 +++++++++++
 CDT-enumerationTypes.xsd | 51 +++++++++++++++++++++++++++++++-
 CDT-nwMonitoringReq.xsd  | 64 ++++++++++++++++++++++++++++++++++++++++
 CDT-remoteCSE.xsd        |  3 ++
 6 files changed, 140 insertions(+), 2 deletions(-)
 create mode 100644 CDT-nwMonitoringReq.xsd

diff --git a/CDT-AE.xsd b/CDT-AE.xsd
index 5f1e8d5..d687c07 100644
--- a/CDT-AE.xsd
+++ b/CDT-AE.xsd
@@ -42,6 +42,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 	<xs:include schemaLocation="CDT-transaction.xsd" />
     <xs:include schemaLocation="CDT-e2eQosSession.xsd" />
 	<xs:include schemaLocation="CDT-timeSyncBeacon.xsd" />
+    <xs:include schemaLocation="CDT-nwMonitoringReq.xsd" />
     
 	<xs:element name="AE" substitutionGroup="m2m:sg_announceableResource">
 		<xs:complexType>
@@ -89,7 +90,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 								<xs:element ref="m2m:transaction" />
 								<xs:element ref="m2m:e2eQosSession" />
 								<xs:element ref="m2m:timeSyncBeacon" />
-							</xs:choice>
+								<xs:element ref="m2m:nwMonitoringReq" />
+                            </xs:choice>
 						</xs:choice>
 					</xs:sequence>
 				</xs:extension>
@@ -146,6 +148,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 								<xs:element ref="m2m:transactionMgmt" />
 								<xs:element ref="m2m:transaction" />
 								<xs:element ref="m2m:e2eQosSession" />
+                            	<xs:element ref="m2m:nwMonitoringReq" />
                             </xs:choice>
 						</xs:choice>
 					</xs:sequence>
diff --git a/CDT-CSEBase.xsd b/CDT-CSEBase.xsd
index 97bedae..6c94d3e 100644
--- a/CDT-CSEBase.xsd
+++ b/CDT-CSEBase.xsd
@@ -61,6 +61,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
     <xs:include schemaLocation="CDT-semanticRuleRepository.xsd" />
     <xs:include schemaLocation="CDT-e2eQosSession.xsd" />
     <xs:include schemaLocation="CDT-timeSyncBeacon.xsd" />
+    <xs:include schemaLocation="CDT-nwMonitoringReq.xsd" />
     
 	<xs:element name="CSEBase" substitutionGroup="m2m:sg_resource">
 		<xs:complexType>
@@ -125,6 +126,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
                                 <xs:element ref="m2m:semanticRuleRepository" />
                                 <xs:element ref="m2m:e2eQosSession" />
                                 <xs:element ref="m2m:timeSyncBeacon" />
+                                <xs:element ref="m2m:nwMonitoringReq" />
                             </xs:choice>
                         </xs:choice>
 					</xs:sequence>
diff --git a/CDT-commonTypes.xsd b/CDT-commonTypes.xsd
index 9768a92..26a4f76 100644
--- a/CDT-commonTypes.xsd
+++ b/CDT-commonTypes.xsd
@@ -505,6 +505,23 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 		</xs:restriction>
     </xs:simpleType>
 
+	<xs:simpleType name="congestionLevel">
+		<!-- User-defined range -->
+		<restriction base='xs:integer'>
+			<xs:minInclusive value="0" />
+			<xs:maxInclusive value="31" />
+		</restriction>
+    </xs:simpleType>
+
+	<xs:simpleType name="congestionLevels">
+		<xs:restriction> 
+			<xs:simpleType> 
+				<xs:list itemType="m2m:congestionLevel" />
+			</xs:simpleType> 	
+			<xs:minLength value="1" /> 
+		</xs:restriction> 
+	</xs:simpleType>
+
 	<xs:simpleType name="resourceList" >
 		<xs:list itemType="xs:anyURI" /> 			
 	</xs:simpleType>
diff --git a/CDT-enumerationTypes.xsd b/CDT-enumerationTypes.xsd
index 9053828..5b696a5 100644
--- a/CDT-enumerationTypes.xsd
+++ b/CDT-enumerationTypes.xsd
@@ -151,6 +151,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			<xs:enumeration value="59" />			
 			<!-- timeSyncBeacon -->
 			<xs:enumeration value="60" />			
+			<!-- nwMonitoringReq -->
+			<xs:enumeration value="61" />			
 			<!-- accessControlPolicyAnnc -->
 			<xs:enumeration value="10001" />
 			<!-- AEAnnc -->
@@ -672,7 +674,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 			<xs:enumeration value="59" />			
 			<!-- timeSyncBeacon -->
 			<xs:enumeration value="60" />			
-			<!-- accessControlPolicyAnnc -->
+			<!-- nwMonitoringReq -->
+			<xs:enumeration value="61" />			
+				<!-- accessControlPolicyAnnc -->
 			<xs:enumeration value="10001" />
 			<!-- AEAnnc -->
 			<xs:enumeration value="10002" />
@@ -1956,5 +1960,50 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 		</xs:restriction>
 	</xs:simpleType>
 
+	<xs:simpleType name="monitorEnable">
+		<xs:restriction base="xs:integer">
+			<!-- MonitorCongestion -->
+			<xs:enumeration value="1" />
+			<!-- MonitorDeviceNumber -->
+			<xs:enumeration value="2" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:simpleType name="monitorStatus">
+		<xs:restriction base="xs:integer">
+			<!-- DISABLED -->
+			<xs:enumeration value="0" />
+			<!-- ENABLED -->
+			<xs:enumeration value="1" />
+			<!-- FAILED -->
+			<xs:enumeration value="2" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:simpleType name="failureReason">
+		<xs:restriction base="xs:integer">
+			<!-- BAD_REQUEST -->
+			<xs:enumeration value="1" />
+			<!-- UNAUTHORIZED -->
+			<xs:enumeration value="2" />
+			<!-- FORBIDDEN -->
+			<xs:enumeration value="3" />
+			<!-- NOT_FOUND -->
+			<xs:enumeration value="4" />
+			<!-- LENGTH_REQUIRED -->
+			<xs:enumeration value="5" />
+			<!-- PAYLOAD_TOO_LARGE -->
+			<xs:enumeration value="6" />
+			<!-- UNSUPPORTED_MEDIA_TYPE -->
+			<xs:enumeration value="7" />
+			<!-- TOO_MANY_REQUESTS -->
+			<xs:enumeration value="8" />
+			<!-- INTERNAL_SERVER_ERROR -->
+			<xs:enumeration value="9" />
+			<!-- SERVICE_UNAVAILABLE -->
+			<xs:enumeration value="10" />
+		</xs:restriction>
+	</xs:simpleType>
+
 </xs:schema>
 
diff --git a/CDT-nwMonitoringReq.xsd b/CDT-nwMonitoringReq.xsd
new file mode 100644
index 0000000..df0d633
--- /dev/null
+++ b/CDT-nwMonitoringReq.xsd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+Copyright Notification
+
+The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices 
+contained in the original materials on any copies of the materials and that you comply strictly with these terms. 
+This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of 
+any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. 
+© 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). All rights reserved.
+
+
+Notice of Disclaimer & Limitation of Liability 
+
+The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand 
+and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations. 
+No recommendation as to products or vendors is made or should be implied. 
+
+NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, 
+GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY 
+PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. 
+NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO 
+ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. 
+oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER.
+
+-->
+
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.onem2m.org/xml/protocols"
+	xmlns:m2m="http://www.onem2m.org/xml/protocols" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+	<xs:include schemaLocation="CDT-commonTypes.xsd" />
+	<xs:include schemaLocation="CDT-subscription.xsd"/>
+
+	<xs:element name="nwMonitoringReq" substitutionGroup="m2m:sg_regularResource">
+		<xs:complexType>
+			<xs:complexContent>
+				<!-- Inherit common attributes from RegularResource Type -->
+				<xs:extension base="m2m:regularResource">
+					<xs:sequence>
+						<!-- Common Attribute, specific to <container>, <contentInstance>, <request> and <delivery> and other resources -->
+						<!-- Resource Specific Attributes -->
+						<xs:element name="monitorEnable" type="m2m:monitorEnable"/>
+						<xs:element name="monitorStatus" type="m2m:monitorStatus"/>
+						<xs:element name="failureReason" type="m2m:failureReason" minOccurs="0" />
+						<xs:element name="geographicArea" type="m2m:locationRegion"/>
+						<xs:element name="congestionLevel" type="m2m:congestionLevels" minOccurs="0" />
+						<xs:element name="congestionStatus" type="m2m:congestionLevel" minOccurs="0" />
+						<xs:element name="numberOfDevices" type="xs:nonNegativeInteger" minOccurs="0" />
+						<xs:element name="externalGroupID" type="m2m:externalID" minOccurs="0" />
+						<xs:element name="M2M-Ext-IDs" type="m2m:externalID" minOccurs="0" />
+						
+						<!-- Child Resources -->
+						<xs:choice minOccurs="0" maxOccurs="1">
+							<xs:element name="childResource" type="m2m:childResourceRef" minOccurs="1" maxOccurs="unbounded" />
+							<xs:choice minOccurs="1" maxOccurs="unbounded">
+								<xs:element ref="m2m:subscription" />
+							</xs:choice>
+						</xs:choice>
+					</xs:sequence>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+</xs:schema>
diff --git a/CDT-remoteCSE.xsd b/CDT-remoteCSE.xsd
index 645b443..5bac0b8 100644
--- a/CDT-remoteCSE.xsd
+++ b/CDT-remoteCSE.xsd
@@ -44,6 +44,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
 	<xs:include schemaLocation="CDT-transaction.xsd" />
     <xs:include schemaLocation="CDT-e2eQosSession.xsd" />
     <xs:include schemaLocation="CDT-timeSyncBeacon.xsd" />
+    <xs:include schemaLocation="CDT-nwMonitoringReq.xsd" />
 					
 	<xs:element name="remoteCSE" substitutionGroup="m2m:sg_announceableResource">
 		<xs:complexType>
@@ -102,6 +103,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
                             	<xs:element ref="m2m:e2eQosSession" />
                             	<xs:element ref="m2m:timeSyncBeacon" />
                             	<xs:element ref="m2m:timeSyncBeaconAnnc" />
+                            	<xs:element ref="m2m:nwMonitoringReq" />
                             </xs:choice>
                         </xs:choice>
 					</xs:sequence>
@@ -161,6 +163,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
                             	<xs:element ref="m2m:transactionMgmt" />
                             	<xs:element ref="m2m:transaction" />
                             	<xs:element ref="m2m:e2eQosSession" />
+                            	<xs:element ref="m2m:nwMonitoringReq" />
                             </xs:choice>
                         </xs:choice>
 					</xs:sequence>
-- 
GitLab