SEC-commonTypes-v2_1_0.xsd 13.2 KB
<?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/securityProtocols"
	xmlns:sec="http://www.onem2m.org/xml/securityProtocols"
	xmlns:m2m="http://www.onem2m.org/xml/protocols" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:import namespace="http://www.onem2m.org/xml/protocols" schemaLocation="CDT-commonTypes-v2_16_0.xsd" />

	<!--********************** -->
	<!-- Simple Types   -->
	<!--********************** -->

	<xs:simpleType name="relKeyID">
		<xs:restriction base="xs:anyURI" />
	</xs:simpleType>
	
	<xs:simpleType name="credentialID">
		<xs:restriction base="xs:anyURI" />
	</xs:simpleType>
	
	<!-- no XSD validation of syntax correctness, see clause 12.2 of TS-0003 -->
	<xs:simpleType name="deviceConfigURI">
		<xs:restriction base="xs:anyURI" />
	</xs:simpleType>


	<!--********************** -->
	<!--  Enumerated Types -->
	<!--********************** -->

	<xs:simpleType name="credIDTypeID">
		<xs:annotation>
			<xs:documentation>Used for m2m:e2eSecInfo and other security features in TS-0003</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- pre-provisioned symmetric key intended to be shared with a MEF -->
			<xs:enumeration value="10" />
			<!-- pre-provisioned symmetric key intended to be shared with a MAF -->
			<xs:enumeration value="11" />
			<!-- pre-provisioned symmetric key intended for use in a Security Associated Establishment Framework (SAEF) -->
			<xs:enumeration value="12" />
			<!-- pre-provisioned symmetric key intended for use in End-to-End Security of Primitives (ESPrim) -->
			<xs:enumeration value="13" />
			<!-- pre-provisioned symmetric key intended for use with authenticated encryption in the Encryption-only or Nested Sign-then-Encrypt End-to-End Security of Data (ESData) Data classes -->
			<xs:enumeration value="14" />
			<!-- pre-provisioned symmetric key intended for use in Signature-only ESData Security Class -->
			<xs:enumeration value="15" />
			<!-- symmetric key, provisioned via a Remote Security Provisioning Framework (RSPF), and intended to be shared with a MAF -->
			<xs:enumeration value="21" />
			<!-- symmetric key, provisioned via a RSPF, and intended for use in a SAEF -->
			<xs:enumeration value="22" />
			<!-- symmetric key, provisioned via a RSPF, and intended for use in ESPrim -->
			<xs:enumeration value="23" />
			<!-- symmetric key, provisioned via a RSPF, and intended for use with authenticated encryption in the Encryption-only or Nested Sign-then-Encrypt ESData) Data classes -->
			<xs:enumeration value="24" />
			<!-- symmetric key, provisioned via a RSPF, and intended for use in Signature-only ESData Security Class -->
			<xs:enumeration value="25" />
			<!-- MAF-distributed symmetric key intended for use in a SAEF -->
			<xs:enumeration value="32" />
			<!-- MAF-distributed symmetric key intended for use in ESPrim -->
			<xs:enumeration value="33" />
			<!-- MAF-distributed symmetric key intended for use with authenticated encryption in the Encryption-only or Nested Sign-then-Encrypt ESData Data classes -->
			<xs:enumeration value="34" />
			<!-- MAF-distributed symmetric key intended for use in Signature-only ESData Security Class -->
			<xs:enumeration value="35" />
			<!-- certificate intended to be shared with a MEF -->
			<xs:enumeration value="40" />
			<!-- certificate intended to be shared with a MAF  -->
			<xs:enumeration value="41" />
			<!-- certificate intended for use in a Security Associated Establishment Framework (SAEF) -->
			<xs:enumeration value="42" />
			<!-- certificate intended for use in End-to-End Security of Primitives (ESPrim) -->
			<xs:enumeration value="43" />
			<!-- certificate intended for use with authenticated encryption in the Encryption-only or Nested Sign-then-Encrypt End-to-End Security of Data (ESData) Data classes -->
			<xs:enumeration value="44" />
			<!-- certificate intended for use in Signature-only ESData Security Class -->
			<xs:enumeration value="45" />
		</xs:restriction>
	</xs:simpleType>
	
	
	<xs:simpleType name="devMgmtID">
		<xs:annotation>
			<xs:documentation>Used for cmdDecription element of the cmdID attribute of mefClientCmd resource type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- OMA DMv1.3 -->
			<xs:enumeration value="1" />
			<!-- OMA DMv2.0 -->
			<xs:enumeration value="2" />
			<!-- OMA LwM2M -->
			<xs:enumeration value="3" />
			<!-- BBF TR-069 -->
			<xs:enumeration value="4" />
		</xs:restriction>
	</xs:simpleType>
	
	
	<xs:simpleType name="cmdClassID">
		<xs:annotation>
			<xs:documentation>Used for cmdDecription element of the cmdID attribute of mefClientCmd resource type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- NO_MORE_COMMANDS -->
			<xs:enumeration value="0" />
			<!-- CERT_PROV -->
			<xs:enumeration value="1" />
			<!-- DEV_CFG -->
			<xs:enumeration value="2" />
			<!-- MO_NODE -->
			<xs:enumeration value="3" />
		</xs:restriction>
	</xs:simpleType>
	
	
	<xs:simpleType name="cmdStatusCode">
		<xs:annotation>
			<xs:documentation>Used for cmdStatusCode attribute of mefClientCmd resource type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- MEF_CLIENT_CMD_ISSUED -->
			<xs:enumeration value="10" />
			<!-- MEF_CLIENT_CMD_REISSUED -->
			<xs:enumeration value="11" />
			<!-- MEF_CLIENT_CMD_OK -->
			<xs:enumeration value="20" />
			<!-- MEF_CLIENT_CMD_CLASS_NOT_SUPPORTED -->
			<xs:enumeration value="40" />
			<!-- MEF_CLIENT_CMD_BAD_ARGUMENTS -->
			<xs:enumeration value="41" />
			<!-- MEF_CLIENT_CMD_UNACCEPTABLE_ARGUMENTS -->
			<xs:enumeration value="42" />
			<!-- MEF_CLIENT_CMD_CERT_PROV_SERVER_ERROR -->
			<xs:enumeration value="100" />
			<!-- MEF_CLIENT_CMD_CERT_PROV_CLIENT_ERROR -->
			<xs:enumeration value="101" />
			<!-- MEF_CLIENT_CMD_DEV_CFG_SERVER_ERROR -->
			<xs:enumeration value="201" />
			<!-- MEF_CLIENT_CMD_DEV_CFG_CLIENT_ERROR -->
			<xs:enumeration value="202" />
			<!-- MEF_CLIENT_CMD_MO_NODE_NOT_FOUND -->
			<xs:enumeration value="300" />
			<!-- MEF_CLIENT_CMD_MO_NODE_TYPE_CONFLICT -->
			<xs:enumeration value="301" />
			<!-- MMEF_CLIENT_CMD_MO_NODE_BAD_ARGS -->
			<xs:enumeration value="302" />
			<!-- MEF_CLIENT_CMD_MO_NODE_UNACCEPTABLE_ARGS -->
			<xs:enumeration value="303" />
			<!-- MEF_CLIENT_CMD_MO_NODE_INCONSISTENT_CONFIG -->
			<xs:enumeration value="304" />
			<!-- MEF_CLIENT_CMD_MO_NODE_EXECUTION_ERROR -->
			<xs:enumeration value="305" />
		</xs:restriction>
	</xs:simpleType>	
	
	
	<xs:simpleType name="certProvProtocolID">
		<xs:annotation>
			<xs:documentation>Used for certProvProtocolID element of sec:cmdArgs data type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- EST -->
			<xs:enumeration value="1" />
			<!-- SCEP -->
			<xs:enumeration value="2" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="certSubjectType">
		<xs:annotation>
			<xs:documentation>Used for certSubjectType element of the sec:certProvCmdArgs data type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- Node-ID -->
			<xs:enumeration value="1" />
			<!-- CSE-ID -->
			<xs:enumeration value="2" />
			<!-- AE-ID -->
			<xs:enumeration value="3" />
		</xs:restriction>
	</xs:simpleType>


	<xs:simpleType name="objectTypeID">
		<xs:annotation>
			<xs:documentation>Used for objectTypeID element of the sec:MONodeCmdArgs data type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<!-- [authenticationProfile] -->
			<xs:enumeration value="1" />
			<!-- [trustAnchorCred] -->
			<xs:enumeration value="2" />
			<!-- [MAFClientRefCfg] -->
			<xs:enumeration value="3" />
		</xs:restriction>
	</xs:simpleType>
	


	<!--********************** -->
	<!--  Complex Types -->
	<!--********************** -->
	
	<xs:complexType name="clientRegCfg">
		<xs:sequence>
			<xs:element name="expirationTime" type="m2m:timestamp" minOccurs="0" maxOccurs="1" />
			<xs:element name="labels" type="m2m:labels" minOccurs="0" maxOccurs="1" />		
			<xs:element name="fqdn" type="xs:anyURI" minOccurs="1" maxOccurs="1" />
			<xs:element name="adminFQDN" type="xs:anyURI" minOccurs="1" maxOccurs="1" />
			<xs:element name="httpPort" type="xs:unsignedByte" minOccurs="0" maxOccurs="1" />
			<xs:element name="coapPort" type="xs:unsignedByte" minOccurs="0" maxOccurs="1" />
			<xs:element name="websocketPort" type="xs:unsignedByte" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="keyRegCfg">
		<xs:sequence>
			<xs:element name="expirationTime" type="m2m:timestamp" minOccurs="0" maxOccurs="1" />
			<xs:element name="labels" type="m2m:labels" minOccurs="0" maxOccurs="1" />		
			<xs:element name="adminFQDN" type="xs:anyURI" minOccurs="1" maxOccurs="1" />
			<xs:element name="SUID" type="xs:unsignedByte" minOccurs="1" maxOccurs="1" />
			<xs:element name="targetIDs" type="m2m:listOfM2MID" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="cmdArgs">
		<xs:choice>
			<xs:element name="noMoreCmdArgs" type="sec:noMoreCmdArgs" minOccurs="0" maxOccurs="1" />
			<xs:element name="certProvCmdArgs" type="sec:certProvCmdArgs" minOccurs="0" maxOccurs="1" />
			<xs:element name="devCfgCmdArgs" type="sec:devCfgCmdArgs" minOccurs="0" maxOccurs="1" />
			<xs:element name="MONodeCmdArgs" type="sec:MONodeCmdArgs" minOccurs="0" maxOccurs="1" />
		</xs:choice>
	</xs:complexType>


	<xs:complexType name="noMoreCmdArgs">
		<xs:sequence>
			<xs:element name="retryDuration" type="xs:duration" />
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="MONodeCmdArgs">
		<xs:sequence>
			<xs:element name="objectPath" type="xs:anyURI" minOccurs="1" maxOccurs="1" />
			<xs:element name="objectTypeID" type="sec:objectTypeID" minOccurs="1" maxOccurs="1" />
			<xs:element name="objectTypeSpecificArgs" type="sec:authProfileMONodeArgs" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	
	
	<xs:complexType name="authProfileMONodeArgs">
		<xs:sequence>
			<xs:element name="SUID" type="m2m:suid" minOccurs="1" />
		</xs:sequence>
	</xs:complexType>
	
	
	<xs:complexType name="devCfgCmdArgs">
		<xs:sequence>
			<xs:element name="deviceConfigURI" type="sec:deviceConfigURI" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="certProvCmdArgs">
		<xs:sequence>
			<xs:element name="certProvProtocolID" type="sec:certProvProtocolID" />
			<xs:element name="URI" type="xs:anyURI" />
			<xs:element name="certSubjectType" type="sec:certSubjectType" />
			<xs:element name="certSubjectID" >
				<xs:simpleType>
					<xs:union>
						<xs:simpleType>
							<xs:restriction base='m2m:nodeID' />
						</xs:simpleType>
						<xs:simpleType>
							<xs:restriction base='m2m:ID' />
						</xs:simpleType>					
					</xs:union>			
				</xs:simpleType>		
			</xs:element>	
		</xs:sequence>
	</xs:complexType>
	

	<xs:complexType name="cmdDescription">
		<xs:sequence>
			<xs:sequence>
				<xs:element name="cmdClassID" type="sec:cmdClassID" />
				<xs:element name="cmdArgs" type="sec:cmdArgs" />
				<xs:element name="targetID" type="m2m:ID" />
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>
	
	
</xs:schema>