DM XMLs: Update for SVE, add in-progress directory (#35138)

* Master with all in-progress as of Aug 21

* In progress copied from ToT for comparison

* Scrape in-progress clusters with set defines

see list in generate_spec_xml.py in next commit

* DM XML: add in-progress section for current test event series

* Spec parsing: Add in_progress DM XML

Have tests default to in_progress for the test events.

* Update scripts/spec_xml/generate_spec_xml.py

Co-authored-by: Robert Szewczyk <szewczyk@google.com>

* Re-scrape with defines matching IPR per RS's comment

---------

Co-authored-by: Robert Szewczyk <szewczyk@google.com>
diff --git a/data_model/in_progress/clusters/ACL-Cluster.xml b/data_model/in_progress/clusters/ACL-Cluster.xml
new file mode 100644
index 0000000..2f9de14
--- /dev/null
+++ b/data_model/in_progress/clusters/ACL-Cluster.xml
@@ -0,0 +1,362 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001F" name="Access Control Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Managed Device feature, Extension feature, fixed conformance"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x001F" name="AccessControl"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="ACL" scope="Node"/>
+  <features>
+    <feature bit="0" code="EXTS" name="Extension" summary="Device provides ACL Extension attribute">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="MNGD" name="ManagedDevice" summary="Device is managed">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AccessControlEntryAuthModeEnum">
+      <item value="1" name="PASE" summary="Passcode authenticated session">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="CASE" summary="Certificate authenticated session">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Group" summary="Group authenticated session">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="AccessControlEntryPrivilegeEnum">
+      <item value="1" name="View" summary="Can read and observe all (except Access Control Cluster and as seen by a non-Proxy)">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Proxy" summary="Can read and observe all (as seen by a Proxy)">
+        <otherwiseConform>
+          <provisionalConform/>
+          <mandatoryConform/>
+        </otherwiseConform>
+      </item>
+      <item value="3" name="Operate" summary="View privileges, and can perform the primary function of this Node (except Access Control Cluster)">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Manage" summary="Operate privileges, and can modify persistent configuration of this Node (except Access Control Cluster)">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Administer" summary="Manage privileges, and can observe and modify the Access Control Cluster">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="AccessRestrictionTypeEnum">
+      <item value="0" name="AttributeAccessForbidden" summary="Clients on this fabric are currently forbidden from reading and writing an attribute">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AttributeWriteForbidden" summary="Clients on this fabric are currently forbidden from writing an attribute">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="CommandForbidden" summary="Clients on this fabric are currently forbidden from invoking a command">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="EventForbidden" summary="Clients on this fabric are currently forbidden from reading an event">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ChangeTypeEnum">
+      <item value="0" name="Changed" summary="Entry or extension was changed">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Added" summary="Entry or extension was added">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Removed" summary="Entry or extension was removed">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="AccessControlEntryStruct">
+      <field id="1" name="Privilege" type="AccessControlEntryPrivilegeEnum">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="AuthMode" type="AccessControlEntryAuthModeEnum">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Subjects" type="list">
+        <entry type="SubjectID"/>
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="SubjectsPerAccessControlEntry"/>
+      </field>
+      <field id="4" name="Targets" type="list">
+        <entry type="AccessControlTargetStruct"/>
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="TargetsPerAccessControlEntry"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="AccessControlExtensionStruct">
+      <field id="1" name="Data" type="octstr">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="128"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="AccessControlTargetStruct">
+      <field id="0" name="Cluster" type="cluster-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Endpoint" type="endpoint-no">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="DeviceType" type="devtype-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="AccessRestrictionEntryStruct">
+      <field id="0" name="Endpoint" type="endpoint-no">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Cluster" type="cluster-id">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Restrictions" type="list" default="desc">
+        <entry type="AccessRestrictionStruct"/>
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="minCount" value="1"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="AccessRestrictionStruct">
+      <field id="0" name="Type" type="AccessRestrictionTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ID" type="uint32">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="CommissioningAccessRestrictionEntryStruct">
+      <field id="0" name="Endpoint" type="endpoint-no">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Cluster" type="cluster-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Restrictions" type="list" default="desc">
+        <entry type="AccessRestrictionStruct"/>
+        <mandatoryConform/>
+        <constraint type="minCount" value="1"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ACL" type="list" default="desc">
+      <entry type="AccessControlEntryStruct"/>
+      <access read="true" write="true" readPrivilege="admin" writePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="Extension" type="list" default="desc">
+      <entry type="AccessControlExtensionStruct"/>
+      <access read="true" write="true" readPrivilege="admin" writePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="EXTS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="SubjectsPerAccessControlEntry" type="uint16" default="4">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="4"/>
+    </attribute>
+    <attribute id="0x0003" name="TargetsPerAccessControlEntry" type="uint16" default="3">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="3"/>
+    </attribute>
+    <attribute id="0x0004" name="AccessControlEntriesPerFabric" type="uint16" default="4">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="4"/>
+    </attribute>
+    <attribute id="0x0005" name="CommissioningARL" type="list" default="[]">
+      <entry type="CommissioningAccessRestrictionEntryStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="ARL" type="list" default="[]">
+      <entry type="AccessRestrictionEntryStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ReviewFabricRestrictions" direction="commandToServer" response="ReviewFabricRestrictionsResponse">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+      <field id="0" name="ARL" type="list" default="desc">
+        <entry type="CommissioningAccessRestrictionEntryStruct"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="ReviewFabricRestrictionsResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+      <field id="0" name="Token" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="AccessControlEntryChanged" priority="info">
+      <access readPrivilege="admin" fabricSensitive="true"/>
+      <mandatoryConform/>
+      <field id="1" name="AdminNodeID" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="AdminPasscodeID" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="ChangeType" type="ChangeTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="LatestValue" type="AccessControlEntryStruct">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="AccessControlExtensionChanged" priority="info">
+      <access readPrivilege="admin" fabricSensitive="true"/>
+      <mandatoryConform>
+        <feature name="EXTS"/>
+      </mandatoryConform>
+      <field id="1" name="AdminNodeID" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="AdminPasscodeID" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="ChangeType" type="ChangeTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="LatestValue" type="AccessControlExtensionStruct">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="AccessRestrictionEntryChanged" priority="info">
+      <access readPrivilege="admin" fabricSensitive="true"/>
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+    </event>
+    <event id="0x03" name="FabricRestrictionReviewUpdate" priority="info">
+      <access readPrivilege="admin" fabricSensitive="true"/>
+      <mandatoryConform>
+        <feature name="MNGD"/>
+      </mandatoryConform>
+      <field id="0" name="Token" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Instruction" type="string">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+      <field id="2" name="RedirectURL" type="string">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/AccountLogin.xml b/data_model/in_progress/clusters/AccountLogin.xml
new file mode 100644
index 0000000..6205fb6
--- /dev/null
+++ b/data_model/in_progress/clusters/AccountLogin.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050E" name="Account Login Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add support for 8 character PIN code, Add Node to Login, Logout commands. Add LoggedOut event."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050E" name="Account Login"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="ALOGIN" scope="Endpoint"/>
+  <commands>
+    <command id="0x00" name="GetSetupPIN" direction="commandToServer" response="GetSetupPINResponse">
+      <access invokePrivilege="admin" fabricScoped="true" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="TempAccountIdentifier" type="string">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="16" to="100"/>
+      </field>
+    </command>
+    <command id="0x01" name="GetSetupPINResponse" direction="responseFromServer">
+      <access fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="SetupPIN" type="string">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="Login" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="TempAccountIdentifier" type="string">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="16" to="100"/>
+      </field>
+      <field id="1" name="SetupPIN" type="string">
+        <mandatoryConform/>
+        <constraint type="minLength" value="8"/>
+      </field>
+      <field id="2" name="Node" type="node-id">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x03" name="Logout" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" fabricScoped="true" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="Node" type="node-id">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="LoggedOut" priority="critical">
+      <access readPrivilege="admin" fabricSensitive="true"/>
+      <optionalConform/>
+      <field id="0" name="Node" type="node-id">
+        <optionalConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/AdminCommissioningCluster.xml b/data_model/in_progress/clusters/AdminCommissioningCluster.xml
new file mode 100644
index 0000000..77a8862
--- /dev/null
+++ b/data_model/in_progress/clusters/AdminCommissioningCluster.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x003C" name="Administrator Commissioning Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x003C" name="Administrator Commissioning"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="CADMIN" scope="Node"/>
+  <features>
+    <feature bit="0" code="BC" name="Basic" summary="Node supports Basic Commissioning Method.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="CommissioningWindowStatusEnum">
+      <item value="0" name="WindowNotOpen" summary="Commissioning window not open">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="EnhancedWindowOpen" summary="An Enhanced Commissioning Method window is open">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="BasicWindowOpen" summary="A Basic Commissioning Method window is open">
+        <mandatoryConform>
+          <feature name="BC"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="Status Codes" type="status"/>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="WindowStatus" type="CommissioningWindowStatusEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="AdminFabricIndex" type="fabric-idx">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="AdminVendorId" type="vendor-id">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="OpenCommissioningWindow" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="CommissioningTimeout" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="PAKEPasscodeVerifier" type="octstr">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Discriminator" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="4095"/>
+      </field>
+      <field id="3" name="Iterations" type="uint32">
+        <mandatoryConform/>
+        <constraint type="between" from="1000" to="100000"/>
+      </field>
+      <field id="4" name="Salt" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="16" to="32"/>
+      </field>
+    </command>
+    <command id="0x01" name="OpenBasicCommissioningWindow" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="BC"/>
+      </mandatoryConform>
+      <field id="0" name="CommissioningTimeout" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="RevokeCommissioning" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform/>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/AirQuality.xml b/data_model/in_progress/clusters/AirQuality.xml
new file mode 100644
index 0000000..69387d4
--- /dev/null
+++ b/data_model/in_progress/clusters/AirQuality.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005B" name="Air Quality Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x005B" name="Air Quality"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="AIRQUAL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="FAIR" name="Fair" summary="Cluster supports the Fair air quality level">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="MOD" name="Moderate" summary="Cluster supports the Moderate air quality level">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="VPOOR" name="VeryPoor" summary="Cluster supports the Very poor air quality level">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="XPOOR" name="ExtremelyPoor" summary="Cluster supports the Extremely poor air quality level">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AirQualityEnum">
+      <item value="0" name="Unknown" summary="The air quality is unknown.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Good" summary="The air quality is good.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Fair" summary="The air quality is fair.">
+        <mandatoryConform>
+          <feature name="FAIR"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Moderate" summary="The air quality is moderate.">
+        <mandatoryConform>
+          <feature name="MOD"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="Poor" summary="The air quality is poor.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="VeryPoor" summary="The air quality is very poor.">
+        <mandatoryConform>
+          <feature name="VPOOR"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="ExtremelyPoor" summary="The air quality is extremely poor.">
+        <mandatoryConform>
+          <feature name="XPOOR"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="AirQuality" type="AirQualityEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/AlarmBase.xml b/data_model/in_progress/clusters/AlarmBase.xml
new file mode 100644
index 0000000..e374dcc
--- /dev/null
+++ b/data_model/in_progress/clusters/AlarmBase.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Alarm Base Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId name="Alarm Base"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="ALARM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="RESET" name="Reset" summary="Supports the ability to reset alarms">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="AlarmBitmap" type=""/>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Mask" type="AlarmBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="Latch" type="AlarmBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RESET"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="State" type="AlarmBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="Supported" type="AlarmBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Reset" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="RESET"/>
+      </mandatoryConform>
+      <field id="0" name="Alarms" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="ModifyEnabledAlarms" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+      <field id="0" name="Mask" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="Notify" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="1" name="Active" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Inactive" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="State" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Mask" type="AlarmBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ApplicationBasic.xml b/data_model/in_progress/clusters/ApplicationBasic.xml
new file mode 100644
index 0000000..93ffeeb
--- /dev/null
+++ b/data_model/in_progress/clusters/ApplicationBasic.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050D" name="Application Basic Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050D" name="Application Basic"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="APBSC" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="ApplicationStatusEnum">
+      <item value="0" name="Stopped" summary="Application is not running.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ActiveVisibleFocus" summary="Application is running, is visible to the user, and is the active target for input.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="ActiveHidden" summary="Application is running but not visible to the user.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="ActiveVisibleNotFocus" summary="Application is running and visible, but is not the active target for input.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="ApplicationStruct">
+      <field id="0" name="CatalogVendorID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ApplicationID" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="VendorName" type="string" default="empty">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0001" name="VendorID" type="vendor-id">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0002" name="ApplicationName" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="ProductID" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0004" name="Application" type="ApplicationStruct">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="Status" type="ApplicationStatusEnum" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="ApplicationVersion" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0007" name="AllowedVendorList" type="list">
+      <entry type="vendor-id"/>
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ApplicationLauncher.xml b/data_model/in_progress/clusters/ApplicationLauncher.xml
new file mode 100644
index 0000000..51fcde7
--- /dev/null
+++ b/data_model/in_progress/clusters/ApplicationLauncher.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050C" name="Application Launcher Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Addition of new states to StatusEnum"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050C" name="Application Launcher"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="APPLAUNCHER" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="AP" name="ApplicationPlatform" summary="Support for attributes and commands required for endpoint to support launching any application within the supported application catalogs">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Command succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AppNotAvailable" summary="Requested app is not available">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="SystemBusy" summary="Video platform unable to honor command">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="PendingUserApproval" summary="User approval for app download is pending">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Downloading" summary="Downloading the requested app">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Installing" summary="Installing the requested app">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="ApplicationEPStruct">
+      <field id="0" name="Application" type="ApplicationStruct">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Endpoint" type="endpoint-no" default="MS">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="ApplicationStruct">
+      <field id="0" name="CatalogVendorID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ApplicationID" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CatalogList" type="list">
+      <entry type="uint16"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AP"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0001" name="CurrentApp" type="ApplicationEPStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="LaunchApp" direction="commandToServer" response="LauncherResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Application" type="ApplicationStruct">
+        <mandatoryConform>
+          <feature name="AP"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Data" type="octstr" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="StopApp" direction="commandToServer" response="LauncherResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Application" type="ApplicationStruct" default="MS">
+        <mandatoryConform>
+          <feature name="AP"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="HideApp" direction="commandToServer" response="LauncherResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Application" type="ApplicationStruct" default="MS">
+        <mandatoryConform>
+          <feature name="AP"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="LauncherResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Data" type="octstr" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/AudioOutput.xml b/data_model/in_progress/clusters/AudioOutput.xml
new file mode 100644
index 0000000..9972a8a
--- /dev/null
+++ b/data_model/in_progress/clusters/AudioOutput.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050B" name="Audio Output Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050B" name="Audio Output"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="AUDIOOUTPUT" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="NU" name="NameUpdates" summary="Supports updates to output names">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="OutputTypeEnum">
+      <item value="0" name="HDMI" summary="HDMI">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="BT">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Optical">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Headphone">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Internal">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Other">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="OutputInfoStruct">
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="OutputType" type="OutputTypeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="OutputList" type="list">
+      <entry type="OutputInfoStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentOutput" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SelectOutput" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="RenameOutput" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="NU"/>
+      </mandatoryConform>
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/BallastConfiguration.xml b/data_model/in_progress/clusters/BallastConfiguration.xml
new file mode 100644
index 0000000..9dbf4e6
--- /dev/null
+++ b/data_model/in_progress/clusters/BallastConfiguration.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0301" name="Ballast Configuration Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2104 2193 2230 2393 Deprecated some attributes"/>
+    <revision revision="3" summary="CCB 2881"/>
+    <revision revision="4" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0301" name="Ballast Configuration">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="BC" scope="Endpoint"/>
+  <dataTypes>
+    <bitmap name="BallastStatusBitmap">
+      <bitfield name="BallastNonOperational" bit="0" summary="Operational state of the ballast.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LampFailure" bit="1" summary="Operational state of the lamps.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="LampAlarmModeBitmap">
+      <bitfield name="LampBurnHours" bit="0" summary="State of LampBurnHours alarm generation">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="PhysicalMinLevel" type="uint8" default="1">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="254"/>
+    </attribute>
+    <attribute id="0x0001" name="PhysicalMaxLevel" type="uint8" default="254">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="254"/>
+    </attribute>
+    <attribute id="0x0002" name="BallastStatus" type="BallastStatusBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0010" name="MinLevel" type="uint8" default="PhysicalMinLevel">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <mandatoryConform/>
+      <constraint type="between" from="PhysicalMinLevel" to="MaxLevel"/>
+    </attribute>
+    <attribute id="0x0011" name="MaxLevel" type="uint8" default="PhysicalMaxLevel">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinLevel" to="PhysicalMaxLevel"/>
+    </attribute>
+    <attribute id="0x0012" name="PowerOnLevel">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0013" name="PowerOnFadeTime">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0014" name="IntrinsicBallastFactor" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0015" name="BallastFactorAdjustment" type="uint8" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="between" from="100" to="MS"/>
+    </attribute>
+    <attribute id="0x0020" name="LampQuantity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0030" name="LampType" type="string" default="&quot;">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0031" name="LampManufacturer" type="string" default="&quot;">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0032" name="LampRatedHours" type="uint24" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0033" name="LampBurnHours" type="uint24" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0034" name="LampAlarmMode" type="LampAlarmModeBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0035" name="LampBurnHoursTripPoint" type="uint24" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/BasicInformationCluster.xml b/data_model/in_progress/clusters/BasicInformationCluster.xml
new file mode 100644
index 0000000..168a035
--- /dev/null
+++ b/data_model/in_progress/clusters/BasicInformationCluster.xml
@@ -0,0 +1,339 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0028" name="Basic Information Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added ProductAppearance attribute"/>
+    <revision revision="3" summary="Added SpecificationVersion and MaxPathsPerInvoke attributes"/>
+    <revision revision="4" summary="Updated conformance for UniqueID to mandatory. Added DeviceLocation attribute."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0028" name="Basic Information"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="BINFO" scope="Node"/>
+  <dataTypes>
+    <enum name="ColorEnum">
+      <item value="0" name="Black" summary="Approximately RGB #000000.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Navy" summary="Approximately RGB #000080.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Green" summary="Approximately RGB #008000.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Teal" summary="Approximately RGB #008080.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Maroon" summary="Approximately RGB #800080.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Purple" summary="Approximately RGB #800080.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Olive" summary="Approximately RGB #808000.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Gray" summary="Approximately RGB #808080.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Blue" summary="Approximately RGB #0000FF.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="Lime" summary="Approximately RGB #00FF00.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="Aqua" summary="Approximately RGB #00FFFF.">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="Red" summary="Approximately RGB #FF0000.">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="Fuchsia" summary="Approximately RGB #FF00FF.">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="Yellow" summary="Approximately RGB #FFFF00.">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="White" summary="Approximately RGB #FFFFFF.">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="Nickel" summary="Typical hardware &quot;Nickel&quot; color.">
+        <mandatoryConform/>
+      </item>
+      <item value="16" name="Chrome" summary="Typical hardware &quot;Chrome&quot; color.">
+        <mandatoryConform/>
+      </item>
+      <item value="17" name="Brass" summary="Typical hardware &quot;Brass&quot; color.">
+        <mandatoryConform/>
+      </item>
+      <item value="18" name="Copper" summary="Typical hardware &quot;Copper&quot; color.">
+        <mandatoryConform/>
+      </item>
+      <item value="19" name="Silver" summary="Typical hardware &quot;Silver&quot; color.">
+        <mandatoryConform/>
+      </item>
+      <item value="20" name="Gold" summary="Typical hardware &quot;Gold&quot; color.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ProductFinishEnum">
+      <item value="0" name="Other" summary="Product has some other finish not listed below.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Matte" summary="Product has a matte finish.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Satin" summary="Product has a satin finish.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Polished" summary="Product has a polished or shiny finish.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Rugged" summary="Product has a rugged finish.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Fabric" summary="Product has a fabric finish.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="CapabilityMinimaStruct">
+      <field id="0" name="CaseSessionsPerFabric" type="uint16" default="3">
+        <mandatoryConform/>
+        <constraint type="min" value="3"/>
+      </field>
+      <field id="1" name="SubscriptionsPerFabric" type="uint16" default="3">
+        <mandatoryConform/>
+        <constraint type="min" value="3"/>
+      </field>
+    </struct>
+    <struct name="ProductAppearanceStruct">
+      <field id="0" name="Finish" type="ProductFinishEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PrimaryColor" type="ColorEnum">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="DataModelRevision" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="VendorName" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0002" name="VendorID" type="vendor-id" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="ProductName" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0004" name="ProductID" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="NodeLabel" type="string" default="&quot;">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0006" name="Location" type="string" default="&quot;XX&quot;">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="2"/>
+    </attribute>
+    <attribute id="0x0007" name="HardwareVersion" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0008" name="HardwareVersionString" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="lengthBetween" from="1" to="64"/>
+    </attribute>
+    <attribute id="0x0009" name="SoftwareVersion" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000A" name="SoftwareVersionString" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="lengthBetween" from="1" to="64"/>
+    </attribute>
+    <attribute id="0x000B" name="ManufacturingDate" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="lengthBetween" from="8" to="16"/>
+    </attribute>
+    <attribute id="0x000C" name="PartNumber" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x000D" name="ProductURL" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="256"/>
+    </attribute>
+    <attribute id="0x000E" name="ProductLabel" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="64"/>
+    </attribute>
+    <attribute id="0x000F" name="SerialNumber" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0010" name="LocalConfigDisabled" type="bool" default="False">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0011" name="Reachable" type="bool" default="True">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0012" name="UniqueID" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0013" name="CapabilityMinima" type="CapabilityMinimaStruct" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0014" name="ProductAppearance" type="ProductAppearanceStruct" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0015" name="SpecificationVersion" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0016" name="MaxPathsPerInvoke" type="uint16" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0017" name="DeviceLocation" type="locationdesc" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="StartUp" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SoftwareVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="ShutDown" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x02" name="Leave" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="FabricIndex" type="fabric-idx">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="254"/>
+      </field>
+    </event>
+    <event id="0x03" name="ReachableChanged" priority="info">
+      <access readPrivilege="view"/>
+      <field id="0" name="ReachableNewValue" type="bool">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Binding-Cluster.xml b/data_model/in_progress/clusters/Binding-Cluster.xml
new file mode 100644
index 0000000..72fc1eb
--- /dev/null
+++ b/data_model/in_progress/clusters/Binding-Cluster.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001E" name="Binding Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x001E" name="Binding"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="BIND" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="TargetStruct">
+      <field id="1" name="Node" type="node-id">
+        <mandatoryConform>
+          <attribute name="Endpoint"/>
+        </mandatoryConform>
+      </field>
+      <field id="2" name="Group" type="group-id">
+        <mandatoryConform>
+          <notTerm>
+            <attribute name="Endpoint"/>
+          </notTerm>
+        </mandatoryConform>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="3" name="Endpoint" type="endpoint-no">
+        <mandatoryConform>
+          <notTerm>
+            <attribute name="Group"/>
+          </notTerm>
+        </mandatoryConform>
+      </field>
+      <field id="4" name="Cluster" type="cluster-id">
+        <optionalConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Binding" type="list" default="[]">
+      <entry type="TargetStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/BooleanState.xml b/data_model/in_progress/clusters/BooleanState.xml
new file mode 100644
index 0000000..9754a7a
--- /dev/null
+++ b/data_model/in_progress/clusters/BooleanState.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0045" name="Boolean State Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0045" name="Boolean State"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="BOOL" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="StateValue" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="StateChange" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="StateValue" type="bool">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/BooleanStateConfiguration.xml b/data_model/in_progress/clusters/BooleanStateConfiguration.xml
new file mode 100644
index 0000000..d4ae791
--- /dev/null
+++ b/data_model/in_progress/clusters/BooleanStateConfiguration.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0080" name="Boolean State Configuration Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0080" name="Boolean State Configuration"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="BOOLCFG" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="VIS" name="Visual" summary="Supports visual alarms">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="AUD" name="Audible" summary="Supports audible alarms">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="SPRS" name="AlarmSuppress" summary="Supports ability to suppress or acknowledge alarms">
+      <optionalConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="SENSLVL" name="SensitivityLevel" summary="Supports ability to set sensor sensitivity">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <bitmap name="AlarmModeBitmap">
+      <bitfield name="Visual" bit="0" summary="Visual alarming">
+        <mandatoryConform>
+          <feature name="VIS"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="Audible" bit="1" summary="Audible alarming">
+        <mandatoryConform>
+          <feature name="AUD"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+    <bitmap name="SensorFaultBitmap">
+      <bitfield name="GeneralFault" bit="0" summary="Unspecified fault detected">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CurrentSensitivityLevel" type="uint8" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SENSLVL"/>
+      </mandatoryConform>
+      <constraint type="max" value="SupportedSensitivityLevels - 1"/>
+    </attribute>
+    <attribute id="0x0001" name="SupportedSensitivityLevels" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SENSLVL"/>
+      </mandatoryConform>
+      <constraint type="between" from="2" to="10"/>
+    </attribute>
+    <attribute id="0x0002" name="DefaultSensitivityLevel" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="SENSLVL"/>
+      </optionalConform>
+      <constraint type="max" value="SupportedSensitivityLevels - 1"/>
+    </attribute>
+    <attribute id="0x0003" name="AlarmsActive" type="AlarmModeBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="AlarmsSuppressed" type="AlarmModeBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="SPRS"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="AlarmsEnabled" type="AlarmModeBitmap" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0006" name="AlarmsSupported" type="AlarmModeBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="SensorFault" type="SensorFaultBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SuppressAlarm" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="SPRS"/>
+      </mandatoryConform>
+      <field id="0" name="AlarmsToSuppress" type="AlarmModeBitmap">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="EnableDisableAlarm" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="AlarmsToEnableDisable" type="AlarmModeBitmap">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="AlarmsStateChanged" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="VIS"/>
+          <feature name="AUD"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="AlarmsActive" type="AlarmModeBitmap">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="AlarmsSuppressed" type="AlarmModeBitmap">
+        <mandatoryConform>
+          <feature name="SPRS"/>
+        </mandatoryConform>
+      </field>
+    </event>
+    <event id="0x01" name="SensorFault" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="SensorFault" type="SensorFaultBitmap">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Channel.xml b/data_model/in_progress/clusters/Channel.xml
new file mode 100644
index 0000000..a2edf15
--- /dev/null
+++ b/data_model/in_progress/clusters/Channel.xml
@@ -0,0 +1,469 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0504" name="Channel Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add EG and RP features, Identifier and Type to Channel Info for Over-the-Top (OTT) channel support."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0504" name="Channel"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="CHANNEL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="CL" name="ChannelList" summary="Provides list of available channels.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="LI" name="LineupInfo" summary="Provides lineup info, which is a reference to an external source of lineup information.">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="EG" name="ElectronicGuide" summary="Provides electronic program guide information.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="RP" name="RecordProgram" summary="Provides ability to record program.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="ChannelTypeEnum">
+      <item value="0" name="Satellite" summary="The channel is sourced from a satellite provider.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Cable" summary="The channel is sourced from a cable provider.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Terrestrial" summary="The channel is sourced from a terrestrial provider.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="OTT" summary="The channel is sourced from an OTT provider.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LineupInfoTypeEnum">
+      <item value="0" name="MSO" summary="Multi System Operator">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Command succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="MultipleMatches" summary="More than one equal match for the ChannelInfoStruct passed in.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NoMatches" summary="No matches for the ChannelInfoStruct passed in.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="RecordingFlagBitmap">
+      <bitfield name="Scheduled" bit="0" summary="The program is scheduled for recording.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RecordSeries" bit="1" summary="The program series is scheduled for recording.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Recorded" bit="2" summary="The program is recorded and available to be played.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="ChannelInfoStruct">
+      <field id="0" name="MajorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MinorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Name" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="3" name="CallSign" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="4" name="AffiliateCallSign" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="5" name="Identifier" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="6" name="Type" type="ChannelTypeEnum" default="empty">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="ChannelPagingStruct">
+      <field id="0" name="PreviousToken" type="PageTokenStruct" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="1" name="NextToken" type="PageTokenStruct" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="LineupInfoStruct">
+      <field id="0" name="OperatorName" type="string">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="LineupName" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="2" name="PostalCode" type="string" default="empty">
+        <optionalConform/>
+      </field>
+      <field id="3" name="LineupInfoType" type="LineupInfoTypeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+    <struct name="PageTokenStruct">
+      <field id="0" name="Limit" type="uint16" default="0">
+        <optionalConform/>
+      </field>
+      <field id="1" name="After" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="2" name="Before" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+    </struct>
+    <struct name="ProgramCastStruct">
+      <field id="0" name="Name" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="1" name="Role" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </struct>
+    <struct name="ProgramCategoryStruct">
+      <field id="0" name="Category" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="1" name="SubCategory" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </struct>
+    <struct name="ProgramStruct">
+      <field id="0" name="Identifier" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="1" name="Channel" type="ChannelInfoStruct">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="StartTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="EndTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Title" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="5" name="Subtitle" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="6" name="Description" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="7" name="AudioLanguages" type="list" default="empty">
+        <entry type="string">
+          <constraint type="maxLength" value="50"/>
+        </entry>
+        <optionalConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+      <field id="8" name="Ratings" type="list" default="empty">
+        <entry type="string"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="9" name="ThumbnailUrl" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="10" name="PosterArtUrl" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="11" name="DvbiUrl" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="12" name="ReleaseDate" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="30"/>
+      </field>
+      <field id="13" name="ParentalGuidanceText" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="14" name="RecordingFlag" type="RecordingFlagBitmap">
+        <mandatoryConform>
+          <feature name="RP"/>
+        </mandatoryConform>
+      </field>
+      <field id="15" name="SeriesInfo" type="SeriesInfoStruct" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="16" name="CategoryList" type="list" default="empty">
+        <entry type="ProgramCategoryStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="17" name="CastList" type="list" default="empty">
+        <entry type="ProgramCastStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="18" name="ExternalIDList" type="list" default="empty">
+        <entry type="ref_AdditionalInfoStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+    </struct>
+    <struct name="SeriesInfoStruct">
+      <field id="0" name="Season" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="1" name="Episode" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ChannelList" type="list" default="empty">
+      <entry type="ChannelInfoStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0001" name="Lineup" type="LineupInfoStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LI"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="CurrentChannel" type="ChannelInfoStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ChangeChannel" direction="commandToServer" response="ChangeChannelResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="CL"/>
+          <feature name="LI"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="Match" type="string">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="ChangeChannelResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <feature name="CL"/>
+          <feature name="LI"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Data" type="string">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x02" name="ChangeChannelByNumber" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="MajorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MinorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="SkipChannel" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Count" type="int16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="GetProgramGuide" direction="commandToServer" response="ProgramGuideResponse">
+      <quality largeMessage="true"/>
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="EG"/>
+      </mandatoryConform>
+      <field id="0" name="StartTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="EndTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ChannelList" type="list" default="empty">
+        <entry type="ChannelInfoStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="3" name="PageToken" type="PageTokenStruct" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="5" name="RecordingFlag" type="RecordingFlagBitmap" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="6" name="ExternalIDList" type="list" default="empty">
+        <entry type="ref_AdditionalInfoStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="7" name="Data" type="octstr" default="MS">
+        <optionalConform/>
+        <constraint type="maxLength" value="8092"/>
+      </field>
+    </command>
+    <command id="0x05" name="ProgramGuideResponse" direction="responseFromServer">
+      <quality largeMessage="true"/>
+      <mandatoryConform>
+        <feature name="EG"/>
+      </mandatoryConform>
+      <field id="0" name="Paging" type="ChannelPagingStruct">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ProgramList" type="list" default="empty">
+        <entry type="ProgramStruct"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x06" name="RecordProgram" direction="commandToServer" response="Y">
+      <quality largeMessage="true"/>
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="RP"/>
+          <feature name="EG"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="ProgramIdentifier" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="1" name="ShouldRecordSeries" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ExternalIDList" type="list" default="empty">
+        <entry type="ref_AdditionalInfoStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="3" name="Data" type="octstr" default="MS">
+        <optionalConform/>
+        <constraint type="maxLength" value="8092"/>
+      </field>
+    </command>
+    <command id="0x07" name="CancelRecordProgram" direction="commandToServer" response="Y">
+      <quality largeMessage="true"/>
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="RP"/>
+          <feature name="EG"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="ProgramIdentifier" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="255"/>
+      </field>
+      <field id="1" name="ShouldRecordSeries" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ExternalIDList" type="list" default="empty">
+        <entry type="ref_AdditionalInfoStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="255"/>
+      </field>
+      <field id="3" name="Data" type="octstr" default="MS">
+        <optionalConform/>
+        <constraint type="maxLength" value="8092"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ColorControl.xml b/data_model/in_progress/clusters/ColorControl.xml
new file mode 100644
index 0000000..6901b6e
--- /dev/null
+++ b/data_model/in_progress/clusters/ColorControl.xml
@@ -0,0 +1,1160 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0300" name="Color Control Cluster" revision="7">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 2028"/>
+    <revision revision="2" summary="Added Options attribute, CCB 2085 2104 2124 2230; ZLO 1.0"/>
+    <revision revision="3" summary="CCB 2501 2814 2839 2840 2843 2861"/>
+    <revision revision="4" summary="All Hubs changes"/>
+    <revision revision="5" summary="New data model format and notation, FeatureMap support"/>
+    <revision revision="6" summary="Added clarifications to Scenes support for Matter"/>
+    <revision revision="7" summary="Added Q quality for CurrentHue, CurrentSaturation, CurrentX, CurrentY, EnhancedCurrentHue and RemainingTime attributes +
+             and added clarifications for behavior related to Step values"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0300" name="Color Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="CC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="HS" name="HueSaturation" summary="Supports color specification via hue/saturation.">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="EHUE"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="1" code="EHUE" name="EnhancedHue" summary="Enhanced hue is supported.">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="CL"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="CL" name="ColorLoop" summary="Color loop is supported.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="XY" name="XY" summary="Supports color specification via XY.">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="CT" name="ColorTemperature" summary="Supports specification of color temperature.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="ColorLoopActionEnum">
+      <item value="0" name="Deactivate" summary="De-activate the color loop.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ActivateFromColorLoopStartEnhancedHue" summary="Activate the color loop from the value in the ColorLoopStartEnhancedHue field.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="ActivateFromEnhancedCurrentHue" summary="Activate the color loop from the value of the EnhancedCurrentHue attribute.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ColorLoopDirectionEnum">
+      <item value="0" name="Decrement" summary="Decrement the hue in the color loop.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Increment" summary="Increment the hue in the color loop.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ColorModeEnum">
+      <item value="0" name="CurrentHueAndCurrentSaturation" summary="The current hue and saturation attributes determine the color.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="CurrentXAndCurrentY" summary="The current X and Y attributes determine the color.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="ColorTemperatureMireds" summary="The color temperature attribute determines the color.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DirectionEnum">
+      <item value="0" name="Shortest" summary="Shortest distance">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Longest" summary="Longest distance">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Up" summary="Up">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Down" summary="Down">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DriftCompensationEnum">
+      <item value="0" name="None" summary="There is no compensation.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="OtherOrUnknown" summary="The compensation is based on other or unknown mechanism.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="TemperatureMonitoring" summary="The compensation is based on temperature monitoring.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="OpticalLuminanceMonitoringAndFeedback" summary="The compensation is based on optical luminance monitoring and feedback.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="OpticalColorMonitoringAndFeedback" summary="The compensation is based on optical color monitoring and feedback.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="EnhancedColorModeEnum">
+      <item value="0" name="CurrentHueAndCurrentSaturation" summary="The current hue and saturation attributes determine the color.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="CurrentXAndCurrentY" summary="The current X and Y attributes determine the color.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="ColorTemperatureMireds" summary="The color temperature attribute determines the color.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="EnhancedCurrentHueAndCurrentSaturation" summary="The enhanced current hue and saturation attributes determine the color.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="MoveModeEnum">
+      <item value="0" name="Stop" summary="Stop the movement">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Up" summary="Move in an upwards direction">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Down" summary="Move in a downwards direction">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StepModeEnum">
+      <item value="1" name="Up" summary="Step in an upwards direction">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Down" summary="Step in a downwards direction">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="ColorCapabilitiesBitmap">
+      <bitfield name="HueSaturation" bit="0" summary="Supports color specification via hue/saturation.">
+        <mandatoryConform>
+          <feature name="HS"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="EnhancedHue" bit="1" summary="Enhanced hue is supported.">
+        <mandatoryConform>
+          <feature name="EHUE"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="ColorLoop" bit="2" summary="Color loop is supported.">
+        <mandatoryConform>
+          <feature name="CL"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="XY" bit="3" summary="Supports color specification via XY.">
+        <mandatoryConform>
+          <feature name="XY"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="ColorTemperature" bit="4" summary="Supports color specification via color temperature.">
+        <mandatoryConform>
+          <feature name="CT"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+    <bitmap name="OptionsBitmap">
+      <bitfield name="ExecuteIfOff" bit="0" summary="Dependency on On/Off cluster">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="UpdateFlagsBitmap">
+      <bitfield name="UpdateAction" bit="0" summary="Device adheres to the associated action field.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="UpdateDirection" bit="1" summary="Device updates the associated direction attribute.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="UpdateTime" bit="2" summary="Device updates the associated time attribute.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="UpdateStartHue" bit="3" summary="Device updates the associated start hue attribute.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CurrentHue" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <constraint type="max" value="254"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentSaturation" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <constraint type="max" value="254"/>
+    </attribute>
+    <attribute id="0x0002" name="RemainingTime" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+      <constraint type="max" value="65534"/>
+    </attribute>
+    <attribute id="0x0003" name="CurrentX" type="uint16" default="24939 (0.381)">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="XY"/>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0004" name="CurrentY" type="uint16" default="24701 (0.377)">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="XY"/>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0005" name="DriftCompensation" type="DriftCompensationEnum" default="-">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0006" name="CompensationText" type="string" default="-">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="254"/>
+    </attribute>
+    <attribute id="0x0007" name="ColorTemperatureMireds" type="uint16" default="250 (4000K)">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0008" name="ColorMode" type="ColorModeEnum" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x000F" name="Options" type="OptionsBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0010" name="NumberOfPrimaries" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="6"/>
+    </attribute>
+    <attribute id="0x0011" name="Primary1X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="0"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0012" name="Primary1Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="0"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0013" name="Primary1Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="0"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0015" name="Primary2X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="1"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0016" name="Primary2Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="1"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0017" name="Primary2Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="1"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0019" name="Primary3X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="2"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x001A" name="Primary3Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="2"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x001B" name="Primary3Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="2"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0020" name="Primary4X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="3"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0021" name="Primary4Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="3"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0022" name="Primary4Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="3"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0024" name="Primary5X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="4"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0025" name="Primary5Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="4"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0026" name="Primary5Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="4"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0028" name="Primary6X" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="5"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0029" name="Primary6Y" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="5"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x002A" name="Primary6Intensity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <greaterTerm>
+            <attribute name="NumberOfPrimaries"/>
+            <literal value="5"/>
+          </greaterTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0030" name="WhitePointX" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0031" name="WhitePointY" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0032" name="ColorPointRX" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0033" name="ColorPointRY" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0034" name="ColorPointRIntensity" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0036" name="ColorPointGX" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0037" name="ColorPointGY" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x0038" name="ColorPointGIntensity" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x003A" name="ColorPointBX" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x003B" name="ColorPointBY" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x003C" name="ColorPointBIntensity" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x4000" name="EnhancedCurrentHue" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="EHUE"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4001" name="EnhancedColorMode" type="EnhancedColorModeEnum" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x4002" name="ColorLoopActive" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+      <constraint type="max" value="1"/>
+    </attribute>
+    <attribute id="0x4003" name="ColorLoopDirection" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+      <constraint type="max" value="1"/>
+    </attribute>
+    <attribute id="0x4004" name="ColorLoopTime" type="uint16" default="25">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4005" name="ColorLoopStartEnhancedHue" type="uint16" default="8960">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4006" name="ColorLoopStoredEnhancedHue" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x400A" name="ColorCapabilities" type="ColorCapabilitiesBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="max" value="0x001F"/>
+    </attribute>
+    <attribute id="0x400B" name="ColorTempPhysicalMinMireds" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x400C" name="ColorTempPhysicalMaxMireds" type="uint16" default="65279">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+    <attribute id="0x400D" name="CoupleColorTempToLevelMinMireds" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="CT"/>
+          <attribute name="ColorTemperatureMireds"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="between" from="ColorTempPhysicalMinMireds" to="ColorTemperatureMireds"/>
+    </attribute>
+    <attribute id="0x4010" name="StartUpColorTemperatureMireds" type="uint16" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="CT"/>
+          <attribute name="ColorTemperatureMireds"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="max" value="65279"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="MoveToHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="Hue" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="1" name="Direction" type="DirectionEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="MoveHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="MoveMode" type="MoveModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Rate" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="StepHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="StepMode" type="StepModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StepSize" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="MoveToSaturation" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="Saturation" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="1" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x04" name="MoveSaturation" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="MoveMode" type="MoveModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Rate" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x05" name="StepSaturation" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="StepMode" type="StepModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StepSize" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x06" name="MoveToHueAndSaturation" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="HS"/>
+      </mandatoryConform>
+      <field id="0" name="Hue" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="1" name="Saturation" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x07" name="MoveToColor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="XY"/>
+      </mandatoryConform>
+      <field id="0" name="ColorX" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="1" name="ColorY" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x08" name="MoveColor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="XY"/>
+      </mandatoryConform>
+      <field id="0" name="RateX" type="int16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="RateY" type="int16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x09" name="StepColor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="XY"/>
+      </mandatoryConform>
+      <field id="0" name="StepX" type="int16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StepY" type="int16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x0A" name="MoveToColorTemperature" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <field id="0" name="ColorTemperatureMireds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="1" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x40" name="EnhancedMoveToHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="EHUE"/>
+      </mandatoryConform>
+      <field id="0" name="EnhancedHue" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Direction" type="DirectionEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x41" name="EnhancedMoveHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="EHUE"/>
+      </mandatoryConform>
+      <field id="0" name="MoveMode" type="MoveModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Rate" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x42" name="EnhancedStepHue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="EHUE"/>
+      </mandatoryConform>
+      <field id="0" name="StepMode" type="StepModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="StepSize" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x43" name="EnhancedMoveToHueAndSaturation" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="EHUE"/>
+      </mandatoryConform>
+      <field id="0" name="EnhancedHue" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Saturation" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x44" name="ColorLoopSet" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CL"/>
+      </mandatoryConform>
+      <field id="0" name="UpdateFlags" type="UpdateFlagsBitmap">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Action" type="ColorLoopActionEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Direction" type="ColorLoopDirectionEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Time" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="StartHue" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="6" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x47" name="StopMoveStep" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="HS"/>
+          <feature name="XY"/>
+          <feature name="CT"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x4B" name="MoveColorTemperature" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <field id="0" name="MoveMode" type="MoveModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Rate" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ColorTemperatureMinimumMireds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="3" name="ColorTemperatureMaximumMireds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="4" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="5" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x4C" name="StepColorTemperature" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CT"/>
+      </mandatoryConform>
+      <field id="0" name="StepMode" type="StepModeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StepSize" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65534"/>
+      </field>
+      <field id="3" name="ColorTemperatureMinimumMireds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="4" name="ColorTemperatureMaximumMireds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="65279"/>
+      </field>
+      <field id="5" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="6" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/CommissionerControlCluster.xml b/data_model/in_progress/clusters/CommissionerControlCluster.xml
new file mode 100644
index 0000000..9b01df6
--- /dev/null
+++ b/data_model/in_progress/clusters/CommissionerControlCluster.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0751" name="Commissioner Control Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0751" name="Commissioner Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="CCTRL" scope="Node"/>
+  <dataTypes>
+    <bitmap name="SupportedDeviceCategoryBitmap">
+      <bitfield name="FabricSynchronization" bit="0" summary="Aggregators which support Fabric Synchronization may be commissioned.">
+        <optionalConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedDeviceCategories" type="SupportedDeviceCategoryBitmap" default="0">
+      <access read="true" readPrivilege="manage"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="RequestCommissioningApproval" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="RequestId" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="VendorId" type="vendor-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ProductId" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Label" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </command>
+    <command id="0x01" name="CommissionNode" direction="commandToServer" response="ReverseOpenCommissioningWindow">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="RequestId" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ResponseTimeoutSeconds" type="uint16" default="30">
+        <mandatoryConform/>
+        <constraint type="between" from="30" to="120"/>
+      </field>
+      <field id="3" name="IpAddress" type="ipadr">
+        <optionalConform/>
+      </field>
+      <field id="4" name="Port" type="uint16">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x02" name="ReverseOpenCommissioningWindow" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="CommissioningTimeout" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="PAKEPasscodeVerifier" type="octstr">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Discriminator" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="4095"/>
+      </field>
+      <field id="3" name="Iterations" type="uint32">
+        <mandatoryConform/>
+        <constraint type="between" from="1000" to="100000"/>
+      </field>
+      <field id="4" name="Salt" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="16" to="32"/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="CommissioningRequestResult" priority="info">
+      <access readPrivilege="manage" fabricSensitive="true"/>
+      <mandatoryConform/>
+      <field id="0" name="RequestId" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ClientNodeId" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="StatusCode" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ConcentrationMeasurement.xml b/data_model/in_progress/clusters/ConcentrationMeasurement.xml
new file mode 100644
index 0000000..b622a35
--- /dev/null
+++ b/data_model/in_progress/clusters/ConcentrationMeasurement.xml
@@ -0,0 +1,264 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Concentration Measurement Clusters" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2882"/>
+    <revision revision="3" summary="Cluster redesigned to add support for Level Indication, Peak/Average Measurement, Medium/Unit of Measurement and Uncertainty."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x040C" name="Carbon Monoxide Concentration Measurement" picsCode="CMOCONC"/>
+    <clusterId id="0x040D" name="Carbon Dioxide Concentration Measurement" picsCode="CDOCONC"/>
+    <clusterId id="0x0413" name="Nitrogen Dioxide Concentration Measurement" picsCode="NDOCONC"/>
+    <clusterId id="0x0415" name="Ozone Concentration Measurement" picsCode="OZCONC"/>
+    <clusterId id="0x042A" name="PM2.5 Concentration Measurement" picsCode="PMICONC"/>
+    <clusterId id="0x042B" name="Formaldehyde Concentration Measurement" picsCode="FLDCONC"/>
+    <clusterId id="0x042C" name="PM1 Concentration Measurement" picsCode="PMHCONC"/>
+    <clusterId id="0x042D" name="PM10 Concentration Measurement" picsCode="PMKCONC"/>
+    <clusterId id="0x042E" name="Total Volatile Organic Compounds Concentration Measurement" picsCode="TVOCCONC"/>
+    <clusterId id="0x042F" name="Radon Concentration Measurement" picsCode="RNCONC"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="CONC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="MEA" name="NumericMeasurement" summary="Cluster supports numeric measurement of substance">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="LEV" name="LevelIndication" summary="Cluster supports basic level indication for substance using the ConcentrationLevel enum">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="MED" name="MediumLevel" summary="Cluster supports the Medium Concentration Level">
+      <optionalConform>
+        <feature name="LEV"/>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="CRI" name="CriticalLevel" summary="Cluster supports the Critical Concentration Level">
+      <optionalConform>
+        <feature name="LEV"/>
+      </optionalConform>
+    </feature>
+    <feature bit="4" code="PEA" name="PeakMeasurement" summary="Cluster supports peak numeric measurement of substance">
+      <optionalConform>
+        <feature name="MEA"/>
+      </optionalConform>
+    </feature>
+    <feature bit="5" code="AVG" name="AverageMeasurement" summary="Cluster supports average numeric measurement of substance">
+      <optionalConform>
+        <feature name="MEA"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="LevelValueEnum">
+      <item value="0" name="Unknown" summary="The level is Unknown">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Low" summary="The level is considered Low">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Medium" summary="The level is considered Medium">
+        <mandatoryConform>
+          <feature name="MED"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="High" summary="The level is considered High">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Critical" summary="The level is considered Critical">
+        <mandatoryConform>
+          <feature name="CRI"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="MeasurementMediumEnum">
+      <item value="0" name="Air" summary="The measurement is being made in Air">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Water" summary="The measurement is being made in Water">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Soil" summary="The measurement is being made in Soil">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="MeasurementUnitEnum">
+      <item value="0" name="PPM" summary="Parts per Million (10)">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="PPB" summary="Parts per Billion (10)">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="PPT" summary="Parts per Trillion (10)">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="MGM3" summary="Milligram per m">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="UGM3" summary="Microgram per m">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="NGM3" summary="Nanogram per m">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="PM3" summary="Particles per m">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="BQM3" summary="Becquerel per m">
+        <mandatoryConform>
+          <feature name="MEA"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="single" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MEA"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="single" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MEA"/>
+      </mandatoryConform>
+      <constraint type="max" value="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="single" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MEA"/>
+      </mandatoryConform>
+      <constraint type="min" value="MinMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0003" name="PeakMeasuredValue" type="single" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PEA"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0004" name="PeakMeasuredValueWindow" type="elapsed-s" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PEA"/>
+      </mandatoryConform>
+      <constraint type="max" value="604800"/>
+    </attribute>
+    <attribute id="0x0005" name="AverageMeasuredValue" type="single" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AVG"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0006" name="AverageMeasuredValueWindow" type="elapsed-s" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AVG"/>
+      </mandatoryConform>
+      <constraint type="max" value="604800"/>
+    </attribute>
+    <attribute id="0x0007" name="Uncertainty" type="single" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="MEA"/>
+      </optionalConform>
+      <constraint type="allowed" value="MS"/>
+    </attribute>
+    <attribute id="0x0008" name="MeasurementUnit" type="MeasurementUnitEnum" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MEA"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0009" name="MeasurementMedium" type="MeasurementMediumEnum" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x000A" name="LevelValue" type="LevelValueEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="LEV"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ContentAppObserver.xml b/data_model/in_progress/clusters/ContentAppObserver.xml
new file mode 100644
index 0000000..7ffe0b1
--- /dev/null
+++ b/data_model/in_progress/clusters/ContentAppObserver.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0510" name="Content App Observer Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0510" name="Content App Observer"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="APPOBSERVER" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Command succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="UnexpectedData" summary="Data field in command was not understood by the Observer">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="ContentAppMessage" direction="commandToServer" response="ContentAppMessageResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Data" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="500"/>
+      </field>
+      <field id="1" name="EncodingHint" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="100"/>
+      </field>
+    </command>
+    <command id="0x01" name="ContentAppMessageResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Data" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="500"/>
+      </field>
+      <field id="2" name="EncodingHint" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="100"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ContentControl.xml b/data_model/in_progress/clusters/ContentControl.xml
new file mode 100644
index 0000000..6b72a29
--- /dev/null
+++ b/data_model/in_progress/clusters/ContentControl.xml
@@ -0,0 +1,430 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050F" name="Content Control Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050F" name="Content Control">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="CONCON" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="ST" name="ScreenTime" summary="Supports managing screen time limits.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="PM" name="PINManagement" summary="Supports managing a PIN code which is used for restricting access to configuration of this feature.">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="BU" name="BlockUnrated" summary="Supports managing content controls for unrated content.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="OCR" name="OnDemandContentRating" summary="Supports managing content controls based upon rating threshold for on demand content.">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="SCR" name="ScheduledContentRating" summary="Supports managing content controls based upon rating threshold for scheduled content.">
+      <optionalConform/>
+    </feature>
+    <feature bit="5" code="BC" name="BlockChannels" summary="Supports managing a set of channels that are prohibited.">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="BA" name="BlockApplications" summary="Supports managing a set of applications that are prohibited.">
+      <optionalConform/>
+    </feature>
+    <feature bit="7" code="BTW" name="BlockContentTimeWindow" summary="Supports managing content controls based upon setting time window in which all contents and applications SHALL be blocked.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="Status Codes" type="status"/>
+    <bitmap name="DayOfWeekBitmap type">
+      <bitfield name="Sunday" bit="0" summary="Sunday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Monday" bit="1" summary="Monday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tuesday" bit="2" summary="Tuesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Wednesday" bit="3" summary="Wednesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Thursday" bit="4" summary="Thursday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Friday" bit="5" summary="Friday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Saturday" bit="6" summary="Saturday">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="AppInfoStruct">
+      <field id="0" name="CatalogVendorID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ApplicationID" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="BlockChannelStruct">
+      <field id="0" name="BlockChannelIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MajorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MinorNumber" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Identifier" type="string">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="RatingNameStruct">
+      <field id="0" name="RatingName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+      <field id="1" name="RatingNameDesc" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </struct>
+    <struct name="TimePeriodStruct type">
+      <field id="0" name="StartHour" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="23"/>
+      </field>
+      <field id="1" name="StartMinute" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="59"/>
+      </field>
+      <field id="2" name="EndHour" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="23"/>
+      </field>
+      <field id="3" name="EndMinute" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="59"/>
+      </field>
+    </struct>
+    <struct name="TimeWindowStruct">
+      <field id="0" name="TimeWindowIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DayOfWeek" type="DayOfWeekBitmap type">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="TimePeriod" type="list">
+        <entry type="TimePeriodStruct type"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Enabled" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="OnDemandRatings" type="list">
+      <entry type="RatingNameStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="OCR"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="OnDemandRatingThreshold" type="string">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="OCR"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="8"/>
+    </attribute>
+    <attribute id="0x0003" name="ScheduledContentRatings" type="list">
+      <entry type="RatingNameStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="SCR"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="ScheduledContentRatingThreshold" type="string">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="SCR"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="8"/>
+    </attribute>
+    <attribute id="0x0005" name="ScreenDailyTime" type="elapsed-s">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="ST"/>
+      </mandatoryConform>
+      <constraint type="max" value="86400"/>
+    </attribute>
+    <attribute id="0x0006" name="RemainingScreenTime" type="elapsed-s">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="ST"/>
+      </mandatoryConform>
+      <constraint type="max" value="86400"/>
+    </attribute>
+    <attribute id="0x0007" name="BlockUnrated" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BU"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="BlockChannelList" type="list">
+      <entry type="BlockChannelStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0009" name="BlockApplicationList" type="list">
+      <entry type="AppInfoStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BA"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000A" name="BlockContentTimeWindow" type="list">
+      <entry type="TimeWindowStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BTW"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="7"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="UpdatePIN" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform>
+        <feature name="PM"/>
+      </mandatoryConform>
+      <field id="0" name="OldPIN" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="6"/>
+      </field>
+      <field id="1" name="NewPIN" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="6"/>
+      </field>
+    </command>
+    <command id="0x01" name="ResetPIN" direction="commandToServer" response="ResetPINResponse">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="PM"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x02" name="ResetPINResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="PM"/>
+      </mandatoryConform>
+      <field id="0" name="PINCode" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="6"/>
+      </field>
+    </command>
+    <command id="0x03" name="Enable" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x04" name="Disable" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x05" name="AddBonusTime" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="ST"/>
+      </mandatoryConform>
+      <field id="0" name="PINCode" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="6"/>
+      </field>
+      <field id="1" name="BonusTime" type="elapsed-s" default="300s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x06" name="SetScreenDailyTime" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="ST"/>
+      </mandatoryConform>
+      <field id="0" name="ScreenTime" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="max" value="86400"/>
+      </field>
+    </command>
+    <command id="0x07" name="BlockUnratedContent" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BU"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x08" name="UnblockUnratedContent" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BU"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x09" name="SetOnDemandRatingThreshold" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="OCR"/>
+      </mandatoryConform>
+      <field id="0" name="Rating" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+    </command>
+    <command id="0x0A" name="SetScheduledContentRatingThreshold" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="SCR"/>
+      </mandatoryConform>
+      <field id="0" name="Rating" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+    </command>
+    <command id="0x0B" name="AddBlockChannels" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BC"/>
+      </mandatoryConform>
+      <field id="0" name="Channels" type="list">
+        <entry type="BlockChannelStruct"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0C" name="RemoveBlockChannels" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BC"/>
+      </mandatoryConform>
+      <field id="0" name="ChannelIndexes" type="list">
+        <entry type="uint16"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0D" name="AddBlockApplications" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BA"/>
+      </mandatoryConform>
+      <field id="0" name="Applications" type="list">
+        <entry type="AppInfoStruct"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0E" name="RemoveBlockApplications" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BA"/>
+      </mandatoryConform>
+      <field id="0" name="Applications" type="list">
+        <entry type="AppInfoStruct"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0F" name="SetBlockContentTimeWindow" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BTW"/>
+      </mandatoryConform>
+      <field id="0" name="TimeWindow" type="TimeWindowStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x10" name="RemoveBlockContentTimeWindow" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="BTW"/>
+      </mandatoryConform>
+      <field id="0" name="TimeWindowIndexes" type="list">
+        <entry type="uint16"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="RemainingScreenTimeExpired" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="ST"/>
+      </mandatoryConform>
+    </event>
+    <event id="0x01" name="EnteringBlockContentTimeWindow" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BTW"/>
+      </mandatoryConform>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ContentLauncher.xml b/data_model/in_progress/clusters/ContentLauncher.xml
new file mode 100644
index 0000000..5470a14
--- /dev/null
+++ b/data_model/in_progress/clusters/ContentLauncher.xml
@@ -0,0 +1,374 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050A" name="Content Launcher Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add Seasons, Episode, Any and CurrentContext to search, Added Text/Audio tracks support with PlaybackPreferences field"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x050A" name="Content Launcher"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="CONTENTLAUNCHER" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="CS" name="ContentSearch" summary="Device supports content search (non-app specific)">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="UP" name="URLPlayback" summary="Device supports basic URL-based file playback">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="AS" name="AdvancedSeek" summary="Enables clients to implement more advanced media seeking behavior in their user interface, such as for example a &quot;seek bar&quot;.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="TT" name="TextTracks" summary="Device or app supports Text Tracks.">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="AT" name="AudioTracks" summary="Device or app supports Audio Tracks.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="MetricTypeEnum">
+      <item value="0" name="Pixels" summary="Dimensions defined in a number of Pixels">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Percentage" summary="Dimensions defined as a percentage">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ParameterEnum">
+      <item value="0" name="Actor" summary="Actor represents an actor credited in video media content; for example, “Gaby Hoffman”">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Channel" summary="Channel represents the identifying data for a television channel; for example, &quot;PBS&quot;">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Character" summary="A character represented in video media content; for example, “Snow White”">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Director" summary="A director of the video media content; for example, “Spike Lee”">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Event" summary="An event is a reference to a type of event; examples would include sports, music, or other types of events.
+                        For example, searching for &quot;Football games&quot; would search for a 'game' event entity and a 'football' sport entity.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Franchise" summary="A franchise is a video entity which can represent a number of video entities, like movies or TV shows.
+                        For example, take the fictional franchise &quot;Intergalactic Wars&quot; which represents a collection of movie trilogies,
+                        as well as animated and live action TV shows. This entity type was introduced to account for requests by customers
+                        such as &quot;Find Intergalactic Wars movies&quot;, which would search for all 'Intergalactic Wars' programs of the MOVIE MediaType,
+                        rather than attempting to match to a single title.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Genre" summary="Genre represents the genre of video media content such as action, drama or comedy.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="League" summary="League represents the categorical information for a sporting league; for example, &quot;NCAA&quot;">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Popularity" summary="Popularity indicates whether the user asks for popular content.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="Provider" summary="The provider (MSP) the user wants this media to be played on; for example, &quot;Netflix&quot;.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="Sport" summary="Sport represents the categorical information of a sport; for example, football">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="SportsTeam" summary="SportsTeam represents the categorical information of a professional sports team; for example, &quot;University of Washington Huskies&quot;">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="Type" summary="The type of content requested. Supported types are &quot;Movie&quot;, &quot;MovieSeries&quot;, &quot;TVSeries&quot;, &quot;TVSeason&quot;, &quot;TVEpisode&quot;, &quot;Trailer&quot;, &quot;SportsEvent&quot;, &quot;LiveEvent&quot;, and &quot;Video&quot;">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="Video" summary="Video represents the identifying data for a specific piece of video content; for example, &quot;Manchester by the Sea&quot;.">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="Season" summary="Season represents the specific season number within a TV series.">
+        <optionalConform/>
+      </item>
+      <item value="15" name="Episode" summary="Episode represents a specific episode number within a Season in a TV series.">
+        <optionalConform/>
+      </item>
+      <item value="16" name="Any" summary="Represents a search text input across many parameter types or even outside of the defined param types.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Command succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="URLNotAvailable" summary="Requested URL could not be reached by device.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="AuthFailed" summary="Requested URL returned 401 error code.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="TextTrackNotAvailable" summary="Requested Text Track (in PlaybackPreferences) not available">
+        <mandatoryConform>
+          <feature name="TT"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="AudioTrackNotAvailable" summary="Requested Audio Track (in PlaybackPreferences) not available">
+        <mandatoryConform>
+          <feature name="AT"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <bitmap name="SupportedProtocolsBitmap">
+      <bitfield name="DASH" bit="0" summary="Device supports Dynamic Adaptive Streaming over HTTP (DASH)">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HLS" bit="1" summary="Device supports HTTP Live Streaming (HLS)">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="AdditionalInfoStruct">
+      <field id="0" name="Name" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="1" name="Value" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+    </struct>
+    <struct name="BrandingInformationStruct">
+      <field id="0" name="ProviderName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="1" name="Background" type="StyleInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="2" name="Logo" type="StyleInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="3" name="ProgressBar" type="StyleInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="4" name="Splash" type="StyleInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="5" name="WaterMark" type="StyleInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="ContentSearchStruct">
+      <field id="0" name="ParameterList" type="list" default="0">
+        <entry type="ParameterStruct"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="DimensionStruct">
+      <field id="0" name="Width" type="double" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Height" type="double" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Metric" type="MetricTypeEnum">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="ParameterStruct">
+      <field id="0" name="Type" type="ParameterEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Value" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="1024"/>
+      </field>
+      <field id="2" name="ExternalIDList" type="list" default="empty">
+        <entry type="AdditionalInfoStruct"/>
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="PlaybackPreferencesStruct">
+      <field id="0" name="PlaybackPosition" type="uint64">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+      </field>
+      <field id="1" name="TextTrack" type="TrackPreferenceStruct">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="TT"/>
+        </mandatoryConform>
+      </field>
+      <field id="2" name="AudioTracks" type="list">
+        <entry type="TrackPreferenceStruct"/>
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="AT"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+    <struct name="StyleInformationStruct">
+      <field id="0" name="ImageURL" type="string" default="MS">
+        <optionalConform/>
+        <constraint type="maxLength" value="8192"/>
+      </field>
+      <field id="1" name="Color" type="string" default="MS">
+        <optionalConform/>
+        <constraint type="maxLength" value="7"/>
+        <constraint type="maxLength" value="9"/>
+      </field>
+      <field id="2" name="Size" type="DimensionStruct" default="MS">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="TrackPreferenceStruct">
+      <field id="0" name="LanguageCode" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="Characteristics" type="list" default="null">
+        <entry type="ref_CharacteristicEnum"/>
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="2" name="AudioOutputIndex" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="AT"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="AcceptHeader" type="list" default="empty">
+      <entry type="string">
+        <constraint type="maxLength" value="1024"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="UP"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="100"/>
+    </attribute>
+    <attribute id="0x0001" name="SupportedStreamingProtocols" type="SupportedProtocolsBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="UP"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="LaunchContent" direction="commandToServer" response="LauncherResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CS"/>
+      </mandatoryConform>
+      <field id="0" name="Search" type="ContentSearchStruct">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="AutoPlay" type="bool">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Data" type="string" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="3" name="PlaybackPreferences" type="PlaybackPreferencesStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="4" name="UseCurrentContext" type="bool" default="TRUE">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="LaunchURL" direction="commandToServer" response="LauncherResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="UP"/>
+      </mandatoryConform>
+      <field id="0" name="ContentURL" type="string">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DisplayString" type="string" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="2" name="BrandingInformation" type="BrandingInformationStruct" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="3" name="PlaybackPreferences" type="PlaybackPreferencesStruct" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x02" name="LauncherResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <feature name="CS"/>
+          <feature name="UP"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Data" type="string" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DemandResponseLoadControl.xml b/data_model/in_progress/clusters/DemandResponseLoadControl.xml
new file mode 100644
index 0000000..1acd1ea
--- /dev/null
+++ b/data_model/in_progress/clusters/DemandResponseLoadControl.xml
@@ -0,0 +1,453 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0096" name="Demand Response Load Control Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="Updated from SE1.4 version; CCB 1291 1297 1447 1513 1880 2287 2964 2965"/>
+    <revision revision="3" summary="CCB 2966 3396"/>
+    <revision revision="4" summary="Matter Release"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0096" name="Demand Response Load Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="DRLC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="TEMPO" name="TemperatureOffset" summary="Supports temperature offsets">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="TEMPS" name="TemperatureSetpoint" summary="Supports temperature setpoints">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="LOADA" name="LoadAdjustment" summary="Supports average load adjustment percentage">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="3" code="DUTYC" name="DutyCycle" summary="Supports duty cycle adjustment">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="4" code="PWRSV" name="PowerSavings" summary="Supports power savings">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="5" code="HEATS" name="HeatingSource" summary="Supports selecting heating source">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="CriticalityLevelEnum">
+      <item value="0" name="Unknown">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Green" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Level1" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Level2" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Level3" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Level4" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Level5" summary="Voluntary">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="HeatingSourceEnum">
+      <item value="0" name="Any" summary="Any heating source">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Electric" summary="Electric heating">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NonElectric" summary="Non-electric heating">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LoadControlEventChangeSourceEnum">
+      <item value="0" name="Automatic" summary="This event change was automatic">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="UserAction" summary="This event change was due to a user action">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LoadControlEventStatusEnum">
+      <item value="0" name="Unknown" summary="Unknown">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Received" summary="Load Control Event command received">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="InProgress" summary="Event in progress">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Completed" summary="Event completed">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="OptedOut" summary="User opted-out">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="OptedIn" summary="User opted-in">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Canceled" summary="Event canceled">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Superseded" summary="Event superseded">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="PartialOptedOut" summary="Event partially completed due to opt-out">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="PartialOptedIn" summary="Event partially completed due to opt-in">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="NoParticipation" summary="Event complete with no participation">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="Unavailable" summary="Device not available to participate">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="Failed" summary="Device failed to process the event">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="CancelControlBitmap">
+      <bitfield name="RandomEnd" bit="0" summary="Randomize end time">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="EventControlBitmap">
+      <bitfield name="RandomStart" bit="0" summary="Randomize start time">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="EventTransitionControlBitmap">
+      <bitfield name="RandomDuration" bit="0" summary="Randomize duration">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="IgnoreOptOut" bit="1" summary="Ignore opt-out">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="AverageLoadControlStruct">
+      <field id="0" name="LoadAdjustment" type="int8">
+        <mandatoryConform/>
+        <constraint type="between" from="-100" to="100"/>
+      </field>
+    </struct>
+    <struct name="DutyCycleControlStruct">
+      <field id="0" name="DutyCycle" type="percent">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="HeatingSourceControlStruct">
+      <field id="0" name="HeatingSource" type="HeatingSourceEnum">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="LoadControlEventStruct">
+      <field id="0" name="EventID" type="octstr" default="0">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="ProgramID" type="octstr" default="null">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="2" name="Status" type="LoadControlEventStatusEnum">
+        <access fabricSensitive="true"/>
+        <optionalConform/>
+      </field>
+      <field id="3" name="Control" type="EventControlBitmap" default="1">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Criticality" type="CriticalityLevelEnum" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="StartTime" type="epoch-s" default="null">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="Transitions" type="list" default="empty">
+        <entry type="LoadControlEventTransitionStruct"/>
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="NumberOfTransitions Attribute"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="LoadControlEventTransitionStruct">
+      <field id="0" name="Duration" type="uint16" default="0">
+        <mandatoryConform/>
+        <constraint type="max" value="1440"/>
+      </field>
+      <field id="1" name="Control" type="EventTransitionControlBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TemperatureControl" type="TemperatureControlStruct"/>
+      <field id="3" name="AverageLoadControl" type="AverageLoadControlStruct"/>
+      <field id="4" name="DutyCycleControl" type="DutyCycleControlStruct"/>
+      <field id="5" name="PowerSavingsControl" type="PowerSavingsControlStruct"/>
+      <field id="6" name="HeatingSourceControl" type="HeatingSourceControlStruct"/>
+    </struct>
+    <struct name="LoadControlProgramStruct">
+      <field id="0" name="ProgramID" type="octstr" default="0">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="RandomStartMinutes" type="uint8" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="max" value="60"/>
+      </field>
+      <field id="3" name="RandomDurationMinutes" type="uint8" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="max" value="60"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="PowerSavingsControlStruct">
+      <field id="0" name="PowerSavings" type="percent">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="TemperatureControlStruct">
+      <field id="0" name="CoolingTempOffset" type="ref_TempDiff" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="TEMPO"/>
+        </mandatoryConform>
+      </field>
+      <field id="1" name="HeatingTempOffset" type="ref_TempDiff" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="TEMPO"/>
+        </mandatoryConform>
+      </field>
+      <field id="2" name="CoolingTempSetpoint" type="temperature" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="TEMPS"/>
+        </mandatoryConform>
+      </field>
+      <field id="3" name="HeatingTempSetpoint" type="temperature" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="TEMPS"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="LoadControlPrograms" type="list" default="empty">
+      <entry type="LoadControlProgramStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="NumberOfLoadControlPrograms"/>
+    </attribute>
+    <attribute id="0x0001" name="NumberOfLoadControlPrograms" type="uint8" default="5">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="5"/>
+    </attribute>
+    <attribute id="0x0002" name="Events" type="list" default="empty">
+      <entry type="LoadControlEventStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="NumberOfEventsPerProgram * (1 + NumberOfLoadControlPrograms)"/>
+    </attribute>
+    <attribute id="0x0003" name="ActiveEvents" type="list" default="empty">
+      <entry type="octstr"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="NumberOfEventsPerProgram * (1 + NumberOfLoadControlPrograms)"/>
+    </attribute>
+    <attribute id="0x0004" name="NumberOfEventsPerProgram" type="uint8" default="10">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="10"/>
+    </attribute>
+    <attribute id="0x0005" name="NumberOfTransitions" type="uint8" default="3">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="3"/>
+    </attribute>
+    <attribute id="0x0006" name="DefaultRandomStart" type="uint8" default="0x1E">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="60"/>
+    </attribute>
+    <attribute id="0x0007" name="DefaultRandomDuration" type="uint8" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="60"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="RegisterLoadControlProgramRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="LoadControlProgram" type="LoadControlProgramStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="UnregisterLoadControlProgramRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="LoadControlProgramID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x02" name="AddLoadControlEventRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Event" type="LoadControlEventStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="RemoveLoadControlEventRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="EventID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="CancelControl" type="CancelControlBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="LoadControlEventStatusChange" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="EventID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="TransitionIndex" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Status" type="LoadControlEventStatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Criticality" type="CriticalityLevelEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Control" type="EventControlBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="TemperatureControl" type="TemperatureControlStruct" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <orTerm>
+            <feature name="TEMPO"/>
+            <feature name="TEMPS"/>
+          </orTerm>
+        </mandatoryConform>
+      </field>
+      <field id="6" name="AverageLoadControl" type="AverageLoadControlStruct" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="LOADA"/>
+        </mandatoryConform>
+      </field>
+      <field id="7" name="DutyCycleControl" type="DutyCycleControlStruct" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="DUTYC"/>
+        </mandatoryConform>
+      </field>
+      <field id="8" name="PowerSavingsControl" type="PowerSavingsControlStruct" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="PWRSV"/>
+        </mandatoryConform>
+      </field>
+      <field id="9" name="HeatingSourceControl" type="HeatingSourceControlStruct" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="HEATS"/>
+        </mandatoryConform>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Descriptor-Cluster.xml b/data_model/in_progress/clusters/Descriptor-Cluster.xml
new file mode 100644
index 0000000..fabc3a2
--- /dev/null
+++ b/data_model/in_progress/clusters/Descriptor-Cluster.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001D" name="Descriptor Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Semantic tag list; TagList feature"/>
+    <revision revision="3" summary="Add EndpointUniqueID attribute"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x001D" name="Descriptor"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DESC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="TAGLIST" name="TagList" summary="The TagList attribute is present"/>
+  </features>
+  <dataTypes>
+    <struct name="DeviceTypeStruct">
+      <field id="0" name="DeviceType" type="devtype-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Revision" type="uint16">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="DeviceTypeList" type="list" default="desc">
+      <entry type="DeviceTypeStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="minCount" value="1"/>
+    </attribute>
+    <attribute id="0x0001" name="ServerList" type="list" default="empty">
+      <entry type="cluster-id"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="ClientList" type="list" default="empty">
+      <entry type="cluster-id"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="PartsList" type="list" default="empty">
+      <entry type="endpoint-no"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="TagList" type="list" default="MS">
+      <entry type="ref_SemTag"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TAGLIST"/>
+      </mandatoryConform>
+      <constraint type="countBetween" from="1" to="6"/>
+    </attribute>
+    <attribute id="0x0005" name="EndpointUniqueID" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DeviceEnergyManagement.xml b/data_model/in_progress/clusters/DeviceEnergyManagement.xml
new file mode 100644
index 0000000..cb7f46c
--- /dev/null
+++ b/data_model/in_progress/clusters/DeviceEnergyManagement.xml
@@ -0,0 +1,671 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0098" name="Device Energy Management Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Updates after 0.7 Ballot review"/>
+    <revision revision="3" summary="Updates to match cluster spec updates"/>
+    <revision revision="4" summary="Bug fixes found during PICS production"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0098" name="Device Energy Management">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="DEM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PA" name="PowerAdjustment" summary="Allows an EMS to make a temporary power
+                                                                           adjustment (within the limits offered by the ESA).">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="PFR" name="PowerForecastReporting" summary="Allows an ESA to advertise its indicative
+                                                                           future power consumption vs time.">
+      <otherwiseConform>
+        <optionalConform choice="a">
+          <notTerm>
+            <feature name="PA"/>
+          </notTerm>
+        </optionalConform>
+        <mandatoryConform>
+          <orTerm>
+            <feature name="STA"/>
+            <feature name="PAU"/>
+            <feature name="FA"/>
+            <feature name="CON"/>
+          </orTerm>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="SFR" name="StateForecastReporting" summary="Allows an ESA to advertise its indicative
+                                                                           future state vs time.">
+      <optionalConform choice="a">
+        <notTerm>
+          <feature name="PA"/>
+        </notTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="STA" name="StartTimeAdjustment" summary="Allows an EMS to delay an ESA's
+                                                                           planned operation.">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="PAU" name="Pausable" summary="Allows an EMS to pause an ESA's
+                                                                           planned operation.">
+      <optionalConform/>
+    </feature>
+    <feature bit="5" code="FA" name="ForecastAdjustment" summary="Allows an EMS to adjust an ESA's
+                                                                           planned operation.">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="CON" name="ConstraintBasedAdjustment" summary="Allows an EMS to request constraints to an ESA's
+                                                                           planned operation.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="PowerAdjustCapability" type=""/>
+    <enum name="AdjustmentCauseEnum">
+      <item value="0" name="LocalOptimization" summary="The adjustment is to optimize the local energy usage">
+        <optionalConform/>
+      </item>
+      <item value="1" name="GridOptimization" summary="The adjustment is to optimize the grid energy usage">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="CauseEnum">
+      <item value="0" name="NormalCompletion" summary="The ESA completed the power adjustment as requested">
+        <optionalConform/>
+      </item>
+      <item value="1" name="Offline" summary="The ESA was set to offline">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Fault" summary="The ESA has developed a fault could not complete the adjustment">
+        <optionalConform/>
+      </item>
+      <item value="3" name="UserOptOut" summary="The user has disabled the ESA's flexibility capability">
+        <optionalConform/>
+      </item>
+      <item value="4" name="Cancelled" summary="The adjustment was cancelled by a client">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="CostTypeEnum">
+      <item value="0" name="Financial" summary="Financial cost">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="GHGEmissions" summary="Grid CO2e grams cost">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Comfort" summary="Consumer comfort impact cost">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Temperature" summary="Temperature impact cost">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ESAStateEnum">
+      <item value="0" name="Offline" summary="The ESA is not available to the EMS (e.g. start-up, maintenance mode)">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Online" summary="The ESA is working normally and can be controlled by the EMS">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Fault" summary="The ESA has developed a fault and cannot provide service">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="PowerAdjustActive" summary="The ESA is in the middle of a power adjustment event">
+        <mandatoryConform>
+          <feature name="PA"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="Paused" summary="The ESA is currently paused by a client using the PauseRequest command">
+        <mandatoryConform>
+          <feature name="PAU"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="ESATypeEnum">
+      <item value="0" name="EVSE" summary="EV Supply Equipment">
+        <optionalConform/>
+      </item>
+      <item value="1" name="SpaceHeating" summary="Space heating appliance">
+        <optionalConform/>
+      </item>
+      <item value="2" name="WaterHeating" summary="Water heating appliance">
+        <optionalConform/>
+      </item>
+      <item value="3" name="SpaceCooling" summary="Space cooling appliance">
+        <optionalConform/>
+      </item>
+      <item value="4" name="SpaceHeatingCooling" summary="Space heating and cooling appliance">
+        <optionalConform/>
+      </item>
+      <item value="5" name="BatteryStorage" summary="Battery Electric Storage System">
+        <optionalConform/>
+      </item>
+      <item value="6" name="SolarPV" summary="Solar PV inverter">
+        <optionalConform/>
+      </item>
+      <item value="7" name="FridgeFreezer" summary="Fridge / Freezer">
+        <optionalConform/>
+      </item>
+      <item value="8" name="WashingMachine" summary="Washing Machine">
+        <optionalConform/>
+      </item>
+      <item value="9" name="Dishwasher" summary="Dishwasher">
+        <optionalConform/>
+      </item>
+      <item value="10" name="Cooking" summary="Cooking appliance">
+        <optionalConform/>
+      </item>
+      <item value="11" name="HomeWaterPump" summary="Home water pump (e.g. drinking well)">
+        <optionalConform/>
+      </item>
+      <item value="12" name="IrrigationWaterPump" summary="Irrigation water pump">
+        <optionalConform/>
+      </item>
+      <item value="13" name="PoolPump" summary="Pool pump">
+        <optionalConform/>
+      </item>
+      <item value="255" name="Other" summary="Other appliance type">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ForecastUpdateReasonEnum">
+      <item value="0" name="InternalOptimization" summary="The update was due to internal ESA device optimization">
+        <optionalConform/>
+      </item>
+      <item value="1" name="LocalOptimization" summary="The update was due to local EMS optimization">
+        <optionalConform/>
+      </item>
+      <item value="2" name="GridOptimization" summary="The update was due to grid optimization">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="OptOutStateEnum">
+      <item value="0" name="NoOptOut" summary="The user has not opted out of either local or grid optimizations">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="LocalOptOut" summary="The user has opted out of local EMS optimizations only">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="GridOptOut" summary="The user has opted out of grid EMS optimizations only">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="OptOut" summary="The user has opted out of all external optimizations">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="PowerAdjustReasonEnum">
+      <item value="0" name="NoAdjustment" summary="There is no Power Adjustment active">
+        <optionalConform/>
+      </item>
+      <item value="1" name="LocalOptimizationAdjustment" summary="There is PowerAdjustment active due to local EMS optimization">
+        <optionalConform/>
+      </item>
+      <item value="2" name="GridOptimizationAdjustment" summary="There is PowerAdjustment active due to local EMS optimization">
+        <optionalConform/>
+      </item>
+    </enum>
+    <struct name="ConstraintsStruct">
+      <field id="0" name="StartTime" type="epoch-s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="max" value="86400"/>
+      </field>
+      <field id="2" name="NominalPower" type="power-mW">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="MaximumEnergy" type="energy-mWh">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="4" name="LoadControl" type="int8">
+        <mandatoryConform>
+          <feature name="SFR"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+    <struct name="CostStruct">
+      <field id="0" name="CostType" type="CostTypeEnum" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Value" type="int32" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="DecimalPoints" type="uint8" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Currency" type="uint16" default="0">
+        <optionalConform/>
+        <constraint type="max" value="999"/>
+      </field>
+    </struct>
+    <struct name="ForecastStruct">
+      <field id="0" name="ForecastID" type="uint32" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ActiveSlotNumber" type="uint16" default="0">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="StartTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="EndTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="EarliestStartTime" type="epoch-s">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="STA"/>
+        </mandatoryConform>
+      </field>
+      <field id="5" name="LatestEndTime" type="epoch-s">
+        <mandatoryConform>
+          <feature name="STA"/>
+        </mandatoryConform>
+      </field>
+      <field id="6" name="IsPausable" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="7" name="Slots" type="list">
+        <entry type="SlotStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+      <field id="8" name="ForecastUpdateReason" type="ForecastUpdateReasonEnum">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="PowerAdjustCapabilityStruct">
+      <field id="0" name="PowerAdjustCapability" type="list" default="null">
+        <entry type="PowerAdjustStruct"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+      <field id="1" name="Cause" type="PowerAdjustReasonEnum" default="0">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="PowerAdjustStruct">
+      <field id="0" name="MinPower" type="power-mW" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MaxPower" type="power-mW" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MinDuration" type="elapsed-s" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="MaxDuration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="SlotAdjustmentStruct">
+      <field id="0" name="SlotIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="NominalPower" type="power-mW">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+    <struct name="SlotStruct">
+      <field id="0" name="MinDuration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MaxDuration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="DefaultDuration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="ElapsedSlotTime" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="RemainingSlotTime" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="SlotIsPausable" type="bool">
+        <mandatoryConform>
+          <feature name="PAU"/>
+        </mandatoryConform>
+      </field>
+      <field id="6" name="MinPauseDuration" type="elapsed-s">
+        <mandatoryConform>
+          <feature name="PAU"/>
+        </mandatoryConform>
+      </field>
+      <field id="7" name="MaxPauseDuration" type="elapsed-s">
+        <mandatoryConform>
+          <feature name="PAU"/>
+        </mandatoryConform>
+      </field>
+      <field id="8" name="ManufacturerESAState" type="uint16">
+        <mandatoryConform>
+          <feature name="SFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="9" name="NominalPower" type="power-mW">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="10" name="MinPower" type="power-mW">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="11" name="MaxPower" type="power-mW">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="12" name="NominalEnergy" type="energy-mWh">
+        <mandatoryConform>
+          <feature name="PFR"/>
+        </mandatoryConform>
+      </field>
+      <field id="13" name="Costs" type="list">
+        <entry type="CostStruct"/>
+        <optionalConform/>
+        <constraint type="maxCount" value="5"/>
+      </field>
+      <field id="14" name="MinPowerAdjustment" type="power-mW">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="FA"/>
+            <feature name="PFR"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+      <field id="15" name="MaxPowerAdjustment" type="power-mW">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="FA"/>
+            <feature name="PFR"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+      <field id="16" name="MinDurationAdjustment" type="elapsed-s">
+        <mandatoryConform>
+          <feature name="FA"/>
+        </mandatoryConform>
+      </field>
+      <field id="17" name="MaxDurationAdjustment" type="elapsed-s">
+        <mandatoryConform>
+          <feature name="FA"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ESAType" type="ESATypeEnum" default="Other">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="ESACanGenerate" type="bool" default="false">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="ESAState" type="ESAStateEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="AbsMinPower" type="power-mW" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="AbsMaxPower" type="power-mW" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="PowerAdjustmentCapability" type="PowerAdjustCapabilityStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PA"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0006" name="Forecast" type="ForecastStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="PFR"/>
+          <feature name="SFR"/>
+        </orTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="OptOutState" type="OptOutStateEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="PA"/>
+          <feature name="STA"/>
+          <feature name="PAU"/>
+          <feature name="FA"/>
+          <feature name="CON"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="PowerAdjustRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="PA"/>
+      </mandatoryConform>
+      <field id="0" name="Power" type="power-mW">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Cause" type="AdjustmentCauseEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="CancelPowerAdjustRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="PA"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x02" name="StartTimeAdjustRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="STA"/>
+      </mandatoryConform>
+      <field id="0" name="RequestedStartTime" type="epoch-s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Cause" type="AdjustmentCauseEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="PauseRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="PAU"/>
+      </mandatoryConform>
+      <field id="0" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Cause" type="AdjustmentCauseEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x04" name="ResumeRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="PAU"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x05" name="ModifyForecastRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="FA"/>
+      </mandatoryConform>
+      <field id="0" name="ForecastID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SlotAdjustments" type="list">
+        <entry type="SlotAdjustmentStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+      <field id="2" name="Cause" type="AdjustmentCauseEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x06" name="RequestConstraintBasedForecast" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="CON"/>
+      </mandatoryConform>
+      <field id="0" name="Constraints" type="list">
+        <entry type="ConstraintsStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+      <field id="1" name="Cause" type="AdjustmentCauseEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x07" name="CancelRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="STA"/>
+          <feature name="FA"/>
+          <feature name="CON"/>
+        </orTerm>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="PowerAdjustStart" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PA"/>
+      </mandatoryConform>
+    </event>
+    <event id="0x01" name="PowerAdjustEnd" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PA"/>
+      </mandatoryConform>
+      <field id="0" name="Cause" type="CauseEnum" default="NormalCompletion">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="EnergyUse" type="energy-mWh">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="Paused" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PAU"/>
+      </mandatoryConform>
+    </event>
+    <event id="0x03" name="Resumed" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PAU"/>
+      </mandatoryConform>
+      <field id="0" name="Cause" type="CauseEnum" default="NormalCompletion">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticLogsCluster.xml b/data_model/in_progress/clusters/DiagnosticLogsCluster.xml
new file mode 100644
index 0000000..9dc7f4c
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticLogsCluster.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0032" name="Diagnostic Logs Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0032" name="Diagnostic Logs"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DLOG" scope="Node"/>
+  <dataTypes>
+    <enum name="IntentEnum">
+      <item value="0" name="EndUserSupport" summary="Logs to be used for end-user support">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="NetworkDiag" summary="Logs to be used for network diagnostics">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="CrashLogs" summary="Obtain crash logs from the Node">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Successful transfer of logs">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Exhausted" summary="All logs has been transferred">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NoLogs" summary="No logs of the requested type available">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Busy" summary="Unable to handle request, retry later">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Denied" summary="The request is denied, no logs being transferred">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="TransferProtocolEnum">
+      <item value="0" name="ResponsePayload" summary="Logs to be returned as a response">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="BDX" summary="Logs to be returned using BDX">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="RetrieveLogsRequest" direction="commandToServer" response="RetrieveLogsResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Intent" type="IntentEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="RequestedProtocol" type="TransferProtocolEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransferFileDesignator" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x01" name="RetrieveLogsResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="LogContent" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="1024"/>
+      </field>
+      <field id="2" name="UTCTimeStamp" type="epoch-us">
+        <optionalConform/>
+      </field>
+      <field id="3" name="TimeSinceBoot" type="ref_DataTypeSystemTimeUs">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticsEthernet.xml b/data_model/in_progress/clusters/DiagnosticsEthernet.xml
new file mode 100644
index 0000000..f000669f
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticsEthernet.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0037" name="Ethernet Network Diagnostics Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0037" name="Ethernet Network Diagnostics"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DGETH" scope="Node">
+    <quality diagnostics="true"/>
+  </classification>
+  <features>
+    <feature bit="0" code="PKTCNT" name="PacketCounts" summary="Node makes available the counts for the number of received and transmitted packets on the ethernet interface.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="ERRCNT" name="ErrorCounts" summary="Node makes available the counts for the number of errors that have occurred during the reception and transmission of packets on the ethernet interface.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="PHYRateEnum">
+      <item value="0" name="Rate10M" summary="PHY rate is 10Mbps">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Rate100M" summary="PHY rate is 100Mbps">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Rate1G" summary="PHY rate is 1Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Rate2_5G" summary="PHY rate is 2.5Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Rate5G" summary="PHY rate is 5Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Rate10G" summary="PHY rate is 10Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Rate40G" summary="PHY rate is 40Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Rate100G" summary="PHY rate is 100Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Rate200G" summary="PHY rate is 200Gbps">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="Rate400G" summary="PHY rate is 400Gbps">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="PHYRate" type="PHYRateEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0001" name="FullDuplex" type="bool" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0002" name="PacketRxCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="PacketTxCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="TxErrCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="CollisionCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0006" name="OverrunCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="CarrierDetect" type="bool" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0008" name="TimeSinceReset" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ResetCounts" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="PKTCNT"/>
+          <feature name="ERRCNT"/>
+        </orTerm>
+      </mandatoryConform>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticsGeneral.xml b/data_model/in_progress/clusters/DiagnosticsGeneral.xml
new file mode 100644
index 0000000..1266705
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticsGeneral.xml
@@ -0,0 +1,373 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0033" name="General Diagnostics Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="UpTime attribute now mandatory, and added TimeSnapshot command, added DMTEST feature."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0033" name="General Diagnostics"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DGGEN" scope="Node"/>
+  <features>
+    <feature bit="0" code="DMTEST" name="DataModelTest" summary="Support specific testing needs for extended Data Model features"/>
+  </features>
+  <dataTypes>
+    <enum name="BootReasonEnum">
+      <item value="0" name="Unspecified" summary="The Node is unable to identify the Power-On reason as one of the other provided enumeration values.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="PowerOnReboot" summary="The Node has booted as the result of physical interaction with the device resulting in a reboot.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="BrownOutReset" summary="The Node has rebooted as the result of a brown-out of the Node's power supply.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="SoftwareWatchdogReset" summary="The Node has rebooted as the result of a software watchdog timer.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="HardwareWatchdogReset" summary="The Node has rebooted as the result of a hardware watchdog timer.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="SoftwareUpdateCompleted" summary="The Node has rebooted as the result of a completed software update.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="SoftwareReset" summary="The Node has rebooted as the result of a software initiated reboot.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="HardwareFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node has encountered an unspecified fault.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Radio" summary="The Node has encountered a fault with at least one of its radios.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Sensor" summary="The Node has encountered a fault with at least one of its sensors.">
+        <optionalConform/>
+      </item>
+      <item value="3" name="ResettableOverTemp" summary="The Node has encountered an over-temperature fault that is resettable.">
+        <optionalConform/>
+      </item>
+      <item value="4" name="NonResettableOverTemp" summary="The Node has encountered an over-temperature fault that is not resettable.">
+        <optionalConform/>
+      </item>
+      <item value="5" name="PowerSource" summary="The Node has encountered a fault with at least one of its power sources.">
+        <optionalConform/>
+      </item>
+      <item value="6" name="VisualDisplayFault" summary="The Node has encountered a fault with at least one of its visual displays.">
+        <optionalConform/>
+      </item>
+      <item value="7" name="AudioOutputFault" summary="The Node has encountered a fault with at least one of its audio outputs.">
+        <optionalConform/>
+      </item>
+      <item value="8" name="UserInterfaceFault" summary="The Node has encountered a fault with at least one of its user interfaces.">
+        <optionalConform/>
+      </item>
+      <item value="9" name="NonVolatileMemoryError" summary="The Node has encountered a fault with its non-volatile memory.">
+        <optionalConform/>
+      </item>
+      <item value="10" name="TamperDetected" summary="The Node has encountered disallowed physical tampering.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="InterfaceTypeEnum">
+      <item value="0" name="Unspecified" summary="Indicates an interface of an unspecified type.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="WiFi" summary="Indicates a Wi-Fi interface.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Ethernet" summary="Indicates a Ethernet interface.">
+        <optionalConform/>
+      </item>
+      <item value="3" name="Cellular" summary="Indicates a Cellular interface.">
+        <optionalConform/>
+      </item>
+      <item value="4" name="Thread" summary="Indicates a Thread interface.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="NetworkFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node has encountered an unspecified fault.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="HardwareFailure" summary="The Node has encountered a network fault as a result of a hardware failure.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="NetworkJammed" summary="The Node has encountered a network fault as a result of a jammed network.">
+        <optionalConform/>
+      </item>
+      <item value="3" name="ConnectionFailed" summary="The Node has encountered a network fault as a result of a failure to establish a connection.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="RadioFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node has encountered an unspecified radio fault.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="WiFiFault" summary="The Node has encountered a fault with its Wi-Fi radio.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="CellularFault" summary="The Node has encountered a fault with its cellular radio.">
+        <optionalConform/>
+      </item>
+      <item value="3" name="ThreadFault" summary="The Node has encountered a fault with its 802.15.4 radio.">
+        <optionalConform/>
+      </item>
+      <item value="4" name="NFCFault" summary="The Node has encountered a fault with its NFC radio.">
+        <optionalConform/>
+      </item>
+      <item value="5" name="BLEFault" summary="The Node has encountered a fault with its BLE radio.">
+        <optionalConform/>
+      </item>
+      <item value="6" name="EthernetFault" summary="The Node has encountered a fault with its Ethernet controller.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <struct name="NetworkInterface">
+      <field id="0" name="Name" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="IsOperational" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OffPremiseServicesReachableIPv4" type="bool" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="OffPremiseServicesReachableIPv6" type="bool" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="HardwareAddress" type="Hardware Address">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="IPv4Addresses" type="list">
+        <entry type="ref_IPv4Address"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="4"/>
+      </field>
+      <field id="6" name="IPv6Addresses" type="list">
+        <entry type="ref_IPv6Address"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+      <field id="7" name="Type" type="InterfaceTypeEnum">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="NetworkInterfaces" type="list">
+      <entry type="NetworkInterface"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="8"/>
+    </attribute>
+    <attribute id="0x0001" name="RebootCount" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="UpTime" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="TotalOperationalHours" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0004" name="BootReason" type="BootReasonEnum">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0005" name="ActiveHardwareFaults" type="list">
+      <entry type="HardwareFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxCount" value="11"/>
+    </attribute>
+    <attribute id="0x0006" name="ActiveRadioFaults" type="list">
+      <entry type="RadioFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxCount" value="7"/>
+    </attribute>
+    <attribute id="0x0007" name="ActiveNetworkFaults" type="list">
+      <entry type="NetworkFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxCount" value="4"/>
+    </attribute>
+    <attribute id="0x0008" name="TestEventTriggersEnabled" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0009" name="DoNotUse">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="TestEventTrigger" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="EnableKey" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="EventTrigger" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="TimeSnapshot" direction="commandToServer" response="TimeSnapshotResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="TimeSnapshotResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="SystemTimeMs" type="ref_DataTypeSystemTimeMs" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PosixTimeMs" type="ref_DataTypePosixMs" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="PayloadTestRequest" direction="commandToServer" response="PayloadTestResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="DMTEST"/>
+      </mandatoryConform>
+      <field id="0" name="EnableKey" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="Value" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Count" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="2048"/>
+      </field>
+    </command>
+    <command id="0x04" name="PayloadTestResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="DMTEST"/>
+      </mandatoryConform>
+      <field id="0" name="Payload" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="2048"/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="HardwareFaultChange" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="Current" type="list">
+        <entry type="HardwareFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="11"/>
+      </field>
+      <field id="1" name="Previous" type="list">
+        <entry type="HardwareFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="11"/>
+      </field>
+    </event>
+    <event id="0x01" name="RadioFaultChange" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="Current" type="list">
+        <entry type="RadioFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="7"/>
+      </field>
+      <field id="1" name="Previous" type="list">
+        <entry type="RadioFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="7"/>
+      </field>
+    </event>
+    <event id="0x02" name="NetworkFaultChange" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="Current" type="list">
+        <entry type="NetworkFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="4"/>
+      </field>
+      <field id="1" name="Previous" type="list">
+        <entry type="NetworkFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="4"/>
+      </field>
+    </event>
+    <event id="0x03" name="BootReason" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="BootReason" type="BootReasonEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticsSoftware.xml b/data_model/in_progress/clusters/DiagnosticsSoftware.xml
new file mode 100644
index 0000000..55e865a
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticsSoftware.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0034" name="Software Diagnostics Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0034" name="Software Diagnostics"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DGSW" scope="Node">
+    <quality diagnostics="true"/>
+  </classification>
+  <features>
+    <feature bit="0" code="WTRMRK" name="Watermarks" summary="Node makes available the metrics for high watermark related to memory consumption.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ThreadMetricsStruct">
+      <field id="0" name="ID" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+      <field id="2" name="StackFreeCurrent" type="uint32" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="3" name="StackFreeMinimum" type="uint32" default="MS">
+        <optionalConform/>
+      </field>
+      <field id="4" name="StackSize" type="uint32" default="MS">
+        <optionalConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ThreadMetrics" type="list">
+      <entry type="ThreadMetricsStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxCount" value="64"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentHeapFree" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0002" name="CurrentHeapUsed" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0003" name="CurrentHeapHighWatermark" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="WTRMRK"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ResetWatermarks" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="WTRMRK"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="SoftwareFault" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ID" type="uint64" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+      <field id="2" name="FaultRecording" type="octstr" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="1024"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticsThread.xml b/data_model/in_progress/clusters/DiagnosticsThread.xml
new file mode 100644
index 0000000..a55412d
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticsThread.xml
@@ -0,0 +1,711 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0035" name="Thread Network Diagnostics Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Remove optionality from FrameErrorRate and MessageErrorRate"/>
+    <revision revision="3" summary="Add ExtAddress and Rloc16 attributes"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0035" name="Thread Network Diagnostics"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DGTHREAD" scope="Node">
+    <quality diagnostics="true"/>
+  </classification>
+  <features>
+    <feature bit="0" code="PKTCNT" name="PacketCounts" summary="Server supports the counts for the number of received and transmitted packets on the Thread interface.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="ERRCNT" name="ErrorCounts" summary="Server supports the counts for the number of errors that have occurred during the reception and transmission of packets on the Thread interface.">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="MLECNT" name="MLECounts" summary="Server supports the counts for various MLE layer happenings.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="MACCNT" name="MACCounts" summary="Server supports the counts for various MAC layer happenings.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="ConnectionStatusEnum">
+      <item value="0" name="Connected" summary="Node is connected">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="NotConnected" summary="Node is not connected">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="NetworkFaultEnum">
+      <item value="0" name="Unspecified" summary="Indicates an unspecified fault.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="LinkDown" summary="Indicates the Thread link is down.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="HardwareFailure" summary="Indicates there has been Thread hardware failure.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="NetworkJammed" summary="Indicates the Thread network is jammed.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="RoutingRoleEnum">
+      <item value="0" name="Unspecified" summary="Unspecified routing role.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Unassigned" summary="The Node does not currently have a role as a result of the Thread interface not currently being configured or operational.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="SleepyEndDevice" summary="The Node acts as a Sleepy End Device with RX-off-when-idle sleepy radio behavior.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="EndDevice" summary="The Node acts as an End Device without RX-off-when-idle sleepy radio behavior.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="REED" summary="The Node acts as an Router Eligible End Device.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Router" summary="The Node acts as a Router Device.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Leader" summary="The Node acts as a Leader Device.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="NeighborTableStruct">
+      <field id="0" name="ExtAddress" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Age" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Rloc16" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="LinkFrameCounter" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="MleFrameCounter" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="LQI" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="255"/>
+      </field>
+      <field id="6" name="AverageRssi" type="int8" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="-128" to="0"/>
+      </field>
+      <field id="7" name="LastRssi" type="int8" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="-128" to="0"/>
+      </field>
+      <field id="8" name="FrameErrorRate" type="uint8" default="0">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="100"/>
+      </field>
+      <field id="9" name="MessageErrorRate" type="uint8" default="0">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="100"/>
+      </field>
+      <field id="10" name="RxOnWhenIdle" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="11" name="FullThreadDevice" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="12" name="FullNetworkData" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="13" name="IsChild" type="bool">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="OperationalDatasetComponents">
+      <field id="0" name="ActiveTimestampPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PendingTimestampPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MasterKeyPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="NetworkNamePresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="ExtendedPanIdPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="MeshLocalPrefixPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="DelayPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="7" name="PanIdPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="8" name="ChannelPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="9" name="PskcPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="10" name="SecurityPolicyPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="11" name="ChannelMaskPresent" type="bool">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="RouteTableStruct">
+      <field id="0" name="ExtAddress" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Rloc16" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="RouterId" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="NextHop" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="PathCost" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="LQIIn" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="LQIOut" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="7" name="Age" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="8" name="Allocated" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="9" name="LinkEstablished" type="bool">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="SecurityPolicy">
+      <field id="0" name="RotationTime" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Flags" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Channel" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="RoutingRole" type="RoutingRoleEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="NetworkName" type="String">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="16"/>
+    </attribute>
+    <attribute id="0x0003" name="PanId" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="ExtendedPanId" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="MeshLocalPrefix" type="ipv6pre">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0006" name="OverrunCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="NeighborTable" type="list" default="[]">
+      <entry type="NeighborTableStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0008" name="RouteTable" type="list" default="[]">
+      <entry type="RouteTableStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0009" name="PartitionId" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x000A" name="Weighting" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="255"/>
+    </attribute>
+    <attribute id="0x000B" name="DataVersion" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="255"/>
+    </attribute>
+    <attribute id="0x000C" name="StableDataVersion" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="255"/>
+    </attribute>
+    <attribute id="0x000D" name="LeaderRouterId" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="62"/>
+    </attribute>
+    <attribute id="0x000E" name="DetachedRoleCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000F" name="ChildRoleCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0010" name="RouterRoleCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0011" name="LeaderRoleCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0012" name="AttachAttemptCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0013" name="PartitionIdChangeCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0014" name="BetterPartitionAttachAttemptCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0015" name="ParentChangeCount" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MLECNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0016" name="TxTotalCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0017" name="TxUnicastCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0018" name="TxBroadcastCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0019" name="TxAckRequestedCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001A" name="TxAckedCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001B" name="TxNoAckRequestedCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001C" name="TxDataCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001D" name="TxDataPollCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001E" name="TxBeaconCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001F" name="TxBeaconRequestCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0020" name="TxOtherCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0021" name="TxRetryCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0022" name="TxDirectMaxRetryExpiryCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0023" name="TxIndirectMaxRetryExpiryCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0024" name="TxErrCcaCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0025" name="TxErrAbortCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0026" name="TxErrBusyChannelCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0027" name="RxTotalCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0028" name="RxUnicastCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0029" name="RxBroadcastCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002A" name="RxDataCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002B" name="RxDataPollCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002C" name="RxBeaconCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002D" name="RxBeaconRequestCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002E" name="RxOtherCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x002F" name="RxAddressFilteredCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0030" name="RxDestAddrFilteredCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0031" name="RxDuplicatedCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0032" name="RxErrNoFrameCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0033" name="RxErrUnknownNeighborCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0034" name="RxErrInvalidSrcAddrCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0035" name="RxErrSecCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0036" name="RxErrFcsCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0037" name="RxErrOtherCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="MACCNT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0038" name="ActiveTimestamp" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0039" name="PendingTimestamp" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x003A" name="Delay" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x003B" name="SecurityPolicy" type="SecurityPolicy">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x003C" name="ChannelPage0Mask" type="octstr">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="4"/>
+    </attribute>
+    <attribute id="0x003D" name="OperationalDatasetComponents" type="OperationalDatasetComponents">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x003E" name="ActiveNetworkFaultsList" type="list">
+      <entry type="NetworkFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="4"/>
+    </attribute>
+    <attribute id="0x003F" name="ExtAddress" type="uint64">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0040" name="Rloc16" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ResetCounts" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="ConnectionStatus" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ConnectionStatus" type="ConnectionStatusEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="NetworkFaultChange" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="Current" type="list">
+        <entry type="NetworkFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="4"/>
+      </field>
+      <field id="1" name="Previous" type="list">
+        <entry type="NetworkFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="4"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DiagnosticsWiFi.xml b/data_model/in_progress/clusters/DiagnosticsWiFi.xml
new file mode 100644
index 0000000..87f7e44
--- /dev/null
+++ b/data_model/in_progress/clusters/DiagnosticsWiFi.xml
@@ -0,0 +1,260 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0036" name="Wi-Fi Network Diagnostics Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0036" name="Wi-Fi Network Diagnostics"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="DGWIFI" scope="Node">
+    <quality diagnostics="true"/>
+  </classification>
+  <features>
+    <feature bit="0" code="PKTCNT" name="PacketCounts" summary="Node makes available the counts for the number of received and transmitted packets on the Wi-Fi interface.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="ERRCNT" name="ErrorCounts" summary="Node makes available the counts for the number of errors that have occurred during the reception and transmission of packets on the Wi-Fi interface.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AssociationFailureCauseEnum">
+      <item value="0" name="Unknown" summary="The reason for the failure is unknown.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AssociationFailed" summary="An error occurred during association.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="AuthenticationFailed" summary="An error occurred during authentication.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="SsidNotFound" summary="The specified SSID could not be found.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ConnectionStatusEnum">
+      <item value="0" name="Connected" summary="Indicate the node is connected">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="NotConnected" summary="Indicate the node is not connected">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="SecurityTypeEnum">
+      <item value="0" name="Unspecified" summary="Indicate the usage of an unspecified Wi-Fi security type">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="None" summary="Indicate the usage of no Wi-Fi security">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="WEP" summary="Indicate the usage of WEP Wi-Fi security">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="WPA" summary="Indicate the usage of WPA Wi-Fi security">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="WPA2" summary="Indicate the usage of WPA2 Wi-Fi security">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="WPA3" summary="Indicate the usage of WPA3 Wi-Fi security">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="WiFiVersionEnum">
+      <item value="0" name="a" summary="Indicate the network interface is currently using 802.11a against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="b" summary="Indicate the network interface is currently using 802.11b against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="g" summary="Indicate the network interface is currently using 802.11g against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="n" summary="Indicate the network interface is currently using 802.11n against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="ac" summary="Indicate the network interface is currently using 802.11ac against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="ax" summary="Indicate the network interface is currently using 802.11ax against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="ah" summary="Indicate the network interface is currently using 802.11ah against the wireless access point.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="BSSID" type="octstr" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="6"/>
+    </attribute>
+    <attribute id="0x0001" name="SecurityType" type="SecurityTypeEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="WiFiVersion" type="WiFiVersionEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="ChannelNumber" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="RSSI" type="int8" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="-120" to="0"/>
+    </attribute>
+    <attribute id="0x0005" name="BeaconLostCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0006" name="BeaconRxCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="PacketMulticastRxCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="PacketMulticastTxCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0009" name="PacketUnicastRxCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000A" name="PacketUnicastTxCount" type="uint32" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PKTCNT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000B" name="CurrentMaxRate" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000C" name="OverrunCount" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ResetCounts" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="ERRCNT"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="Disconnection" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ReasonCode" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="AssociationFailure" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="AssociationFailureCause" type="AssociationFailureCauseEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Status" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="ConnectionStatus" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ConnectionStatus" type="ConnectionStatusEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DishwasherAlarm.xml b/data_model/in_progress/clusters/DishwasherAlarm.xml
new file mode 100644
index 0000000..bdc399f
--- /dev/null
+++ b/data_model/in_progress/clusters/DishwasherAlarm.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+

+:xrefstyle: short

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005D" name="Dishwasher Alarm Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x005D" name="Dishwasher Alarm"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Alarm Base" role="application" picsCode="DISHALM" scope="Endpoint"/>
+  <dataTypes>
+    <bitmap name="AlarmBitmap">
+      <bitfield name="InflowError" bit="0" summary="Water inflow is abnormal">
+        <otherwiseConform>
+          <provisionalConform/>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </bitfield>
+      <bitfield name="DrainError" bit="1" summary="Water draining is abnormal">
+        <otherwiseConform>
+          <provisionalConform/>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </bitfield>
+      <bitfield name="DoorError" bit="2" summary="Door or door lock is abnormal">
+        <optionalConform choice="a" more="true"/>
+      </bitfield>
+      <bitfield name="TempTooLow" bit="3" summary="Unable to reach normal temperature">
+        <otherwiseConform>
+          <provisionalConform/>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </bitfield>
+      <bitfield name="TempTooHigh" bit="4" summary="Temperature is too high">
+        <otherwiseConform>
+          <provisionalConform/>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </bitfield>
+      <bitfield name="WaterLevelError" bit="5" summary="Water level is abnormal">
+        <otherwiseConform>
+          <provisionalConform/>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/DoorLock.xml b/data_model/in_progress/clusters/DoorLock.xml
new file mode 100644
index 0000000..46d659d
--- /dev/null
+++ b/data_model/in_progress/clusters/DoorLock.xml
@@ -0,0 +1,2020 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0101" name="Door Lock Cluster" revision="8">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 1811 1812 1821"/>
+    <revision revision="2" summary="CCB 2430"/>
+    <revision revision="3" summary="CCB 2629 2630"/>
+    <revision revision="4" summary="All Hubs changes and added feature map"/>
+    <revision revision="5" summary="CCB 3472 3474 3338"/>
+    <revision revision="6" summary="New data model format and notation. Added User features. General cleanup of functionality"/>
+    <revision revision="7" summary="Added support for European door locks (unbolt feature)"/>
+    <revision revision="8" summary="Removed LOG feature, fixed constraints on NumberOf*Schedules attributes.
+             and added support for Aliro credential provisioning"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0101" name="Door Lock"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="DRLK" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PIN" name="PINCredential" summary="Lock supports PIN credentials (via keypad, or over-the-air)">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="RID" name="RFIDCredential" summary="Lock supports RFID credentials">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="FGP" name="FingerCredentials" summary="Lock supports finger related credentials (fingerprint, finger vein)">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="4" code="WDSCH" name="WeekDayAccessSchedules" summary="Lock supports week day user access schedules">
+      <optionalConform/>
+    </feature>
+    <feature bit="5" code="DPS" name="DoorPositionSensor" summary="Lock supports a door position sensor that indicates door's state">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="FACE" name="FaceCredentials" summary="Lock supports face related credentials (face, iris, retina)">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="7" code="COTA" name="CredentialOverTheAirAccess" summary="PIN codes over-the-air supported for lock/unlock operations">
+      <optionalConform/>
+    </feature>
+    <feature bit="8" code="USR" name="User" summary="Lock supports the user commands and database">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+        <optionalConform>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+            <feature name="FGP"/>
+            <feature name="FACE"/>
+          </orTerm>
+        </optionalConform>
+      </otherwiseConform>
+    </feature>
+    <feature bit="10" code="YDSCH" name="YearDayAccessSchedules" summary="Lock supports year day user access schedules">
+      <optionalConform/>
+    </feature>
+    <feature bit="11" code="HDSCH" name="HolidaySchedules" summary="Lock supports holiday schedules">
+      <optionalConform/>
+    </feature>
+    <feature bit="12" code="UBOLT" name="Unbolting" summary="Lock supports unbolting">
+      <optionalConform/>
+    </feature>
+    <feature bit="13" code="ALIRO" name="AliroProvisioning" summary="Lock supports Aliro credential provisioning as defined in ref_Aliro">
+      <optionalConform/>
+    </feature>
+    <feature bit="14" code="ALBU" name="AliroBLEUWB" summary="Lock supports the Bluetooth LE + UWB Access Control Flow as defined in ref_Aliro">
+      <optionalConform>
+        <feature name="ALIRO"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AlarmCodeEnum">
+      <item value="0" name="LockJammed" summary="Locking Mechanism Jammed">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="LockFactoryReset" summary="Lock Reset to Factory Defaults">
+        <optionalConform/>
+      </item>
+      <item value="3" name="LockRadioPowerCycled" summary="Lock Radio Power Cycled">
+        <optionalConform/>
+      </item>
+      <item value="4" name="WrongCodeEntryLimit" summary="Tamper Alarm - wrong code entry limit">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="5" name="FrontEsceutcheonRemoved" summary="Tamper Alarm - front escutcheon removed from main">
+        <optionalConform/>
+      </item>
+      <item value="6" name="DoorForcedOpen" summary="Forced Door Open under Door Locked Condition">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+      <item value="7" name="DoorAjar" summary="Door ajar">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+      <item value="8" name="ForcedUser" summary="Force User SOS alarm">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+    </enum>
+    <enum name="CredentialRuleEnum">
+      <item value="0" name="Single" summary="Only one credential is required for lock operation">
+        <mandatoryConform>
+          <feature name="USR"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="Dual" summary="Any two credentials are required for lock operation">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="2" name="Tri" summary="Any three credentials are required for lock operation">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+    </enum>
+    <enum name="CredentialTypeEnum">
+      <item value="0" name="ProgrammingPIN" summary="Programming PIN code credential type">
+        <optionalConform/>
+      </item>
+      <item value="1" name="PIN" summary="PIN code credential type">
+        <mandatoryConform>
+          <feature name="PIN"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="RFID" summary="RFID identifier credential type">
+        <mandatoryConform>
+          <feature name="RID"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Fingerprint" summary="Fingerprint identifier credential type">
+        <mandatoryConform>
+          <feature name="FGP"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="FingerVein" summary="Finger vein identifier credential type">
+        <mandatoryConform>
+          <feature name="FGP"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="Face" summary="Face identifier credential type">
+        <mandatoryConform>
+          <feature name="FACE"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="AliroCredentialIssuerKey" summary="A Credential Issuer public key as defined in ref_Aliro">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="AliroEvictableEndpointKey" summary="An Endpoint public key as defined in ref_Aliro which can
+                                         be evicted if space is needed for another endpoint key">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+      <item value="8" name="AliroNonEvictableEndpointKey" summary="An Endpoint public key as defined in ref_Aliro which cannot
+                                         be evicted if space is needed for another endpoint key">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="DataOperationTypeEnum">
+      <item value="0" name="Add" summary="Data is being added or was added">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Clear" summary="Data is being cleared or was cleared">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Modify" summary="Data is being modified or was modified">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DoorStateEnum">
+      <item value="0" name="DoorOpen" summary="Door state is open">
+        <mandatoryConform>
+          <feature name="DPS"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="DoorClosed" summary="Door state is closed">
+        <mandatoryConform>
+          <feature name="DPS"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="DoorJammed" summary="Door state is jammed">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+      <item value="3" name="DoorForcedOpen" summary="Door state is currently forced open">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+      <item value="4" name="DoorUnspecifiedError" summary="Door state is invalid for unspecified reason">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+      <item value="5" name="DoorAjar" summary="Door state is ajar">
+        <optionalConform>
+          <feature name="DPS"/>
+        </optionalConform>
+      </item>
+    </enum>
+    <enum name="EventTypeEnum">
+      <item value="0" name="Operation" summary="Event type is operation">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Programming" summary="Event type is programming">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Alarm" summary="Event type is alarm">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LEDSettingEnum">
+      <item value="0" name="NoLEDSignal" summary="Never use LED for signalization">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="NoLEDSignalAccessAllowed" summary="Use LED signalization except for access allowed events">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="LEDSignalAll" summary="Use LED signalization for all events">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LockDataTypeEnum">
+      <item value="0" name="Unspecified" summary="Unspecified or manufacturer specific lock user data added, cleared, or modified.">
+        <optionalConform/>
+      </item>
+      <item value="1" name="ProgrammingCode" summary="Lock programming PIN code was added, cleared, or modified.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="UserIndex" summary="Lock user index was added, cleared, or modified.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="WeekDaySchedule" summary="Lock user week day schedule was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="WDSCH"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="YearDaySchedule" summary="Lock user year day schedule was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="YDSCH"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="HolidaySchedule" summary="Lock holiday schedule was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="HDSCH"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="PIN" summary="Lock user PIN code was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="PIN"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="RFID" summary="Lock user RFID code was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="RID"/>
+        </mandatoryConform>
+      </item>
+      <item value="8" name="Fingerprint" summary="Lock user fingerprint was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="FGP"/>
+        </mandatoryConform>
+      </item>
+      <item value="9" name="FingerVein" summary="Lock user finger-vein information was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="FGP"/>
+        </mandatoryConform>
+      </item>
+      <item value="10" name="Face" summary="Lock user face information was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="FACE"/>
+        </mandatoryConform>
+      </item>
+      <item value="11" name="AliroCredentialIssuerKey" summary="An Aliro credential issuer key credential was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+      <item value="12" name="AliroEvictableEndpointKey" summary="An Aliro endpoint key credential which can be evicted credential was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+      <item value="13" name="AliroNonEvictableEndpointKey" summary="An Aliro endpoint key credential which cannot be evicted was added, cleared, or modified.">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="LockOperationTypeEnum">
+      <item value="0" name="Lock" summary="Lock operation">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Unlock" summary="Unlock operation">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NonAccessUserEvent" summary="Triggered by keypad entry for user with User Type set to Non Access User">
+        <optionalConform/>
+      </item>
+      <item value="3" name="ForcedUserEvent" summary="Triggered by using a user with UserType set to Forced User">
+        <optionalConform/>
+      </item>
+      <item value="4" name="Unlatch" summary="Unlatch operation">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="LockStateEnum">
+      <item value="0" name="NotFullyLocked" summary="Lock state is not fully locked">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Locked" summary="Lock state is fully locked">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Unlocked" summary="Lock state is fully unlocked">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Unlatched" summary="Lock state is fully unlocked and the latch is pulled">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="LockTypeEnum">
+      <item value="0" name="DeadBolt" summary="Physical lock type is dead bolt">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Magnetic" summary="Physical lock type is magnetic">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Other" summary="Physical lock type is other">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Mortise" summary="Physical lock type is mortise">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Rim" summary="Physical lock type is rim">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="LatchBolt" summary="Physical lock type is latch bolt">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="CylindricalLock" summary="Physical lock type is cylindrical lock">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="TubularLock" summary="Physical lock type is tubular lock">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="InterconnectedLock" summary="Physical lock type is interconnected lock">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="DeadLatch" summary="Physical lock type is dead latch">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="DoorFurniture" summary="Physical lock type is door furniture">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="Eurocylinder" summary="Physical lock type is euro cylinder">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="OperatingModeEnum">
+      <item value="0" name="Normal">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Vacation">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Privacy">
+        <optionalConform/>
+      </item>
+      <item value="3" name="NoRemoteLockUnlock">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Passage">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="OperationErrorEnum">
+      <item value="0" name="Unspecified" summary="Lock/unlock error caused by unknown or unspecified source">
+        <optionalConform/>
+      </item>
+      <item value="1" name="InvalidCredential" summary="Lock/unlock error caused by invalid PIN, RFID, fingerprint or other credential">
+        <mandatoryConform>
+          <feature name="USR"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="DisabledUserDenied" summary="Lock/unlock error caused by disabled USER or credential">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Restricted" summary="Lock/unlock error caused by schedule restriction">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="WDSCH"/>
+            <feature name="YDSCH"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="InsufficientBattery" summary="Lock/unlock error caused by insufficient battery power left to safely actuate the lock">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="OperationSourceEnum">
+      <item value="0" name="Unspecified" summary="Lock/unlock operation came from unspecified source">
+        <optionalConform/>
+      </item>
+      <item value="1" name="Manual" summary="Lock/unlock operation came from manual operation (key, thumbturn, handle, etc).">
+        <optionalConform/>
+      </item>
+      <item value="2" name="ProprietaryRemote" summary="Lock/unlock operation came from proprietary remote source (e.g. vendor app/cloud)">
+        <optionalConform/>
+      </item>
+      <item value="3" name="Keypad" summary="Lock/unlock operation came from keypad">
+        <optionalConform/>
+      </item>
+      <item value="4" name="Auto" summary="Lock/unlock operation came from lock automatically (e.g. relock timer)">
+        <optionalConform/>
+      </item>
+      <item value="5" name="Button" summary="Lock/unlock operation came from lock button (e.g. one touch or button)">
+        <optionalConform/>
+      </item>
+      <item value="6" name="Schedule" summary="Lock/unlock operation came from lock due to a schedule">
+        <mandatoryConform>
+          <feature name="HDSCH"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="Remote" summary="Lock/unlock operation came from remote node">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="RFID" summary="Lock/unlock operation came from RFID card">
+        <mandatoryConform>
+          <feature name="RID"/>
+        </mandatoryConform>
+      </item>
+      <item value="9" name="Biometric" summary="Lock/unlock operation came from biometric source (e.g. face, fingerprint/fingervein)">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="10" name="Aliro" summary="Lock/unlock operation came from an interaction defined in ref_Aliro, or
+                              user change operation was a step-up credential provisioning as defined in ref_Aliro">
+        <mandatoryConform>
+          <feature name="ALIRO"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="SoundVolumeEnum">
+      <item value="0" name="Silent" summary="Silent Mode">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Low" summary="Low Volume">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="High" summary="High Volume">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Medium" summary="Medium Volume">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="Status Codes" type="status"/>
+    <enum name="UserStatusEnum">
+      <item value="0" name="Available" summary="The user ID is available">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="OccupiedEnabled" summary="The user ID is occupied and enabled">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="OccupiedDisabled" summary="The user ID is occupied and disabled">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="UserTypeEnum">
+      <item value="0" name="UnrestrictedUser" summary="The user ID type is unrestricted">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="YearDayScheduleUser" summary="The user ID type is schedule">
+        <optionalConform/>
+      </item>
+      <item value="2" name="WeekDayScheduleUser" summary="The user ID type is schedule">
+        <optionalConform/>
+      </item>
+      <item value="3" name="ProgrammingUser" summary="The user ID type is programming">
+        <optionalConform/>
+      </item>
+      <item value="4" name="NonAccessUser" summary="The user ID type is non access">
+        <optionalConform/>
+      </item>
+      <item value="5" name="ForcedUser" summary="The user ID type is forced">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="6" name="DisposableUser" summary="The user ID type is disposable">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="7" name="ExpiringUser" summary="The user ID type is expiring">
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+      </item>
+      <item value="8" name="ScheduleRestrictedUser" summary="The user ID type is schedule restricted">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="WDSCH"/>
+            <feature name="YDSCH"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="9" name="RemoteOnlyUser" summary="The user ID type is remote only">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="USR"/>
+            <feature name="COTA"/>
+            <feature name="PIN"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <bitmap name="AlarmMaskBitmap">
+      <bitfield name="LockJammed" bit="0" summary="Locking Mechanism Jammed">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LockFactoryReset" bit="1" summary="Lock Reset to Factory Defaults">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="N/A" bit="2" summary="Reserved">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="LockRadioPowerCycled" bit="3" summary="RF Module Power Cycled">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="WrongCodeEntryLimit" bit="4" summary="Tamper Alarm - wrong code entry limit">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+          </orTerm>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="FrontEscutcheonRemoved" bit="5" summary="Tamper Alarm - front escutcheon removed from main">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="DoorForcedOpen" bit="6" summary="Forced Door Open under Door Locked Condition">
+        <optionalConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ConfigurationRegisterBitmap">
+      <bitfield name="LocalProgramming" bit="0" summary="The state of local programming functionality">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="KeypadInterface" bit="1" summary="The state of the keypad interface">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RemoteInterface" bit="2" summary="The state of the remote interface">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SoundVolume" bit="5" summary="Sound volume is set to Silent value">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AutoRelockTime" bit="6" summary="Auto relock time it set to 0">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LEDSettings" bit="7" summary="LEDs is disabled">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="CredentialRulesBitmap">
+      <bitfield name="Single" bit="0" summary="Only one credential is required for lock operation">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Dual" bit="1" summary="Any two credentials are required for lock operation">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tri" bit="2" summary="Any three credentials are required for lock operation">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="DaysMaskBitmap">
+      <bitfield name="Sunday" bit="0" summary="Schedule is applied on Sunday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Monday" bit="1" summary="Schedule is applied on Monday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tuesday" bit="2" summary="Schedule is applied on Tuesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Wednesday" bit="3" summary="Schedule is applied on Wednesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Thursday" bit="4" summary="Schedule is applied on Thursday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Friday" bit="5" summary="Schedule is applied on Friday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Saturday" bit="6" summary="Schedule is applied on Saturday">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="LocalProgrammingFeaturesBitmap">
+      <bitfield name="AddUsersCredentialsSchedules" bit="0" summary="The state of the ability to add users, credentials or schedules on the device">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ModifyUsersCredentialsSchedules" bit="1" summary="The state of the ability to modify users, credentials or schedules on the device">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ClearUsersCredentialsSchedules" bit="2" summary="The state of the ability to clear users, credentials or schedules on the device">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AdjustSettings" bit="3" summary="The state of the ability to adjust settings on the device">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="OperatingModesBitmap">
+      <bitfield name="Normal" bit="0" summary="Normal operation mode">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Vacation" bit="1" summary="Vacation operation mode">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="Privacy" bit="2" summary="Privacy operation mode">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="NoRemoteLockUnlock" bit="3" summary="No remote lock and unlock operation mode">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Passage" bit="4" summary="Passage operation mode">
+        <optionalConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="CredentialStruct">
+      <field id="0" name="CredentialType" type="CredentialTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="CredentialIndex" type="uint16" default="0">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="LockState" type="LockStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="LockType" type="LockTypeEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="ActuatorEnabled" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="DoorState" type="DoorStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="DPS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="DoorOpenEvents" type="uint32">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform>
+        <feature name="DPS"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0005" name="DoorClosedEvents" type="uint32">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform>
+        <feature name="DPS"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0006" name="OpenPeriod" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform>
+        <feature name="DPS"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0011" name="NumberOfTotalUsersSupported" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0012" name="NumberOfPINUsersSupported" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PIN"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0013" name="NumberOfRFIDUsersSupported" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RID"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0014" name="NumberOfWeekDaySchedulesSupportedPerUser" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="WDSCH"/>
+      </mandatoryConform>
+      <constraint type="max" value="0xFD"/>
+    </attribute>
+    <attribute id="0x0015" name="NumberOfYearDaySchedulesSupportedPerUser" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="YDSCH"/>
+      </mandatoryConform>
+      <constraint type="max" value="0xFD"/>
+    </attribute>
+    <attribute id="0x0016" name="NumberOfHolidaySchedulesSupported" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="HDSCH"/>
+      </mandatoryConform>
+      <constraint type="max" value="0xFD"/>
+    </attribute>
+    <attribute id="0x0017" name="MaxPINCodeLength" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PIN"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0018" name="MinPINCodeLength" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PIN"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0019" name="MaxRFIDCodeLength" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RID"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x001A" name="MinRFIDCodeLength" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RID"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x001B" name="CredentialRulesSupport" type="CredentialRulesBitmap" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x001C" name="NumberOfCredentialsSupportedPerUser" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0021" name="Language" type="string" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="3"/>
+    </attribute>
+    <attribute id="0x0022" name="LEDSettings" type="LEDSettingEnum" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0023" name="AutoRelockTime" type="uint32" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0024" name="SoundVolume" type="SoundVolumeEnum" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0025" name="OperatingMode" type="OperatingModeEnum" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0026" name="SupportedOperatingModes" type="OperatingModesBitmap" default="0xFFF6">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0027" name="DefaultConfigurationRegister" type="ConfigurationRegisterBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0028" name="EnableLocalProgramming" type="bool" default="1">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0029" name="EnableOneTouchLocking" type="bool" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x002A" name="EnableInsideStatusLED" type="bool" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x002B" name="EnablePrivacyModeButton" type="bool" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x002C" name="LocalProgrammingFeatures" type="LocalProgrammingFeaturesBitmap" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0030" name="WrongCodeEntryLimit" type="uint8" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="PIN"/>
+          <feature name="RID"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="between" from="1" to="255"/>
+    </attribute>
+    <attribute id="0x0031" name="UserCodeTemporaryDisableTime" type="uint8" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="PIN"/>
+          <feature name="RID"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="between" from="1" to="255"/>
+    </attribute>
+    <attribute id="0x0032" name="SendPINOverTheAir" type="bool" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0033" name="RequirePINforRemoteOperation" type="bool" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="COTA"/>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0034" name="SecurityLevel" default="0">
+      <access read="true" readPrivilege="view"/>
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0035" name="ExpiringUserTimeout" type="uint16" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="USR"/>
+      </optionalConform>
+      <constraint type="between" from="1" to="2880"/>
+    </attribute>
+    <attribute id="0x0040" name="AlarmMask" type="AlarmMaskBitmap" default="0xFFFF">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0080" name="AliroReaderVerificationKey" type="octstr" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="65"/>
+    </attribute>
+    <attribute id="0x0081" name="AliroReaderGroupIdentifier" type="octstr" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0082" name="AliroReaderGroupSubIdentifier" type="octstr">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0083" name="AliroExpeditedTransactionSupportedProtocolVersions" type="list" default="empty">
+      <entry type="octstr">
+        <constraint type="maxLength" value="2"/>
+      </entry>
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="16"/>
+    </attribute>
+    <attribute id="0x0084" name="AliroGroupResolvingKey" type="octstr" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALBU"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0085" name="AliroSupportedBLEUWBProtocolVersions" type="list" default="empty">
+      <entry type="octstr">
+        <constraint type="maxLength" value="2"/>
+      </entry>
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALBU"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="16"/>
+    </attribute>
+    <attribute id="0x0086" name="AliroBLEAdvertisingVersion" type="uint8" default="0">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALBU"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0087" name="NumberOfAliroCredentialIssuerKeysSupported" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0088" name="NumberOfAliroEndpointKeysSupported" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="LockDoor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="PINCode" type="octstr">
+        <optionalConform>
+          <andTerm>
+            <feature name="COTA"/>
+            <feature name="PIN"/>
+          </andTerm>
+        </optionalConform>
+      </field>
+    </command>
+    <command id="0x01" name="UnlockDoor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="PINCode" type="octstr">
+        <optionalConform>
+          <andTerm>
+            <feature name="COTA"/>
+            <feature name="PIN"/>
+          </andTerm>
+        </optionalConform>
+      </field>
+    </command>
+    <command id="0x02" name="Toggle" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <disallowConform/>
+    </command>
+    <command id="0x03" name="UnlockWithTimeout" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <optionalConform/>
+      <field id="0" name="Timeout" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PINCode" type="octstr">
+        <optionalConform>
+          <andTerm>
+            <feature name="COTA"/>
+            <feature name="PIN"/>
+          </andTerm>
+        </optionalConform>
+      </field>
+    </command>
+    <command id="0x05" name="SetPINCode" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum" default="OccupiedEnabled">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="UserType" type="UserTypeEnum" default="UnrestrictedUser">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="PIN" type="octstr">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x06" name="GetPINCode" direction="commandToServer" response="GetPINCodeResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x06" name="GetPINCodeResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum" default="Available">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="UserType" type="UserTypeEnum">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="PINCode" type="octstr" default="empty">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x07" name="ClearPINCode" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="PINSlotIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfPINUsersSupported"/>
+        <constraint type="allowed" value="0xFFFE"/>
+      </field>
+    </command>
+    <command id="0x08" name="ClearAllPINCodes" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="PIN"/>
+        </andTerm>
+      </mandatoryConform>
+    </command>
+    <command id="0x09" name="SetUserStatus" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+            <feature name="FGP"/>
+          </orTerm>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x0A" name="GetUserStatus" direction="commandToServer" response="GetUserStatusResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+            <feature name="FGP"/>
+          </orTerm>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x0A" name="GetUserStatusResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <notTerm>
+          <feature name="USR"/>
+        </notTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0B" name="SetWeekDaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="WDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="WeekDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfWeekDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="DaysMask" type="DaysMaskBitmap">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="StartHour" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="23"/>
+      </field>
+      <field id="4" name="StartMinute" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="59"/>
+      </field>
+      <field id="5" name="EndHour" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="23"/>
+      </field>
+      <field id="6" name="EndMinute" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="59"/>
+      </field>
+    </command>
+    <command id="0x0C" name="GetWeekDaySchedule" direction="commandToServer" response="GetWeekDayScheduleResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="WDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="WeekDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfWeekDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x0C" name="GetWeekDayScheduleResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="WDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="WeekDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfWeekDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="Status" type="enum8" default="SUCCESS">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="DaysMask" type="DaysMaskBitmap">
+        <optionalConform/>
+      </field>
+      <field id="4" name="StartHour" type="uint8">
+        <optionalConform/>
+        <constraint type="max" value="23"/>
+      </field>
+      <field id="5" name="StartMinute" type="uint8">
+        <optionalConform/>
+        <constraint type="max" value="59"/>
+      </field>
+      <field id="6" name="EndHour" type="uint8">
+        <optionalConform/>
+        <constraint type="max" value="23"/>
+      </field>
+      <field id="7" name="EndMinute" type="uint8">
+        <optionalConform/>
+        <constraint type="max" value="59"/>
+      </field>
+    </command>
+    <command id="0x0D" name="ClearWeekDaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="WDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="WeekDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfWeekDaySchedulesSupportedPerUser"/>
+        <constraint type="allowed" value="0xFE"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x0E" name="SetYearDaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="YDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="YearDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfYearDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="LocalStartTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="LocalEndTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0F" name="GetYearDaySchedule" direction="commandToServer" response="GetYearDayScheduleResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="YDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="YearDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfYearDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x0F" name="GetYearDayScheduleResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="YDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="YearDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfYearDaySchedulesSupportedPerUser"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="Status" type="enum8" default="SUCCESS">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="LocalStartTime" type="epoch-s">
+        <optionalConform/>
+      </field>
+      <field id="3" name="LocalEndTime" type="epoch-s">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x10" name="ClearYearDaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="YDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="YearDayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfYearDaySchedulesSupportedPerUser"/>
+        <constraint type="allowed" value="0xFE"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x11" name="SetHolidaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="HDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="HolidayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfHolidaySchedulesSupported"/>
+      </field>
+      <field id="1" name="LocalStartTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="LocalEndTime" type="epoch-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="OperatingMode" type="OperatingModeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x12" name="GetHolidaySchedule" direction="commandToServer" response="GetHolidayScheduleResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="HDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="HolidayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfHolidaySchedulesSupported"/>
+      </field>
+    </command>
+    <command id="0x12" name="GetHolidayScheduleResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="HDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="HolidayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfHolidaySchedulesSupported"/>
+      </field>
+      <field id="1" name="Status" type="enum8" default="SUCCESS">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="LocalStartTime" type="epoch-s">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="3" name="Local End Time" type="epoch-s">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="4" name="OperatingMode" type="OperatingModeEnum">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x13" name="ClearHolidaySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="HDSCH"/>
+      </mandatoryConform>
+      <field id="0" name="HolidayIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfHolidaySchedulesSupported"/>
+        <constraint type="allowed" value="0xFE"/>
+      </field>
+    </command>
+    <command id="0x14" name="SetUserType" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+            <feature name="FGP"/>
+          </orTerm>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserType" type="UserTypeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x15" name="GetUserType" direction="commandToServer" response="GetUserTypeResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <orTerm>
+            <feature name="PIN"/>
+            <feature name="RID"/>
+            <feature name="FGP"/>
+          </orTerm>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x15" name="GetUserTypeResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <notTerm>
+          <feature name="USR"/>
+        </notTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserType" type="UserTypeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x16" name="SetRFIDCode" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="RID"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum" default="OccupiedEnabled">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="UserType" type="UserTypeEnum" default="UnrestrictedUser">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="RFIDCode" type="octstr">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x17" name="GetRFIDCode" direction="commandToServer" response="GetRFIDCodeResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="RID"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x17" name="GetRFIDCodeResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="RID"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="UserID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserStatus" type="UserStatusEnum" default="Available">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="UserType" type="UserTypeEnum">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="RFIDCode" type="octstr" default="empty">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x18" name="ClearRFIDCode" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="RID"/>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="RFIDSlotIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfRFIDUsersSupported"/>
+        <constraint type="allowed" value="0xFFFE"/>
+      </field>
+    </command>
+    <command id="0x19" name="ClearAllRFIDCodes" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <notTerm>
+            <feature name="USR"/>
+          </notTerm>
+          <feature name="RID"/>
+        </andTerm>
+      </mandatoryConform>
+    </command>
+    <command id="0x1A" name="SetUser" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="OperationType" type="DataOperationTypeEnum">
+        <mandatoryConform/>
+        <constraint type="allowed" value="Add"/>
+        <constraint type="allowed" value="Modify"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="UserName" type="string" default="empty">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="10"/>
+      </field>
+      <field id="3" name="UserUniqueID" type="uint32" default="0xFFFFFFFF">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="UserStatus" type="UserStatusEnum" default="OccupiedEnabled">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="allowed" value="OccupiedEnabled"/>
+        <constraint type="allowed" value="OccupiedDisabled"/>
+      </field>
+      <field id="5" name="UserType" type="UserTypeEnum" default="UnrestrictedUser">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="allowed" value="UnrestrictedUser"/>
+        <constraint type="allowed" value="+                                                        NonAccessUser"/>
+        <constraint type="allowed" value="+                                                        ForcedUser"/>
+        <constraint type="allowed" value="+                                                        DisposableUser"/>
+        <constraint type="allowed" value="+                                                        ExpiringUser"/>
+        <constraint type="allowed" value="+                                                        ScheduleRestrictedUser"/>
+        <constraint type="allowed" value="+                                                        RemoteOnlyUser"/>
+      </field>
+      <field id="6" name="CredentialRule" type="CredentialRuleEnum" default="Single">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x1B" name="GetUser" direction="commandToServer" response="GetUserResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x1C" name="GetUserResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="1" name="UserName" type="string" default="empty">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="10"/>
+      </field>
+      <field id="2" name="UserUniqueID" type="uint32" default="0">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="UserStatus" type="UserStatusEnum" default="Available">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="UserType" type="UserTypeEnum" default="UnrestrictedUser">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="CredentialRule" type="CredentialRuleEnum" default="Single">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="6" name="Credentials" type="list">
+        <entry type="CredentialStruct"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="countBetween" from="0" to="NumberOfCredentialsSupportedPerUser"/>
+      </field>
+      <field id="7" name="CreatorFabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="8" name="LastModifiedFabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="9" name="NextUserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+    </command>
+    <command id="0x1D" name="ClearUser" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="UserIndex" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+        <constraint type="allowed" value="0xFFFE"/>
+      </field>
+    </command>
+    <command id="0x22" name="SetCredential" direction="commandToServer" response="SetCredentialResponse">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="OperationType" type="DataOperationTypeEnum">
+        <mandatoryConform/>
+        <constraint type="allowed" value="Add"/>
+        <constraint type="allowed" value="Modify"/>
+      </field>
+      <field id="1" name="Credential" type="CredentialStruct">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="CredentialData" type="octstr">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="UserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="4" name="UserStatus" type="UserStatusEnum" default="OccupiedEnabled">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="allowed" value="OccupiedEnabled"/>
+        <constraint type="allowed" value="OccupiedDisabled"/>
+      </field>
+      <field id="5" name="UserType" type="UserTypeEnum" default="UnrestrictedUser">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="allowed" value="UnrestrictedUser"/>
+        <constraint type="allowed" value="+                                                        ProgrammingUser"/>
+        <constraint type="allowed" value="+                                                        NonAccessUser"/>
+        <constraint type="allowed" value="+                                                        ForcedUser"/>
+        <constraint type="allowed" value="+                                                        DisposableUser"/>
+        <constraint type="allowed" value="+                                                        ExpiringUser"/>
+        <constraint type="allowed" value="+                                                        RemoteOnlyUser"/>
+      </field>
+    </command>
+    <command id="0x23" name="SetCredentialResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16" default="0">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="NextCredentialIndex" type="uint16">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x24" name="GetCredentialStatus" direction="commandToServer" response="GetCredentialStatusResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="Credential" type="CredentialStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x25" name="GetCredentialStatusResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="CredentialExists" type="bool">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="UserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="NumberOfTotalUsersSupported"/>
+      </field>
+      <field id="2" name="CreatorFabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="LastModifiedFabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="NextCredentialIndex" type="uint16">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="5" name="CredentialData" type="octstr">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="ALIRO"/>
+        </optionalConform>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x26" name="ClearCredential" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="Credential" type="CredentialStruct">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x27" name="UnboltDoor" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform>
+        <feature name="UBOLT"/>
+      </mandatoryConform>
+      <field id="0" name="PINCode" type="octstr">
+        <optionalConform>
+          <andTerm>
+            <feature name="COTA"/>
+            <feature name="PIN"/>
+          </andTerm>
+        </optionalConform>
+      </field>
+    </command>
+    <command id="0x28" name="SetAliroReaderConfig" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+      <field id="0" name="SigningKey" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="VerificationKey" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="65"/>
+      </field>
+      <field id="2" name="GroupIdentifier" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="GroupResolvingKey" type="octstr">
+        <mandatoryConform>
+          <feature name="ALBU"/>
+        </mandatoryConform>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x29" name="ClearAliroReaderConfig" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" timed="true"/>
+      <mandatoryConform>
+        <feature name="ALIRO"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="DoorLockAlarm" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="AlarmCode" type="AlarmCodeEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="DoorStateChange" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="DPS"/>
+      </mandatoryConform>
+      <field id="0" name="DoorState" type="DoorStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="LockOperation" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="LockOperationType" type="LockOperationTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="OperationSource" type="OperationSourceEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="UserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="FabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="SourceNode" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="Credentials" type="list">
+        <entry type="CredentialStruct"/>
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+        <constraint type="countBetween" from="1" to="NumberOfCredentialsSupportedPerUser"/>
+      </field>
+    </event>
+    <event id="0x03" name="LockOperationError" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="LockOperationType" type="LockOperationTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="OperationSource" type="OperationSourceEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OperationError" type="OperationErrorEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="UserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="FabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="SourceNode" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="Credentials" type="list">
+        <entry type="CredentialStruct"/>
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="USR"/>
+        </optionalConform>
+        <constraint type="countBetween" from="1" to="NumberOfCredentialsSupportedPerUser"/>
+      </field>
+    </event>
+    <event id="0x04" name="LockUserChange" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="USR"/>
+      </mandatoryConform>
+      <field id="0" name="LockDataType" type="LockDataTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DataOperationType" type="DataOperationTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OperationSource" type="OperationSourceEnum">
+        <mandatoryConform/>
+        <constraint type="allowed" value="Aliro"/>
+        <constraint type="allowed" value="Unspecified"/>
+        <constraint type="allowed" value="Keypad"/>
+        <constraint type="allowed" value="Remote"/>
+      </field>
+      <field id="3" name="UserIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="FabricIndex" type="fabric-idx">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="SourceNode" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="DataIndex" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ElectricalEnergyMeasurement.xml b/data_model/in_progress/clusters/ElectricalEnergyMeasurement.xml
new file mode 100644
index 0000000..259f9f5
--- /dev/null
+++ b/data_model/in_progress/clusters/ElectricalEnergyMeasurement.xml
@@ -0,0 +1,224 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0091" name="Electrical Energy Measurement Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0091" name="Electrical Energy Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="EEM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="IMPE" name="ImportedEnergy" summary="Measurement of energy imported by the server">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="EXPE" name="ExportedEnergy" summary="Measurement of energy provided by the server">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="CUME" name="CumulativeEnergy" summary="Measurements are cumulative">
+      <optionalConform choice="b" more="true"/>
+    </feature>
+    <feature bit="3" code="PERE" name="PeriodicEnergy" summary="Measurements are periodic">
+      <optionalConform choice="b" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="CumulativeEnergyResetStruct">
+      <field id="0" name="ImportedResetTimestamp" type="epoch-s" default="null">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="IMPE"/>
+        </optionalConform>
+      </field>
+      <field id="1" name="ExportedResetTimestamp" type="epoch-s" default="null">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="EXPE"/>
+        </optionalConform>
+      </field>
+      <field id="2" name="ImportedResetSystime" type="systime-ms" default="null">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="IMPE"/>
+        </optionalConform>
+      </field>
+      <field id="3" name="ExportedResetSystime" type="systime-ms" default="null">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="EXPE"/>
+        </optionalConform>
+      </field>
+    </struct>
+    <struct name="EnergyMeasurementStruct">
+      <field id="0" name="Energy" type="energy-mWh">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="2"/>
+      </field>
+      <field id="1" name="StartTimestamp" type="epoch-s"/>
+      <field id="2" name="EndTimestamp" type="epoch-s">
+        <constraint type="min" value="StartTimestamp + 1"/>
+      </field>
+      <field id="3" name="StartSystime" type="systime-ms"/>
+      <field id="4" name="EndSystime" type="systime-ms">
+        <constraint type="min" value="StartSystime + 1"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Accuracy" type="ref_MeasurementAccuracyStruct">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CumulativeEnergyImported" type="EnergyMeasurementStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="IMPE"/>
+          <feature name="CUME"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="CumulativeEnergyExported" type="EnergyMeasurementStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="EXPE"/>
+          <feature name="CUME"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="PeriodicEnergyImported" type="EnergyMeasurementStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="IMPE"/>
+          <feature name="PERE"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="PeriodicEnergyExported" type="EnergyMeasurementStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="EXPE"/>
+          <feature name="PERE"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="CumulativeEnergyReset" type="CumulativeEnergyResetStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="CUME"/>
+      </optionalConform>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="CumulativeEnergyMeasured" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CUME"/>
+      </mandatoryConform>
+      <field id="0" name="EnergyImported" type="EnergyMeasurementStruct">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="CUME"/>
+            <feature name="IMPE"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+      <field id="1" name="EnergyExported" type="EnergyMeasurementStruct">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="CUME"/>
+            <feature name="EXPE"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+    </event>
+    <event id="0x01" name="PeriodicEnergyMeasured" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PERE"/>
+      </mandatoryConform>
+      <field id="0" name="EnergyImported" type="EnergyMeasurementStruct">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="PERE"/>
+            <feature name="IMPE"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+      <field id="1" name="EnergyExported" type="EnergyMeasurementStruct">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="PERE"/>
+            <feature name="EXPE"/>
+          </andTerm>
+        </mandatoryConform>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ElectricalPowerMeasurement.xml b/data_model/in_progress/clusters/ElectricalPowerMeasurement.xml
new file mode 100644
index 0000000..5953d36
--- /dev/null
+++ b/data_model/in_progress/clusters/ElectricalPowerMeasurement.xml
@@ -0,0 +1,317 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0090" name="Electrical Power Measurement Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0090" name="Electrical Power Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="EPM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DIRC" name="DirectCurrent" summary="Supports measurement of direct current">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="ALTC" name="AlternatingCurrent" summary="Supports measurement of alternating current">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="POLY" name="PolyphasePower" summary="Supports polyphase measurements">
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="HARM" name="Harmonics" summary="Supports measurement of AC harmonics">
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+    </feature>
+    <feature bit="4" code="PWRQ" name="PowerQuality" summary="Supports measurement of AC harmonic phases">
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="PowerModeEnum">
+      <item value="0" name="Unknown">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="DC" summary="Direct current">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="AC" summary="Alternating current, either single-phase or polyphase">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="HarmonicMeasurementStruct">
+      <field id="0" name="Order" type="uint8" default="1">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="Measurement" type="int64" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="-2" to="2"/>
+      </field>
+    </struct>
+    <struct name="MeasurementRangeStruct">
+      <field id="0" name="MeasurementType" type="ref_MeasurementTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Min" type="int64">
+        <mandatoryConform/>
+        <constraint type="between" from="-2" to="2"/>
+      </field>
+      <field id="2" name="Max" type="int64">
+        <mandatoryConform/>
+        <constraint type="between" from="-2" to="2"/>
+      </field>
+      <field id="3" name="StartTimestamp" type="epoch-s">
+        <mandatoryConform>
+          <attribute name="EndTimestamp"/>
+        </mandatoryConform>
+      </field>
+      <field id="4" name="EndTimestamp" type="epoch-s">
+        <constraint type="min" value="StartTimestamp + 1"/>
+      </field>
+      <field id="5" name="MinTimestamp" type="epoch-s">
+        <mandatoryConform>
+          <attribute name="EndTimestamp"/>
+        </mandatoryConform>
+      </field>
+      <field id="6" name="MaxTimestamp" type="epoch-s">
+        <mandatoryConform>
+          <attribute name="EndTimestamp"/>
+        </mandatoryConform>
+        <constraint type="min" value="MinTimestamp + 1"/>
+      </field>
+      <field id="7" name="StartSystime" type="systime-ms">
+        <mandatoryConform>
+          <attribute name="EndSystime"/>
+        </mandatoryConform>
+      </field>
+      <field id="8" name="EndSystime" type="systime-ms">
+        <constraint type="min" value="StartSystime + 1"/>
+      </field>
+      <field id="9" name="MinSystime" type="systime-ms">
+        <mandatoryConform>
+          <attribute name="EndSystime"/>
+        </mandatoryConform>
+      </field>
+      <field id="10" name="MaxSystime" type="systime-ms">
+        <mandatoryConform>
+          <attribute name="EndSystime"/>
+        </mandatoryConform>
+        <constraint type="min" value="MinSystime + 1"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="PowerMode" type="PowerModeEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="NumberOfMeasurementTypes" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0002" name="Accuracy" type="list">
+      <entry type="ref_MeasurementAccuracyStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="1" to="NumberOfMeasurementTypes"/>
+    </attribute>
+    <attribute id="0x0003" name="Ranges" type="list" default="empty">
+      <entry type="MeasurementRangeStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+      <constraint type="countBetween" from="0" to="NumberOfMeasurementTypes"/>
+    </attribute>
+    <attribute id="0x0004" name="Voltage" type="voltage-mV" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x0005" name="ActiveCurrent" type="amperage-mA" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x0006" name="ReactiveCurrent" type="amperage-mA" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x0007" name="ApparentCurrent" type="amperage-mA" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="0" to="2"/>
+    </attribute>
+    <attribute id="0x0008" name="ActivePower" type="power-mW" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x0009" name="ReactivePower" type="power-mW" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x000A" name="ApparentPower" type="power-mW" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x000B" name="RMSVoltage" type="voltage-mV" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x000C" name="RMSCurrent" type="amperage-mA" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x000D" name="RMSPower" type="power-mW" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+    <attribute id="0x000E" name="Frequency" type="int64" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="0" to="1000000"/>
+    </attribute>
+    <attribute id="0x000F" name="HarmonicCurrents" type="list" default="null">
+      <entry type="HarmonicMeasurementStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="HARM"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0010" name="HarmonicPhases" type="list" default="null">
+      <entry type="HarmonicMeasurementStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="PWRQ"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0011" name="PowerFactor" type="int64" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="ALTC"/>
+      </optionalConform>
+      <constraint type="between" from="-10000" to="10000"/>
+    </attribute>
+    <attribute id="0x0012" name="NeutralCurrent" type="amperage-mA" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="POLY"/>
+      </optionalConform>
+      <constraint type="between" from="-2" to="2"/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="MeasurementPeriodRanges" priority="info">
+      <access readPrivilege="view"/>
+      <field id="0" name="Ranges" type="list" default="R V">
+        <entry type="MeasurementRangeStruct"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/EnergyCalendar.xml b/data_model/in_progress/clusters/EnergyCalendar.xml
new file mode 100644
index 0000000..5be0f8f
--- /dev/null
+++ b/data_model/in_progress/clusters/EnergyCalendar.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: short

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009A" name="Energy Calendar Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; Added from SE1.4; CCB 2068"/>
+    <revision revision="2" summary="CCB 3042"/>
+    <revision revision="3" summary="Initial Matter revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009A" name="Energy Calendar"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="ECAL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PTIER" name="PricingTier" summary="Supports information about pricing tiers">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="FCRED" name="FriendlyCredit" summary="Supports information about when friendly credit periods begin and end">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="AUXLD" name="AuxiliaryLoad" summary="Supports information about when auxiliary loads should be enabled or disabled">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="3" code="PEAKP" name="PeakPeriod" summary="Supports information about peak periods">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="PeakPeriodSeverityEnum">
+      <item value="0" name="Unused" summary="Unused">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Low" summary="Low">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Medium" summary="Medium">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="High" summary="High">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="AuxiliaryLoadBitmap">
+      <bitfield name="AuxiliarySwitch1" bit="0" summary="Auxiliary Switch 1">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch2" bit="1" summary="Auxiliary Switch 2">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch3" bit="2" summary="Auxiliary Switch 3">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch4" bit="3" summary="Auxiliary Switch 4">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch5" bit="4" summary="Auxiliary Switch 5">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch6" bit="5" summary="Auxiliary Switch 6">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch7" bit="6" summary="Auxiliary Switch 7">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AuxiliarySwitch8" bit="7" summary="Auxiliary Switch 8">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="TransitionDayOfWeekBitmap">
+      <bitfield name="Sunday" bit="0" summary="Sunday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Monday" bit="1" summary="Monday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tuesday" bit="2" summary="Tuesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Wednesday" bit="3" summary="Wednesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Thursday" bit="4" summary="Thursday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Friday" bit="5" summary="Friday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Saturday" bit="6" summary="Saturday">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="CalendarPeriodStruct">
+      <field id="0" name="StartDate" type="epoch-s">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="min" value="StartDate Attribute"/>
+      </field>
+      <field id="1" name="Days" type="list">
+        <entry type="DayStruct"/>
+        <mandatoryConform/>
+        <constraint type="countBetween" from="1" to="7"/>
+      </field>
+    </struct>
+    <struct name="DayStruct">
+      <field id="0" name="Date" type="date">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="1" name="DaysOfWeek" type="TransitionDayOfWeekBitmap">
+        <optionalConform choice="a"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Transitions" type="list">
+        <entry type="TransitionStruct"/>
+        <mandatoryConform/>
+        <constraint type="countBetween" from="1" to="48"/>
+      </field>
+      <field id="3" name="CalendarID" type="uint32">
+        <optionalConform/>
+      </field>
+    </struct>
+    <struct name="PeakPeriodStruct">
+      <field id="0" name="Severity" type="PeakPeriodSeverityEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PeakPeriod" type="uint16" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="StartTime" type="epoch-s">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="EndTime" type="epoch-s">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="TransitionStruct">
+      <field id="0" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="1499"/>
+      </field>
+      <field id="1" name="PriceTier" type="uint32">
+        <optionalConform choice="b" more="true">
+          <feature name="PTIER"/>
+        </optionalConform>
+      </field>
+      <field id="2" name="FriendlyCredit" type="bool">
+        <optionalConform choice="b" more="true">
+          <feature name="FCRED"/>
+        </optionalConform>
+      </field>
+      <field id="3" name="AuxiliaryLoad" type="AuxiliaryLoadBitmap">
+        <optionalConform choice="b" more="true">
+          <feature name="AUXLD"/>
+        </optionalConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CalendarID" type="uint32" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="Name" type="string" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="12"/>
+    </attribute>
+    <attribute id="0x0002" name="ProviderID" type="uint32" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="EventID" type="uint32" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="StartDate" type="epoch-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="CalendarPeriods" type="list" default="empty">
+      <entry type="CalendarPeriodStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="1" to="4"/>
+    </attribute>
+    <attribute id="0x0006" name="SpecialDays" type="list" default="empty">
+      <entry type="DayStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="50"/>
+    </attribute>
+    <attribute id="0x0007" name="CurrentDay" type="DayStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0008" name="NextDay" type="DayStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0009" name="CurrentTransition" type="TransitionStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x000A" name="CurrentPeakPeriod" type="PeakPeriodStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PEAKP"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000B" name="NextPeakPeriod" type="PeakPeriodStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PEAKP"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/EnergyEVSE.xml b/data_model/in_progress/clusters/EnergyEVSE.xml
new file mode 100644
index 0000000..a4c865c
--- /dev/null
+++ b/data_model/in_progress/clusters/EnergyEVSE.xml
@@ -0,0 +1,599 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0099" name="Energy EVSE Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Updates after 0.7 Ballot review"/>
+    <revision revision="3" summary="Added Q quality for SessionDuration, SessionEnergyCharged and SessionEnergyDischarged. Updates to V2X and associated areas. Make PREF mandatory."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0099" name="Energy EVSE"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="EEVSE" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PREF" name="ChargingPreferences" summary="EVSE supports storing user charging preferences">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="1" code="SOC" name="SoCReporting" summary="EVSE supports reporting of vehicle State of Charge (SoC)">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="PNC" name="PlugAndCharge" summary="EVSE supports PLC to support Plug and Charge">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="3" code="RFID" name="RFID" summary="EVSE is fitted with an RFID reader">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="V2X" name="V2X" summary="EVSE supports bi-directional charging / discharging">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="ChargingTargets Field" type=""/>
+    <number name="DayOfWeekForSequence Field" type=""/>
+    <enum name="EnergyTransferStoppedReasonEnum">
+      <item value="0" name="EVStopped" summary="The EV decided to stop">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="EVSEStopped" summary="The EVSE decided to stop">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Other" summary="An other unknown reason">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="FaultStateEnum">
+      <item value="0" name="NoError" summary="The EVSE is not in an error state.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="MeterFailure" summary="The EVSE is unable to obtain electrical measurements.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="OverVoltage" summary="The EVSE input voltage level is too high.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="UnderVoltage" summary="The EVSE input voltage level is too low.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="OverCurrent" summary="The EVSE detected charging current higher than allowed by charger.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="ContactWetFailure" summary="The EVSE detected voltage on charging pins when the contactor is open.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="ContactDryFailure" summary="The EVSE detected absence of voltage after enabling contactor.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="GroundFault" summary="The EVSE has an unbalanced current supply.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="PowerLoss" summary="The EVSE has detected a loss in power.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="PowerQuality" summary="The EVSE has detected another power quality issue (e.g. phase imbalance).">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="PilotShortCircuit" summary="The EVSE pilot signal amplitude short circuited to ground.">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="EmergencyStop" summary="The emergency stop button was pressed.">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="EVDisconnected" summary="The EVSE detected that the cable has been disconnected.">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="WrongPowerSupply" summary="The EVSE could not determine proper power supply level.">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="LiveNeutralSwap" summary="The EVSE detected Live and Neutral are swapped.">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="OverTemperature" summary="The EVSE internal temperature is too high.">
+        <mandatoryConform/>
+      </item>
+      <item value="255" name="Other" summary="Any other reason.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StateEnum">
+      <item value="0" name="NotPluggedIn" summary="The EV is not plugged in.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="PluggedInNoDemand" summary="The EV is plugged in, but not demanding current.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="PluggedInDemand" summary="The EV is plugged in and is demanding current, but EVSE is not allowing current to flow.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="PluggedInCharging" summary="The EV is plugged in, charging is in progress, and current is flowing">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="PluggedInDischarging" summary="The EV is plugged in, discharging is in progress, and current is flowing">
+        <mandatoryConform>
+          <feature name="V2X"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="SessionEnding" summary="The EVSE is transitioning from any plugged-in state to NotPluggedIn">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Fault" summary="There is a fault (see FaultState Attribute attribute)">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="SupplyStateEnum">
+      <item value="0" name="Disabled" summary="The EV is not currently allowed to charge or discharge">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ChargingEnabled" summary="The EV is currently allowed to charge">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="DischargingEnabled" summary="The EV is currently allowed to discharge">
+        <optionalConform>
+          <feature name="V2X"/>
+        </optionalConform>
+      </item>
+      <item value="3" name="DisabledError" summary="The EV is not currently allowed to charge or discharge due to an error.
+                                The error must be cleared before operation can continue.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="DisabledDiagnostics" summary="The EV is not currently allowed to charge or discharge due
+                                to self-diagnostics mode.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Enabled" summary="The EV is currently allowed to charge and discharge">
+        <optionalConform>
+          <feature name="V2X"/>
+        </optionalConform>
+      </item>
+    </enum>
+    <bitmap name="TargetDayOfWeekBitmap">
+      <bitfield name="Sunday" bit="0" summary="Sunday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Monday" bit="1" summary="Monday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tuesday" bit="2" summary="Tuesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Wednesday" bit="3" summary="Wednesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Thursday" bit="4" summary="Thursday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Friday" bit="5" summary="Friday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Saturday" bit="6" summary="Saturday">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="ChargingTargetScheduleStruct">
+      <field id="0" name="DayOfWeekForSequence" type="TargetDayOfWeekBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="ChargingTargets" type="list">
+        <entry type="ChargingTargetStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+    </struct>
+    <struct name="ChargingTargetStruct">
+      <field id="0" name="TargetTimeMinutesPastMidnight" type="uint16" default="0">
+        <mandatoryConform/>
+        <constraint type="max" value="1439"/>
+      </field>
+      <field id="1" name="TargetSoC" type="percent" default="0">
+        <otherwiseConform>
+          <mandatoryConform>
+            <feature name="SOC"/>
+          </mandatoryConform>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+      </field>
+      <field id="2" name="AddedEnergy" type="energy-mWh" default="0">
+        <otherwiseConform>
+          <optionalConform>
+            <feature name="SOC"/>
+          </optionalConform>
+          <optionalConform choice="a" more="true"/>
+        </otherwiseConform>
+        <constraint type="min" value="0"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="State" type="StateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="SupplyState" type="SupplyStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="FaultState" type="FaultStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="ChargingEnabledUntil" type="epoch-s" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="DischargingEnabledUntil" type="epoch-s" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="V2X"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="CircuitCapacity" type="amperage-mA" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0006" name="MinimumChargeCurrent" type="amperage-mA" default="6000">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0007" name="MaximumChargeCurrent" type="amperage-mA" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0008" name="MaximumDischargeCurrent" type="amperage-mA" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="V2X"/>
+      </mandatoryConform>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0009" name="UserMaximumChargeCurrent" type="amperage-mA" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000A" name="RandomizationDelayWindow" type="elapsed-s" default="600">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="max" value="86400"/>
+    </attribute>
+    <attribute id="0x0023" name="NextChargeStartTime" type="epoch-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0024" name="NextChargeTargetTime" type="epoch-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0025" name="NextChargeRequiredEnergy" type="energy-mWh" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0026" name="NextChargeTargetSoC" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0027" name="ApproximateEVEfficiency" type="uint16" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="PREF"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0030" name="StateOfCharge" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SOC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0031" name="BatteryCapacity" type="energy-mWh" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SOC"/>
+      </mandatoryConform>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0032" name="VehicleID" type="string" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PNC"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0040" name="SessionID" type="uint32" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0041" name="SessionDuration" type="elapsed-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0042" name="SessionEnergyCharged" type="energy-mWh" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0043" name="SessionEnergyDischarged" type="energy-mWh" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="V2X"/>
+      </mandatoryConform>
+      <constraint type="min" value="0"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="GetTargetsResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+      <field id="0" name="ChargingTargetSchedules" type="list">
+        <entry type="ChargingTargetScheduleStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="7"/>
+      </field>
+    </command>
+    <command id="0x01" name="Disable" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="EnableCharging" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="ChargingEnabledUntil" type="epoch-s" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MinimumChargeCurrent" type="amperage-mA">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+      <field id="2" name="MaximumChargeCurrent" type="amperage-mA">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+    </command>
+    <command id="0x03" name="EnableDischarging" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform>
+        <feature name="V2X"/>
+      </mandatoryConform>
+      <field id="0" name="DischargingEnabledUntil" type="epoch-s" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MaximumDischargeCurrent" type="amperage-mA">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+    </command>
+    <command id="0x04" name="StartDiagnostics" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <optionalConform/>
+    </command>
+    <command id="0x05" name="SetTargets" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+      <field id="0" name="ChargingTargetSchedules" type="list">
+        <entry type="ChargingTargetScheduleStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="7"/>
+      </field>
+    </command>
+    <command id="0x06" name="GetTargets" direction="commandToServer" response="GetTargetsResponse">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x07" name="ClearTargets" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" timed="true"/>
+      <mandatoryConform>
+        <feature name="PREF"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="EVConnected" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SessionID" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="EVNotDetected" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SessionID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="State" type="StateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SessionDuration" type="elapsed-s">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="SessionEnergyCharged" type="energy-mWh">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+      <field id="4" name="SessionEnergyDischarged" type="energy-mWh">
+        <mandatoryConform>
+          <feature name="V2X"/>
+        </mandatoryConform>
+        <constraint type="min" value="0"/>
+      </field>
+    </event>
+    <event id="0x02" name="EnergyTransferStarted" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SessionID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="State" type="StateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MaximumCurrent" type="amperage-mA">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+      <field id="3" name="MaximumDischargeCurrent" type="amperage-mA">
+        <mandatoryConform>
+          <feature name="V2X"/>
+        </mandatoryConform>
+        <constraint type="min" value="0"/>
+      </field>
+    </event>
+    <event id="0x03" name="EnergyTransferStopped" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SessionID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="State" type="StateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Reason" type="EnergyTransferStoppedReasonEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="EnergyTransferred" type="energy-mWh">
+        <mandatoryConform/>
+        <constraint type="min" value="0"/>
+      </field>
+      <field id="5" name="EnergyDischarged" type="energy-mWh">
+        <mandatoryConform>
+          <feature name="V2X"/>
+        </mandatoryConform>
+        <constraint type="min" value="0"/>
+      </field>
+    </event>
+    <event id="0x04" name="Fault" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SessionID" type="uint32">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="State" type="StateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="FaultStatePreviousState" type="FaultStateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="FaultStateCurrentState" type="FaultStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x05" name="RFID" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="RFID"/>
+      </optionalConform>
+      <field id="0" name="UID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="10"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/EnergyPreference.xml b/data_model/in_progress/clusters/EnergyPreference.xml
new file mode 100644
index 0000000..2534ccf
--- /dev/null
+++ b/data_model/in_progress/clusters/EnergyPreference.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009B" name="Energy Preference Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009B" name="Energy Preference">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="EPREF" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="BALA" name="EnergyBalance" summary="Device can balance energy consumption vs. another priority">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="LPMS" name="LowPowerModeSensitivity" summary="Device can adjust the conditions for entering a low power mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="EnergyPriorityEnum">
+      <item value="0" name="Comfort" summary="User comfort">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Speed" summary="Speed of operation">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Efficiency" summary="Amount of Energy consumed by the device">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="WaterConsumption" summary="Amount of water consumed by the device">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="BalanceStruct">
+      <field id="0" name="Step" type="percent" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Label" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="EnergyBalances" type="list">
+      <entry type="BalanceStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="BALA"/>
+      </mandatoryConform>
+      <constraint type="countBetween" from="2" to="10"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentEnergyBalance" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="BALA"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="EnergyPriorities" type="list">
+      <entry type="EnergyPriorityEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="BALA"/>
+      </mandatoryConform>
+      <constraint type="allowed" value="2"/>
+    </attribute>
+    <attribute id="0x0003" name="LowPowerModeSensitivities" type="list">
+      <entry type="BalanceStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LPMS"/>
+      </mandatoryConform>
+      <constraint type="countBetween" from="2" to="10"/>
+    </attribute>
+    <attribute id="0x0004" name="CurrentLowPowerModeSensitivity" type="uint8">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LPMS"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/FanControl.xml b/data_model/in_progress/clusters/FanControl.xml
new file mode 100644
index 0000000..9eba1df
--- /dev/null
+++ b/data_model/in_progress/clusters/FanControl.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: short

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0202" name="Fan Control Cluster" revision="5">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="New data model format and notation; Percent, speed and motion settings; General cleanup"/>
+    <revision revision="3" summary="Addition of AirflowDirection and Step command"/>
+    <revision revision="4" summary="Change conformance for FanModeSequenceEnum"/>
+    <revision revision="5" summary="Added Q quality for PercentCurrent and SpeedCurrent"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0202" name="Fan Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="FAN" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="SPD" name="MultiSpeed" summary="0-SpeedMax Fan Speeds">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="AUT" name="Auto" summary="Automatic mode supported for fan speed">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="RCK" name="Rocking" summary="Rocking movement supported">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="WND" name="Wind" summary="Wind emulation supported">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="STEP" name="Step" summary="Step command supported">
+      <optionalConform/>
+    </feature>
+    <feature bit="5" code="DIR" name="AirflowDirection" summary="Airflow Direction attribute is supported">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AirflowDirectionEnum">
+      <item value="0" name="Forward" summary="Airflow is in the forward direction">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Reverse" summary="Airflow is in the reverse direction">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="FanModeEnum">
+      <item value="0" name="Off" summary="Fan is off">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Low" summary="Fan using low speed"/>
+      <item value="2" name="Medium" summary="Fan using medium speed"/>
+      <item value="3" name="High" summary="Fan using high speed">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="On">
+        <deprecateConform/>
+      </item>
+      <item value="5" name="Auto" summary="Fan is using auto mode">
+        <mandatoryConform>
+          <feature name="AUT"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="Smart" summary="Fan is using smart mode">
+        <deprecateConform/>
+      </item>
+    </enum>
+    <enum name="FanModeSequenceEnum">
+      <item value="0" name="OffLowMedHigh" summary="Fan is capable of off, low, medium and high modes">
+        <optionalConform choice="a">
+          <notTerm>
+            <feature name="AUT"/>
+          </notTerm>
+        </optionalConform>
+      </item>
+      <item value="1" name="OffLowHigh" summary="Fan is capable of off, low and high modes">
+        <optionalConform choice="a">
+          <notTerm>
+            <feature name="AUT"/>
+          </notTerm>
+        </optionalConform>
+      </item>
+      <item value="2" name="OffLowMedHighAuto" summary="Fan is capable of off, low, medium, high and auto modes">
+        <optionalConform choice="a">
+          <feature name="AUT"/>
+        </optionalConform>
+      </item>
+      <item value="3" name="OffLowHighAuto" summary="Fan is capable of off, low, high and auto modes">
+        <optionalConform choice="a">
+          <feature name="AUT"/>
+        </optionalConform>
+      </item>
+      <item value="4" name="OffHighAuto" summary="Fan is capable of off, high and auto modes">
+        <optionalConform choice="a">
+          <feature name="AUT"/>
+        </optionalConform>
+      </item>
+      <item value="5" name="OffHigh" summary="Fan is capable of off and high modes">
+        <optionalConform choice="a">
+          <notTerm>
+            <feature name="AUT"/>
+          </notTerm>
+        </optionalConform>
+      </item>
+    </enum>
+    <enum name="StepDirectionEnum">
+      <item value="0" name="Increase" summary="Step moves in increasing direction">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Decrease" summary="Step moves in decreasing direction">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="RockBitmap">
+      <bitfield name="RockLeftRight" bit="0" summary="Indicate rock left to right">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RockUpDown" bit="1" summary="Indicate rock up and down">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RockRound" bit="2" summary="Indicate rock around">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="WindBitmap">
+      <bitfield name="SleepWind" bit="0" summary="Indicate sleep wind">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="NaturalWind" bit="1" summary="Indicate natural wind">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="FanMode" type="FanModeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="FanModeSequence" type="FanModeSequenceEnum" default="MS">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <condition name="Zigbee"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0001" name="FanModeSequence" type="FanModeSequenceEnum" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="PercentSetting" type="percent" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="100"/>
+    </attribute>
+    <attribute id="0x0003" name="PercentCurrent" type="percent" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+      <constraint type="max" value="100"/>
+    </attribute>
+    <attribute id="0x0004" name="SpeedMax" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SPD"/>
+      </mandatoryConform>
+      <constraint type="between" from="1" to="100"/>
+    </attribute>
+    <attribute id="0x0005" name="SpeedSetting" type="uint8" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SPD"/>
+      </mandatoryConform>
+      <constraint type="max" value="SpeedMax"/>
+    </attribute>
+    <attribute id="0x0006" name="SpeedCurrent" type="uint8" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="SPD"/>
+      </mandatoryConform>
+      <constraint type="max" value="SpeedMax"/>
+    </attribute>
+    <attribute id="0x0007" name="RockSupport" type="RockBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RCK"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0008" name="RockSetting" type="RockBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="RCK"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0009" name="WindSupport" type="WindBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="WND"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000A" name="WindSetting" type="WindBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="WND"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000B" name="AirflowDirection" type="AirflowDirectionEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="DIR"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Step" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="STEP"/>
+      </mandatoryConform>
+      <field id="0" name="Direction" type="StepDirectionEnum" default="Increase">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Wrap" type="bool" default="false">
+        <optionalConform/>
+      </field>
+      <field id="2" name="LowestOff" type="bool" default="true">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/FlowMeasurement.xml b/data_model/in_progress/clusters/FlowMeasurement.xml
new file mode 100644
index 0000000..8587997
--- /dev/null
+++ b/data_model/in_progress/clusters/FlowMeasurement.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0404" name="Flow Measurement Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2241 2370"/>
+    <revision revision="3" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0404" name="Flow Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="FLW" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="MaxMeasuredValue - 1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue + 1" to="65534"/>
+    </attribute>
+    <attribute id="0x0003" name="Tolerance" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="max" value="2048"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/GeneralCommissioningCluster.xml b/data_model/in_progress/clusters/GeneralCommissioningCluster.xml
new file mode 100644
index 0000000..7dae043
--- /dev/null
+++ b/data_model/in_progress/clusters/GeneralCommissioningCluster.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0030" name="General Commissioning Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add Enhanced Setup Flow"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0030" name="General Commissioning"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="CGEN" scope="Node"/>
+  <dataTypes>
+    <enum name="CommissioningErrorEnum">
+      <item value="0" name="OK" summary="No error">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ValueOutsideRange" summary="[[ref_ValueOutsideRange]] Attempting to set regulatory configuration to a region or indoor/outdoor mode for which the server does not have proper configuration.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="InvalidAuthentication" summary="[[ref_InvalidAuthentication]] Executed CommissioningComplete outside CASE session.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="NoFailSafe" summary="[[ref_NoFailSafe]] Executed CommissioningComplete when there was no active ArmFailSafe Command.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="BusyWithOtherAdmin" summary="[[ref_BusyWithOtherAdmin]] Attempting to arm fail-safe or execute CommissioningComplete from a fabric different than the one associated with the current fail-safe context.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="RequiredTCNotAccepted" summary="[[ref_RequiredTCNotAccepted]] One or more required TC features from the Enhanced Setup Flow were not accepted.">
+        <mandatoryConform>
+          <feature name="TC"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="TCAcknowledgementsNotReceived" summary="[[ref_TCAcknowledgementsNotReceived]] No acknowledgements from the user for the TC features were received.">
+        <mandatoryConform>
+          <feature name="TC"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="TCMinVersionNotMet" summary="[[ref_TCMinVersionNotMet]] The version of the TC features acknowledged by the user did not meet the minimum required version.">
+        <mandatoryConform>
+          <feature name="TC"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="RegulatoryLocationTypeEnum">
+      <item value="0" name="Indoor" summary="Indoor only">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Outdoor" summary="Outdoor only">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="IndoorOutdoor" summary="Indoor/Outdoor">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="BasicCommissioningInfo">
+      <field id="0" name="FailSafeExpiryLengthSeconds" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MaxCumulativeFailsafeSeconds" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Breadcrumb" type="uint64" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="BasicCommissioningInfo" type="BasicCommissioningInfo">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="RegulatoryConfig" type="RegulatoryLocationTypeEnum" default="LocationCapability">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="LocationCapability" type="RegulatoryLocationTypeEnum" default="IndoorOutdoor">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="SupportsConcurrentConnection" type="bool" default="true">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="TCAcceptedVersion" type="uint16">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0006" name="TCMinRequiredVersion" type="uint16">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="TCAcknowledgements" type="map16">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="TCAcknowledgementsRequired" type="bool" default="true">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ArmFailSafe" direction="commandToServer" response="ArmFailSafeResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="ExpiryLengthSeconds" type="uint16" default="900">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="ArmFailSafeResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="ErrorCode" type="CommissioningErrorEnum" default="OK">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DebugText" type="String" default="&quot;">
+        <mandatoryConform/>
+        <constraint type="max" value="128"/>
+      </field>
+    </command>
+    <command id="0x02" name="SetRegulatoryConfig" direction="commandToServer" response="SetRegulatoryConfigResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="NewRegulatoryConfig" type="RegulatoryLocationTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="CountryCode" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="2"/>
+      </field>
+      <field id="2" name="Breadcrumb" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="SetRegulatoryConfigResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="ErrorCode" type="CommissioningErrorEnum" default="OK">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DebugText" type="String" default="&quot;">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="CommissioningComplete" direction="commandToServer" response="CommissioningCompleteResponse">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x05" name="CommissioningCompleteResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="ErrorCode" type="CommissioningErrorEnum" default="OK">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DebugText" type="String" default="&quot;">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x06" name="SetTCAcknowledgements" direction="commandToServer" response="SetTCAcknowledgementsResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+      <field id="0" name="TCVersion" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="TCUserResponse" type="map16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x07" name="SetTCAcknowledgementsResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="TC"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Group-Key-Management-Cluster.xml b/data_model/in_progress/clusters/Group-Key-Management-Cluster.xml
new file mode 100644
index 0000000..784bdc9
--- /dev/null
+++ b/data_model/in_progress/clusters/Group-Key-Management-Cluster.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x003F" name="Group Key Management Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Clarify KeySetWrite validation and behavior on invalid epoch key lengths"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x003F" name="GroupKeyManagement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="GRPKEY" scope="Node"/>
+  <features>
+    <feature bit="0" code="CS" name="CacheAndSync" summary="The ability to support CacheAndSync security policy and MCSP.">
+      <provisionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="GroupKeyMulticastPolicyEnum">
+      <item value="0" name="PerGroupID" summary="Indicates filtering of multicast messages for a specific Group ID">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AllNodes" summary="Indicates not filtering of multicast messages">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="GroupKeySecurityPolicyEnum">
+      <item value="0" name="TrustFirst" summary="Message counter synchronization using trust-first">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="CacheAndSync" summary="Message counter synchronization using cache-and-sync">
+        <mandatoryConform>
+          <feature name="CS"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <struct name="GroupInfoMapStruct">
+      <field id="1" name="GroupId" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Endpoints" type="list">
+        <entry type="endpoint-no"/>
+        <mandatoryConform/>
+        <constraint type="minCount" value="1"/>
+      </field>
+      <field id="3" name="GroupName" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="GroupKeyMapStruct">
+      <field id="1" name="GroupId" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="GroupKeySetStruct">
+      <field id="0" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="GroupKeySecurityPolicy" type="GroupKeySecurityPolicyEnum">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="EpochKey0" type="octstr">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="EpochStartTime0" type="epoch-us">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="EpochKey1" type="octstr">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="5" name="EpochStartTime1" type="epoch-us">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="EpochKey2" type="octstr">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="7" name="EpochStartTime2" type="epoch-us">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="8" name="GroupKeyMulticastPolicy" type="GroupKeyMulticastPolicyEnum">
+        <access fabricSensitive="true"/>
+        <otherwiseConform>
+          <provisionalConform/>
+          <mandatoryConform/>
+        </otherwiseConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="GroupKeyMap" type="list" default="empty">
+      <entry type="GroupKeyMapStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="GroupTable" type="list" default="empty">
+      <entry type="GroupInfoMapStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxGroupsPerFabric" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="MaxGroupKeysPerFabric" type="uint16" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="65535"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="KeySetWrite Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySet" type="GroupKeySetStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="KeySetRead Command" direction="commandToServer" response="KeySetReadResponse Command">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="KeySetReadResponse Command" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySet" type="GroupKeySetStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="KeySetRemove Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="KeySetReadAllIndices Command" direction="commandToServer" response="KeySetReadAllIndicesResponse Command">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="reserved">
+        <disallowConform/>
+      </field>
+    </command>
+    <command id="0x05" name="KeySetReadAllIndicesResponse Command" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySetIDs" type="list">
+        <entry type="uint16"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Groups.xml b/data_model/in_progress/clusters/Groups.xml
new file mode 100644
index 0000000..214e6c1
--- /dev/null
+++ b/data_model/in_progress/clusters/Groups.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0004" name="Groups Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 1745 2100"/>
+    <revision revision="2" summary="CCB 2289"/>
+    <revision revision="3" summary="CCB 2310 2704"/>
+    <revision revision="4" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0004" name="Groups"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="G" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="GN" name="GroupNames" summary="The ability to store a name for a group.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <bitmap name="NameSupportBitmap">
+      <bitfield name="GroupNames" bit="7" summary="The ability to store a name for a group.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="NameSupport" type="NameSupportBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AddGroup" direction="commandToServer" response="AddGroupResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="GroupName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x00" name="AddGroupResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="enum8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+    </command>
+    <command id="0x01" name="ViewGroup" direction="commandToServer" response="ViewGroupResponse">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+    </command>
+    <command id="0x01" name="ViewGroupResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="enum8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="2" name="GroupName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x02" name="GetGroupMembership" direction="commandToServer" response="GetGroupMembershipResponse">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupList" type="list">
+        <entry type="group-id">
+          <constraint type="min" value="1"/>
+        </entry>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="GetGroupMembershipResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Capacity" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="GroupList" type="list">
+        <entry type="group-id">
+          <constraint type="min" value="1"/>
+        </entry>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="RemoveGroup" direction="commandToServer" response="RemoveGroupResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+    </command>
+    <command id="0x03" name="RemoveGroupResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="enum8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+    </command>
+    <command id="0x04" name="RemoveAllGroups" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x05" name="AddGroupIfIdentifying" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="GroupName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Humidistat.xml b/data_model/in_progress/clusters/Humidistat.xml
new file mode 100644
index 0000000..1af5469
--- /dev/null
+++ b/data_model/in_progress/clusters/Humidistat.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0205" name="Humidistat Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0205" name="Humidistat"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="HSTAT" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="HUM" name="Humidifier" summary="Supports increasing the humidity in a space">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="DEHUM" name="Dehumidifier" summary="Supports decreasing the humidity in a space">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="CONT" name="Continuous" summary="Supports continuous or open-loop humidity operation">
+      <optionalConform choice="b" more="true"/>
+    </feature>
+    <feature bit="3" code="CLOSED" name="ClosedLoop" summary="Supports closed-loop control of the humidity">
+      <optionalConform choice="b" more="true"/>
+    </feature>
+    <feature bit="4" code="AUTO" name="Auto" summary="Supports automatically switching operating states to maintain a set humidity">
+      <optionalConform>
+        <andTerm>
+          <feature name="HUM"/>
+          <feature name="DEHUM"/>
+          <feature name="CLOSED"/>
+        </andTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="5" code="FAN" name="FanOnly" summary="Supports running the fan alone without humidity control">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="SLEEP" name="Sleep" summary="Supports a quieter option suitable for sleep">
+      <optionalConform/>
+    </feature>
+    <feature bit="7" code="OPT" name="Optimal" summary="Supports controlling to an optimal humidity">
+      <optionalConform>
+        <feature name="CLOSED"/>
+      </optionalConform>
+    </feature>
+    <feature bit="8" code="WARM" name="WarmMist" summary="Supports warm mist operation">
+      <optionalConform choice="c" more="true">
+        <feature name="HUM"/>
+      </optionalConform>
+    </feature>
+    <feature bit="9" code="COLD" name="ColdMist" summary="Supports cold mist operation">
+      <optionalConform choice="c" more="true">
+        <feature name="HUM"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="Mode">
+      <item value="0" name="Off" summary="Humidity is not being controlled">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Humidifier" summary="Humidity is being increased">
+        <mandatoryConform>
+          <feature name="HUM"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Dehumidifier" summary="Humidity is being decreased">
+        <mandatoryConform>
+          <feature name="DEHUM"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Auto" summary="Humidity is being held">
+        <mandatoryConform>
+          <feature name="AUTO"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="FanOnly" summary="Fan is running without humidity control">
+        <mandatoryConform>
+          <feature name="FAN"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="SystemStateEnum">
+      <item value="0" name="Off" summary="Humidity is not being controlled">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Humidifying" summary="Humidity is being increased">
+        <mandatoryConform>
+          <feature name="HUM"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Dehumidifying" summary="Humidity is being decreased">
+        <mandatoryConform>
+          <feature name="DEHUM"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Fan" summary="Fan is running without humidity control">
+        <mandatoryConform>
+          <feature name="FAN"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="Idle" summary="Humidity level is satisfied">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="MistTypeBitmap">
+      <bitfield name="MistCold" bit="0" summary="Cold mist humidification">
+        <mandatoryConform>
+          <feature name="COLD"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="MistWarm" bit="1" summary="Warm mist humidification">
+        <mandatoryConform>
+          <feature name="WARM"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Mode" type="Mode" default="Off">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="SystemState" type="SystemStateEnum" default="Off">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="UserSetpoint" type="percent" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CLOSED"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="MinSetpoint" type="percent">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CLOSED"/>
+      </mandatoryConform>
+      <constraint type="max" value="99"/>
+    </attribute>
+    <attribute id="0x0004" name="MaxSetpoint" type="percent">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CLOSED"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="Step" type="percent">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CLOSED"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="TargetSetpoint" type="percent">
+      <access read="true" readPrivilege="view"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="OPT"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="CLOSED"/>
+        </optionalConform>
+      </otherwiseConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0007" name="MistType" type="MistTypeBitmap" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="HUM"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="Continuous" type="Boolean" default="False">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CONT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0009" name="Sleep" type="Boolean" default="False">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SLEEP"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000A" name="Optimal" type="Boolean" default="False">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="OPT"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SetSettings" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="UserSetpoint" type="percent">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Mode" type="Mode">
+        <optionalConform/>
+      </field>
+      <field id="2" name="MistType" type="MistTypeBitmap">
+        <optionalConform/>
+      </field>
+      <field id="3" name="Continuous" type="Boolean">
+        <optionalConform/>
+      </field>
+      <field id="4" name="Sleep" type="Boolean">
+        <optionalConform/>
+      </field>
+      <field id="5" name="Optimal" type="Boolean">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ICDManagement.xml b/data_model/in_progress/clusters/ICDManagement.xml
new file mode 100644
index 0000000..830f62f
--- /dev/null
+++ b/data_model/in_progress/clusters/ICDManagement.xml
@@ -0,0 +1,279 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+// Update Name

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0046" name="ICD Management Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Addition of LIT ICD support, UserActiveModeTrigger, ActiveModeDuration, StayActiveResponse; removal of field Key in MonitoringRegistrationStruct"/>
+    <revision revision="3" summary="Addition of the ClientType attribute; addition of the ICD Check-In Backoff support; addition of the DynamicSitLitSupport feature"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0046" name="ICDManagement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="ICDM" scope="Node"/>
+  <features>
+    <feature bit="0" code="CIP" name="CheckInProtocolSupport" summary="Device supports attributes and commands for the Check-In Protocol support.">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="LITS"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="1" code="UAT" name="UserActiveModeTrigger" summary="Device supports the user active mode trigger feature.">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="LITS"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="LITS" name="LongIdleTimeSupport" summary="Device supports operating as a Long Idle Time ICD.">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="3" code="DSLS" name="DynamicSitLitSupport" summary="Device supports dynamic switching from SIT to LIT operating modes.">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform>
+          <feature name="LITS"/>
+        </optionalConform>
+      </otherwiseConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="ClientType Field" type=""/>
+    <number name="UserActiveModeTriggerBitmap" type=""/>
+    <enum name="OperatingModeEnum">
+      <item value="0" name="SIT" summary="ICD is operating as a Short Idle Time ICD.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="LIT" summary="ICD is operating as a Long Idle Time ICD.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="MonitoringRegistrationStruct">
+      <field id="1" name="CheckInNodeID" type="node-id">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MonitoredSubject" type="subject-id">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Key">
+        <deprecateConform/>
+      </field>
+      <field id="4" name="ClientType" type="ClientTypeEnum" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="IdleModeDuration" type="uint32" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="64800"/>
+    </attribute>
+    <attribute id="0x0001" name="ActiveModeDuration" type="uint32" default="300">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="ActiveModeThreshold" type="uint16" default="300">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="RegisteredClients" type="list" default="[]">
+      <entry type="MonitoringRegistrationStruct"/>
+      <access read="true" readPrivilege="admin" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="ICDCounter" type="uint32" default="0">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="ClientsSupportedPerFabric" type="uint16" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0006" name="UserActiveModeTriggerHint" type="UserActiveModeTriggerBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="UAT"/>
+        </mandatoryConform>
+      </otherwiseConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0007" name="UserActiveModeTriggerInstruction" type="string" default="&quot;">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <constraint type="maxLength" value="128"/>
+    </attribute>
+    <attribute id="0x0008" name="OperatingMode" type="OperatingModeEnum">
+      <access read="true" readPrivilege="view"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="LITS"/>
+        </mandatoryConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0009" name="MaximumCheckInBackoff" type="uint32" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <constraint type="between" from="IdleModeDuration" to="64800"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="RegisterClient" direction="commandToServer" response="RegisterClientResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <field id="0" name="CheckInNodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MonitoredSubject" type="subject-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Key" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="VerificationKey" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="4" name="ClientType" type="ClientTypeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="RegisterClientResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <field id="0" name="ICDCounter" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="UnregisterClient" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="CIP"/>
+      </mandatoryConform>
+      <field id="0" name="CheckInNodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="VerificationKey" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x03" name="StayActiveRequest" direction="commandToServer" response="StayActiveResponse">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="LITS"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <field id="0" name="StayActiveDuration" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="StayActiveResponse" direction="responseFromServer">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="LITS"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+      <field id="0" name="PromisedActiveDuration" type="uint32">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Identify.xml b/data_model/in_progress/clusters/Identify.xml
new file mode 100644
index 0000000..a6682b7
--- /dev/null
+++ b/data_model/in_progress/clusters/Identify.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0003" name="Identify Cluster" revision="5">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2808"/>
+    <revision revision="3" summary="All Hubs changes"/>
+    <revision revision="4" summary="New data model format and notation; add IdentifyType"/>
+    <revision revision="5" summary="Added Q quality for IdentifyTime attribute"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0003" name="Identify"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="I" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="EffectIdentifierEnum">
+      <item value="0x00" name="Blink" summary="e.g., Light is turned on/off once.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x0B" name="ChannelChange" summary="e.g., Colored light turns orange for 8 seconds;
+                          non-colored light switches to the maximum brightness for 0.5s and then minimum brightness for 7.5s.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="Breathe" summary="e.g., Light is turned on/off over 1 second and repeated 15 times.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="Okay" summary="e.g., Colored light turns green for 1 second; non-colored light flashes twice.">
+        <mandatoryConform/>
+      </item>
+      <item value="0xFE" name="FinishEffect" summary="Complete the current effect sequence before terminating. e.g., if in the middle of a breathe effect
+                          (as above), first complete the current 1s breathe effect and then terminate the effect.">
+        <mandatoryConform/>
+      </item>
+      <item value="0xFF" name="StopEffect" summary="Terminate the effect as soon as possible.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="EffectVariantEnum">
+      <item value="0x00" name="Default" summary="Indicates the default effect is used">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="IdentifyTypeEnum">
+      <item value="0x00" name="None" summary="No presentation.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="LightOutput" summary="Light output of a lighting product.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="VisibleIndicator" summary="Typically a small LED.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x03" name="AudibleBeep">
+        <mandatoryConform/>
+      </item>
+      <item value="0x04" name="Display" summary="Presentation will be visible on display screen.">
+        <mandatoryConform/>
+      </item>
+      <item value="0x05" name="Actuator" summary="Presentation will be conveyed by actuator functionality
+                             such as through a window blind operation or in-wall relay.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="IdentifyTime" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="IdentifyType" type="IdentifyTypeEnum" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Identify" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="IdentifyTime" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x40" name="TriggerEffect" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <optionalConform/>
+      <field id="0" name="EffectIdentifier" type="EffectIdentifierEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="EffectVariant" type="EffectVariantEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/IlluminanceMeasurement.xml b/data_model/in_progress/clusters/IlluminanceMeasurement.xml
new file mode 100644
index 0000000..f24df31
--- /dev/null
+++ b/data_model/in_progress/clusters/IlluminanceMeasurement.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0400" name="Illuminance Measurement Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 2048 2049 2050"/>
+    <revision revision="2" summary="CCB 2167"/>
+    <revision revision="3" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0400" name="Illuminance Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="ILL" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="LightSensorTypeEnum">
+      <item value="0" name="Photodiode" summary="Indicates photodiode sensor type">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="CMOS" summary="Indicates CMOS sensor type">
+        <mandatoryConform/>
+      </item>
+      <item from="64" to="254" name="MS" summary="Reserved for manufacturer specific light sensor types">
+        <optionalConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="allowed" value="0"/>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="MaxMeasuredValue - 1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue + 1" to="65534"/>
+    </attribute>
+    <attribute id="0x0003" name="Tolerance" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="max" value="2048"/>
+    </attribute>
+    <attribute id="0x0004" name="LightSensorType" type="LightSensorTypeEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/JointFabricDatastoreCluster.xml b/data_model/in_progress/clusters/JointFabricDatastoreCluster.xml
new file mode 100644
index 0000000..79143f3
--- /dev/null
+++ b/data_model/in_progress/clusters/JointFabricDatastoreCluster.xml
@@ -0,0 +1,512 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Joint Fabric Datastore Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId name="Joint Fabric Datastore Cluster"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="JFDS" scope="Node"/>
+  <dataTypes>
+    <enum name="DatastoreStateEnum">
+      <item value="0" name="Pending" summary="Target device operation is pending">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Committed" summary="Target device operation has been committed">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="DeletePending" summary="Target device delete operation is pending">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="Datastore ACL Entry">
+      <field id="0" name="ListID" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ACLEntry" type="ref_AccessControlEntryStruct">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="StatusEntry" type="DatastoreStatusEntry">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Administrator Information Entry">
+      <field id="1" name="NodeID" type="node-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="FriendlyName" type="string">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="3" name="VendorID" type="vendor-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="ICAC" type="octstr">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Endpoint Entry">
+      <field id="0" name="EndpointID" type="endpoint-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NodeID" type="node-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="FriendlyName" type="string">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="3" name="StatusEntry" type="DatastoreStatusEntry">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="GroupIDList" type="DataTypeList[Datastore Group ID Entry Type]">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="BindingList" type="DataTypeList[Datastore Binding Entry Type]">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Group ID Entry">
+      <field id="0" name="GroupID" type="group-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StatusEntry" type="DatastoreStatusEntry">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Group Information Entry">
+      <field id="0" name="GroupID" type="uint64">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="GroupKeySetID" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="3" name="GroupCAT" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="4" name="GroupCATVersion" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="5" name="GroupPermission" type="ref_AccessControlEntryPrivilegeEnum">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Node Information Entry">
+      <field id="1" name="NodeID" type="node-id">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="FriendlyName" type="string">
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="3" name="CommissioningStatusEntry" type="DatastoreStatusEntry">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="NodeKeySetList" type="DataTypeList[Datastore Node Key Entry Type]">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="ACLList" type="list">
+        <entry type="Datastore ACL Entry"/>
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="6" name="EndpointList" type="DataTypeList[Datastore Endpoint Entry Type]">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="Datastore Node Key Entry">
+      <field id="0" name="GroupKeySetID" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StatusEntry" type="DatastoreStatusEntry">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="DatastoreStatusEntry">
+      <field id="0" name="State" type="DatastoreStateEnum" default="Pending">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="UpdateTimestamp" type="utc" default="null">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="AnchorRootCA" type="octstr">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="AnchorNodeID" type="node-id">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="AnchorVendorID" type="vendor-id">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="FriendlyName" type="string">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="32"/>
+    </attribute>
+    <attribute id="0x0004" name="GroupKeySetList" type="DataTypeList[ref_GroupKeySetStruct]">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="GroupList" type="DataTypeList[Datastore Group Information Entry Type]">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0006" name="NodeList" type="DataTypeList[Datastore Node Information Entry Type]">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0007" name="AdminList" type="DataTypeList[Datastore Administrator Information Entry Type]">
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AddKeySet Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySet" type="ref_GroupKeySetStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="UpdateKeySet Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySet" type="ref_GroupKeySetStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="RemoveKeySet Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="AddGroup Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="GroupKeySetID" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="3" name="GroupCAT" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="4" name="GroupCATVersion" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="5" name="GroupPermission" type="ref_AccessControlEntryPrivilegeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="UpdateGroup Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="GroupKeySetID" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="3" name="GroupCAT" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="4" name="GroupCATVersion" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="65535"/>
+      </field>
+      <field id="5" name="GroupPermission" type="ref_AccessControlEntryPrivilegeEnum">
+        <mandatoryConform/>
+        <constraint type="allowed" value="0bX"/>
+      </field>
+    </command>
+    <command id="0x05" name="RemoveGroup Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x06" name="AddAdmin Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="AdminInformationEntry" type="Datastore Administrator Information Entry">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x07" name="UpdateAdmin Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="ICAC" type="octstr">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+    </command>
+    <command id="0x08" name="RemoveAdmin Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x09" name="AddPendingNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x0A" name="RefreshNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0B" name="UpdateNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FriendlyName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x0C" name="RemoveNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0D" name="UpdateEndpointForNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="EndpointID" type="endpoint-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="FriendlyName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x0E" name="AddGroupIDToEndpointForNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="EndpointID" type="endpoint-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0F" name="RemoveGroupIDFromEndpointForNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="EndpointID" type="endpoint-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x10" name="AddBindingToEndpointForNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="EndpointID" type="endpoint-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Binding" type="ref_BindingTargetStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x11" name="RemoveBindingFromEndpointForNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="ListID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="EndpointID" type="endpoint-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x12" name="AddACLToNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ACLEntry" type="ref_AccessControlEntryStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x13" name="RemoveACLFromNode Command" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="ListID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/JointFabricPKICluster.xml b/data_model/in_progress/clusters/JointFabricPKICluster.xml
new file mode 100644
index 0000000..7fba1e1
--- /dev/null
+++ b/data_model/in_progress/clusters/JointFabricPKICluster.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Joint Fabric PKI Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId name="Joint Fabric PKI Cluster"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="JFPKI" scope="Node"/>
+  <dataTypes>
+    <enum name="ICAC Signing Request Status Enum">
+      <item value="0" name="ref_IcacsrRequestStatusOK" summary="No error">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ref_InvalidIcaCsrFormat" summary="The ICACSR in the request is not compliant to &lt;&lt;ref_Rfc2986, PKCS #10&gt;&gt; rules">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="ref_InvalidIcaCsrSignature" summary="The ICACSR in the request has an incorrect signature">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="ref_FailedDCLVendorIdValidation" summary="DCL Vendor ID validation failed">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="ref_NotAnIcac" summary="DCL returned certificate is not an ICAC">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="ref_IcaSigningFailed" summary="Signing the ICA CSR failed">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="ICACSRRequest Command" direction="commandToServer" response="ICACSRResponse Command">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="ref_Icacsr" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+    </command>
+    <command id="0x01" name="ICACSRResponse Command" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="ref_IcaCsrResponseStatusCode" type="ICAC Signing Request Status Enum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ref_IcaCsrResponseICAC" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/KeypadInput.xml b/data_model/in_progress/clusters/KeypadInput.xml
new file mode 100644
index 0000000..efeb92b
--- /dev/null
+++ b/data_model/in_progress/clusters/KeypadInput.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0509" name="Keypad Input Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0509" name="Keypad Input"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="KEYPADINPUT" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="NV" name="NavigationKeyCodes" summary="Supports UP, DOWN, LEFT, RIGHT, SELECT, BACK, EXIT, MENU">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="LK" name="LocationKeys" summary="Supports CEC keys 0x0A (Settings) and 0x09 (Home)">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="NK" name="NumberKeys" summary="Supports numeric input 0..9">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="CecKeyCodeEnum">
+      <item value="0x00" name="Select">
+        <mandatoryConform/>
+      </item>
+      <item value="0x0A" name="SetupMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x0B" name="ContentsMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x0C" name="FavoriteMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x0D" name="Exit">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="Up">
+        <mandatoryConform/>
+      </item>
+      <item value="0x1D" name="NumberEntryMode">
+        <mandatoryConform/>
+      </item>
+      <item value="0x1E" name="Number11">
+        <mandatoryConform/>
+      </item>
+      <item value="0x1F" name="Number12">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="Down">
+        <mandatoryConform/>
+      </item>
+      <item value="0x2A" name="Dot">
+        <mandatoryConform/>
+      </item>
+      <item value="0x2B" name="Enter">
+        <mandatoryConform/>
+      </item>
+      <item value="0x2C" name="Clear">
+        <mandatoryConform/>
+      </item>
+      <item value="0x2F" name="NextFavorite">
+        <mandatoryConform/>
+      </item>
+      <item value="0x03" name="Left">
+        <mandatoryConform/>
+      </item>
+      <item value="0x04" name="Right">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4A" name="Eject">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4B" name="Forward">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4C" name="Backward">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4D" name="StopRecord">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4E" name="PauseRecord">
+        <mandatoryConform/>
+      </item>
+      <item value="0x4F" name="Reserved">
+        <mandatoryConform/>
+      </item>
+      <item value="0x05" name="RightUp">
+        <mandatoryConform/>
+      </item>
+      <item value="0x06" name="RightDown">
+        <mandatoryConform/>
+      </item>
+      <item value="0x6A" name="SelectAudioInputFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x6B" name="PowerToggleFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x6C" name="PowerOffFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x6D" name="PowerOnFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x07" name="LeftUp">
+        <mandatoryConform/>
+      </item>
+      <item value="0x08" name="LeftDown">
+        <mandatoryConform/>
+      </item>
+      <item value="0x09" name="RootMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x10" name="MediaTopMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x11" name="MediaContextSensitiveMenu">
+        <mandatoryConform/>
+      </item>
+      <item value="0x20" name="Number0OrNumber10">
+        <mandatoryConform/>
+      </item>
+      <item value="0x21" name="Numbers1">
+        <mandatoryConform/>
+      </item>
+      <item value="0x22" name="Numbers2">
+        <mandatoryConform/>
+      </item>
+      <item value="0x23" name="Numbers3">
+        <mandatoryConform/>
+      </item>
+      <item value="0x24" name="Numbers4">
+        <mandatoryConform/>
+      </item>
+      <item value="0x25" name="Numbers5">
+        <mandatoryConform/>
+      </item>
+      <item value="0x26" name="Numbers6">
+        <mandatoryConform/>
+      </item>
+      <item value="0x27" name="Numbers7">
+        <mandatoryConform/>
+      </item>
+      <item value="0x28" name="Numbers8">
+        <mandatoryConform/>
+      </item>
+      <item value="0x29" name="Numbers9">
+        <mandatoryConform/>
+      </item>
+      <item value="0x30" name="ChannelUp">
+        <mandatoryConform/>
+      </item>
+      <item value="0x31" name="ChannelDown">
+        <mandatoryConform/>
+      </item>
+      <item value="0x32" name="PreviousChannel">
+        <mandatoryConform/>
+      </item>
+      <item value="0x33" name="SoundSelect">
+        <mandatoryConform/>
+      </item>
+      <item value="0x34" name="InputSelect">
+        <mandatoryConform/>
+      </item>
+      <item value="0x35" name="DisplayInformation">
+        <mandatoryConform/>
+      </item>
+      <item value="0x36" name="Help">
+        <mandatoryConform/>
+      </item>
+      <item value="0x37" name="PageUp">
+        <mandatoryConform/>
+      </item>
+      <item value="0x38" name="PageDown">
+        <mandatoryConform/>
+      </item>
+      <item value="0x40" name="Power">
+        <mandatoryConform/>
+      </item>
+      <item value="0x41" name="VolumeUp">
+        <mandatoryConform/>
+      </item>
+      <item value="0x42" name="VolumeDown">
+        <mandatoryConform/>
+      </item>
+      <item value="0x43" name="Mute">
+        <mandatoryConform/>
+      </item>
+      <item value="0x44" name="Play">
+        <mandatoryConform/>
+      </item>
+      <item value="0x45" name="Stop">
+        <mandatoryConform/>
+      </item>
+      <item value="0x46" name="Pause">
+        <mandatoryConform/>
+      </item>
+      <item value="0x47" name="Record">
+        <mandatoryConform/>
+      </item>
+      <item value="0x48" name="Rewind">
+        <mandatoryConform/>
+      </item>
+      <item value="0x49" name="FastForward">
+        <mandatoryConform/>
+      </item>
+      <item value="0x50" name="Angle">
+        <mandatoryConform/>
+      </item>
+      <item value="0x51" name="SubPicture">
+        <mandatoryConform/>
+      </item>
+      <item value="0x52" name="VideoOnDemand">
+        <mandatoryConform/>
+      </item>
+      <item value="0x53" name="ElectronicProgramGuide">
+        <mandatoryConform/>
+      </item>
+      <item value="0x54" name="TimerProgramming">
+        <mandatoryConform/>
+      </item>
+      <item value="0x55" name="InitialConfiguration">
+        <mandatoryConform/>
+      </item>
+      <item value="0x56" name="SelectBroadcastType">
+        <mandatoryConform/>
+      </item>
+      <item value="0x57" name="SelectSoundPresentation">
+        <mandatoryConform/>
+      </item>
+      <item value="0x60" name="PlayFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x61" name="PausePlayFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x62" name="RecordFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x63" name="PauseRecordFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x64" name="StopFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x65" name="MuteFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x66" name="RestoreVolumeFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x67" name="TuneFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x68" name="SelectMediaFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x69" name="SelectAvInputFunction">
+        <mandatoryConform/>
+      </item>
+      <item value="0x71" name="F1Blue">
+        <mandatoryConform/>
+      </item>
+      <item value="0x72" name="F2Red">
+        <mandatoryConform/>
+      </item>
+      <item value="0x73" name="F3Green">
+        <mandatoryConform/>
+      </item>
+      <item value="0x74" name="F4Yellow">
+        <mandatoryConform/>
+      </item>
+      <item value="0x75" name="F5">
+        <mandatoryConform/>
+      </item>
+      <item value="0x76" name="Data">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="UnsupportedKey" summary="Key code is not supported.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="InvalidKeyInCurrentState" summary="Requested key code is invalid in the context of the responder's current state.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="SendKey" direction="commandToServer" response="SendKeyResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="KeyCode" type="CecKeyCodeEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="SendKeyResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/in_progress/clusters/Label-Cluster-FixedLabelCluster.xml
new file mode 100644
index 0000000..a172d1e
--- /dev/null
+++ b/data_model/in_progress/clusters/Label-Cluster-FixedLabelCluster.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0040" name="Fixed Label Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0040" name="Fixed Label"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Label" role="utility" picsCode="FLABEL" scope="Endpoint"/>
+  <dataTypes/>
+  <attributes>
+    <attribute id="0x0000" name="LabelList" type="list" default="empty">
+      <entry type="LabelStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Label-Cluster-LabelCluster.xml b/data_model/in_progress/clusters/Label-Cluster-LabelCluster.xml
new file mode 100644
index 0000000..2f8a371
--- /dev/null
+++ b/data_model/in_progress/clusters/Label-Cluster-LabelCluster.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Label Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId name="Label"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="LABEL" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="LabelStruct">
+      <field id="0" name="Label" type="string" default="empty">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="Value" type="string" default="empty">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="LabelList" type="list" default="empty">
+      <entry type="LabelStruct"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="allowed" value="derived"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/in_progress/clusters/Label-Cluster-UserLabelCluster.xml
new file mode 100644
index 0000000..466550f
--- /dev/null
+++ b/data_model/in_progress/clusters/Label-Cluster-UserLabelCluster.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0041" name="User Label Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0041" name="User Label"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Label" role="utility" picsCode="ULABEL" scope="Endpoint"/>
+  <dataTypes/>
+  <attributes>
+    <attribute id="0x0000" name="LabelList" type="list" default="empty">
+      <entry type="LabelStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="minCount" value="4 per node"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LaundryDryerControls.xml b/data_model/in_progress/clusters/LaundryDryerControls.xml
new file mode 100644
index 0000000..85f7871
--- /dev/null
+++ b/data_model/in_progress/clusters/LaundryDryerControls.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x004A" name="Laundry Dryer Controls Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x004A" name="Laundry Dryer Controls"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="DRYERCTRL" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="DrynessLevelEnum">
+      <item value="0" name="Low" summary="Provides a low dryness level for the selected mode">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Normal" summary="Provides the normal level of dryness for the selected mode">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Extra" summary="Provides an extra dryness level for the selected mode">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Max" summary="Provides the max dryness level for the selected mode">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedDrynessLevels" type="list">
+      <entry type="DrynessLevelEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="1" to="4"/>
+    </attribute>
+    <attribute id="0x0001" name="SelectedDrynessLevel" type="DrynessLevelEnum" default="desc">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LaundryWasherControls.xml b/data_model/in_progress/clusters/LaundryWasherControls.xml
new file mode 100644
index 0000000..046ecc3
--- /dev/null
+++ b/data_model/in_progress/clusters/LaundryWasherControls.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0053" name="Laundry Washer Controls Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Updated Feature Map Conformance"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0053" name="Laundry Washer Controls"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="WASHERCTRL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="SPIN" name="Spin" summary="Multiple spin speeds supported">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="RINSE" name="Rinse" summary="Multiple rinse cycles supported">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="NumberOfRinsesEnum">
+      <item value="0" name="None" summary="This laundry washer mode does not perform rinse cycles">
+        <mandatoryConform>
+          <feature name="RINSE"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="Normal" summary="This laundry washer mode performs normal rinse cycles determined by the manufacturer">
+        <mandatoryConform>
+          <feature name="RINSE"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Extra" summary="This laundry washer mode performs an extra rinse cycle">
+        <mandatoryConform>
+          <feature name="RINSE"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Max" summary="This laundry washer mode performs the maximum number of rinse cycles determined by the manufacturer">
+        <mandatoryConform>
+          <feature name="RINSE"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SpinSpeeds" type="list">
+      <entry type="string">
+        <constraint type="maxLength" value="64"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="SPIN"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="16"/>
+    </attribute>
+    <attribute id="0x0001" name="SpinSpeedCurrent" type="uint8" default="desc">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SPIN"/>
+      </mandatoryConform>
+      <constraint type="max" value="15"/>
+    </attribute>
+    <attribute id="0x0002" name="NumberOfRinses" type="NumberOfRinsesEnum" default="1">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="RINSE"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="SupportedRinses" type="list">
+      <entry type="NumberOfRinsesEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="RINSE"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="4"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LevelControl.xml b/data_model/in_progress/clusters/LevelControl.xml
new file mode 100644
index 0000000..28f88b9
--- /dev/null
+++ b/data_model/in_progress/clusters/LevelControl.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0008" name="Level Control Cluster" revision="6">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="Added Options attribute, state change table; ZLO 1.0; Base cluster (no change)
+             CCB 2085 1775 2281 2147"/>
+    <revision revision="3" summary="CCB 2574 2616 2659 2702 2814 2818 2819 2898"/>
+    <revision revision="4" summary="FeatureMap support with On/Off, Lighting and Frequency features"/>
+    <revision revision="5" summary="New data model format and notation"/>
+    <revision revision="6" summary="Added Q quality for CurrentLevel, CurrentFrequency and RemainingTime attributes, +
+             added clarifications for behavior related to Step value and +
+             adjusted constraint of DefaultMoveRate"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0008" name="Level Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="LVL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="OO" name="OnOff" default="1" summary="Dependency with the On/Off cluster">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="LT" name="Lighting" default="0" summary="Behavior that supports lighting applications">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="FQ" name="Frequency" default="0" summary="Supports frequency attributes and behavior.">
+      <provisionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="MoveModeEnum">
+      <item value="0" name="Up" summary="Increase the level">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Down" summary="Decrease the level">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StepModeEnum">
+      <item value="0" name="Up" summary="Step upwards">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Down" summary="Step downwards">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="OptionsBitmap">
+      <bitfield name="ExecuteIfOff" bit="0" summary="Dependency on On/Off cluster">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="LT"/>
+            <feature name="OO"/>
+          </orTerm>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="CoupleColorTempToLevel" bit="1" summary="Dependency on Color Control cluster">
+        <mandatoryConform>
+          <feature name="LT"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CurrentLevel" type="uint8" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinLevel" to="MaxLevel"/>
+    </attribute>
+    <attribute id="0x0001" name="RemainingTime" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="MinLevel" type="uint8" default="1">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="LT"/>
+      </optionalConform>
+      <constraint type="between" from="1" to="MaxLevel"/>
+    </attribute>
+    <attribute id="0x0002" name="MinLevel" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <notTerm>
+          <feature name="LT"/>
+        </notTerm>
+      </optionalConform>
+      <constraint type="max" value="MaxLevel"/>
+    </attribute>
+    <attribute id="0x0003" name="MaxLevel" type="uint8" default="254">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="between" from="MinLevel" to="254"/>
+    </attribute>
+    <attribute id="0x0004" name="CurrentFrequency" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="FQ"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinFrequency" to="MaxFrequency"/>
+    </attribute>
+    <attribute id="0x0005" name="MinFrequency" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="FQ"/>
+      </mandatoryConform>
+      <constraint type="max" value="MaxFrequency"/>
+    </attribute>
+    <attribute id="0x0006" name="MaxFrequency" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="FQ"/>
+      </mandatoryConform>
+      <constraint type="min" value="MinFrequency"/>
+    </attribute>
+    <attribute id="0x000F" name="Options" type="OptionsBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0010" name="OnOffTransitionTime" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0011" name="OnLevel" type="uint8" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinLevel" to="MaxLevel"/>
+    </attribute>
+    <attribute id="0x0012" name="OnTransitionTime" type="uint16" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0013" name="OffTransitionTime" type="uint16" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0014" name="DefaultMoveRate" type="uint8" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x4000" name="StartUpCurrentLevel" type="uint8" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="MoveToLevel" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Level" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="1" name="TransitionTime" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="Move" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="MoveMode" type="MoveModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Rate" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="Step" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="StepMode" type="StepModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="StepSize" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="Stop" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="OptionsMask" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="OptionsOverride" type="OptionsBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x04" name="MoveToLevelWithOnOff" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x05" name="MoveWithOnOff" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x06" name="StepWithOnOff" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x07" name="StopWithOnOff" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x08" name="MoveToClosestFrequency" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="FQ"/>
+      </mandatoryConform>
+      <field id="0" name="Frequency" type="uint16" default="0">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LocalizationConfiguration.xml b/data_model/in_progress/clusters/LocalizationConfiguration.xml
new file mode 100644
index 0000000..6bc3abd
--- /dev/null
+++ b/data_model/in_progress/clusters/LocalizationConfiguration.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002B" name="Localization Configuration Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002B" name="Localization Configuration"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="LCFG" scope="Node"/>
+  <attributes>
+    <attribute id="0x0000" name="ActiveLocale" type="string" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="35"/>
+    </attribute>
+    <attribute id="0x0001" name="SupportedLocales" type="list" default="MS">
+      <entry type="string">
+        <constraint type="maxLength" value="35"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="32"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LocalizationTimeFormat.xml b/data_model/in_progress/clusters/LocalizationTimeFormat.xml
new file mode 100644
index 0000000..2de3724
--- /dev/null
+++ b/data_model/in_progress/clusters/LocalizationTimeFormat.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002C" name="Time Format Localization Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002C" name="Time Format Localization"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="LTIME" scope="Node"/>
+  <features>
+    <feature bit="0" code="CALFMT" name="CalendarFormat" summary="The Node can be configured to use different calendar formats when conveying values to a user.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="CalendarTypeEnum">
+      <item value="0" name="Buddhist" summary="Dates conveyed using the Buddhist calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="1" name="Chinese" summary="Dates conveyed using the Chinese calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="2" name="Coptic" summary="Dates conveyed using the Coptic calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="3" name="Ethiopian" summary="Dates conveyed using the Ethiopian calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="4" name="Gregorian" summary="Dates conveyed using the Gregorian calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="5" name="Hebrew" summary="Dates conveyed using the Hebrew calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="6" name="Indian" summary="Dates conveyed using the Indian calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="7" name="Islamic" summary="Dates conveyed using the Islamic calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="8" name="Japanese" summary="Dates conveyed using the Japanese calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="9" name="Korean" summary="Dates conveyed using the Korean calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="10" name="Persian" summary="Dates conveyed using the Persian calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="11" name="Taiwanese" summary="Dates conveyed using the Taiwanese calendar">
+        <optionalConform choice="a" more="true"/>
+      </item>
+      <item value="255" name="UseActiveLocale" summary="calendar implied from active locale">
+        <optionalConform choice="a" more="true"/>
+      </item>
+    </enum>
+    <enum name="HourFormatEnum">
+      <item value="0" name="12hr" summary="Time conveyed with a 12-hour clock">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="24hr" summary="Time conveyed with a 24-hour clock">
+        <mandatoryConform/>
+      </item>
+      <item value="255" name="UseActiveLocale" summary="Use active locale clock">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="HourFormat" type="HourFormatEnum">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="ActiveCalendarType" type="CalendarTypeEnum">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CALFMT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="SupportedCalendarTypes" type="list" default="N/A">
+      <entry type="CalendarTypeEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CALFMT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LocalizationUnit.xml b/data_model/in_progress/clusters/LocalizationUnit.xml
new file mode 100644
index 0000000..e08ce0e
--- /dev/null
+++ b/data_model/in_progress/clusters/LocalizationUnit.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002D" name="Unit Localization Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002D" name="Unit Localization"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="LUNIT" scope="Node"/>
+  <features>
+    <feature bit="0" code="TEMP" name="TemperatureUnit" summary="The Node can be configured to use different units of temperature when conveying values to a user.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="TempUnitEnum">
+      <item value="0" name="Fahrenheit" summary="Temperature conveyed in Fahrenheit">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Celsius" summary="Temperature conveyed in Celsius">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Kelvin" summary="Temperature conveyed in Kelvin">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="TemperatureUnit" type="TempUnitEnum">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TEMP"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/LowPower.xml b/data_model/in_progress/clusters/LowPower.xml
new file mode 100644
index 0000000..2e91a02
--- /dev/null
+++ b/data_model/in_progress/clusters/LowPower.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0508" name="Low Power Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0508" name="Low Power"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="LOWPOWER" scope="Endpoint"/>
+  <commands>
+    <command id="0x00" name="Sleep" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/MediaInput.xml b/data_model/in_progress/clusters/MediaInput.xml
new file mode 100644
index 0000000..c01567f
--- /dev/null
+++ b/data_model/in_progress/clusters/MediaInput.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0507" name="Media Input Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0507" name="Media Input"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MEDIAINPUT" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="NU" name="NameUpdates" summary="Supports updates to the input names">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="InputTypeEnum">
+      <item value="0" name="Internal" summary="Indicates content not coming from a physical input.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Aux">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Coax">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Composite">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="HDMI">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Input">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Line">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Optical">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Video">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="SCART">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="USB">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="Other">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="InputInfoStruct">
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InputType" type="InputTypeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Description" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="InputList" type="list">
+      <entry type="InputInfoStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentInput" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SelectInput" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x01" name="ShowInputStatus" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="HideInputStatus" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x03" name="RenameInput" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="NU"/>
+      </mandatoryConform>
+      <field id="0" name="Index" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/MediaPlayback.xml b/data_model/in_progress/clusters/MediaPlayback.xml
new file mode 100644
index 0000000..e37d594
--- /dev/null
+++ b/data_model/in_progress/clusters/MediaPlayback.xml
@@ -0,0 +1,475 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0506" name="Media Playback Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Text/Audio tracks support, Audio-while-advancing (AA) feature, StateChanged event"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0506" name="Media Playback"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MEDIAPLAYBACK" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="AS" name="AdvancedSeek" summary="Advanced media seeking">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="VS" name="VariableSpeed" summary="Variable speed playback">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="TT" name="TextTracks" summary="Text Tracks">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="AT" name="AudioTracks" summary="Audio Tracks">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="AA" name="AudioAdvance" summary="Can play audio during fast and slow playback speeds">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="CharacteristicEnum">
+      <item value="0" name="ForcedSubtitles" summary="Textual information meant for display when no other text representation is selected. It is used to clarify dialogue, alternate languages, texted graphics or location/person IDs that are not otherwise covered in the dubbed/localized audio.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="DescribesVideo" summary="Textual or audio media component containing a textual description (intended for audio synthesis) or an audio description describing a visual component">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="EasyToRead" summary="Simplified or reduced captions as specified in [United States Code Title 47 CFR 79.103(c)(9)].">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="FrameBased" summary="A media characteristic that indicates that a track selection option includes frame-based content.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="MainProgram" summary="Main media component(s) which is/are intended for presentation if no other information is provided">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="OriginalContent" summary="A media characteristic that indicates that a track or media selection option contains original content.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="VoiceOverTranslation" summary="A media characteristic that indicates that a track or media selection option contains a language translation and verbal interpretation of spoken dialog.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Caption" summary="Textual media component containing transcriptions of spoken dialog and auditory cues such as sound effects and music for the hearing impaired.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Subtitle" summary="Textual transcriptions of spoken dialog.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="Alternate" summary="Textual media component containing transcriptions of spoken dialog and auditory cues such as sound effects and music for the hearing impaired.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="Supplementary" summary="Media content component that is supplementary to a media content component of a different media component type.">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="Commentary" summary="Experience that contains a commentary (e.g. director’s commentary) (typically audio)">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="DubbedTranslation" summary="Experience that contains an element that is presented in a different language from the original (e.g. dubbed audio, translated captions)">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="Description" summary="Textual or audio media component containing a textual description (intended for audio synthesis) or an audio description describing a visual component">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="Metadata" summary="Media component containing information intended to be processed by application specific elements.">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="EnhancedAudioIntelligibility" summary="Experience containing an element for improved intelligibility of the dialogue.">
+        <mandatoryConform/>
+      </item>
+      <item value="16" name="Emergency" summary="Experience that provides information, about a current emergency, that is intended to enable the protection of life, health, safety, and property, and may also include critical details regarding the emergency and how to respond to the emergency.">
+        <mandatoryConform/>
+      </item>
+      <item value="17" name="Karaoke" summary="Textual representation of a songs’ lyrics, usually in the same language as the associated song as specified in [SMPTE ST 2067-2].">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="PlaybackStateEnum">
+      <item value="0" name="Playing" summary="Media is currently playing (includes FF and REW)">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Paused" summary="Media is currently paused">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NotPlaying" summary="Media is not currently playing">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Buffering" summary="Media is not currently buffering and playback will start when buffer has been filled">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="InvalidStateForCommand" summary="Requested playback command is invalid in the current playback state.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NotAllowed" summary="Requested playback command is not allowed in the current playback state.
+                                    For example, attempting to fast-forward during a commercial might return NotAllowed.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="NotActive" summary="This endpoint is not active for playback.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="SpeedOutOfRange" summary="The FastForward or Rewind Command was issued but the media is already playing
+                                    back at the fastest speed supported by the server in the respective direction.">
+        <mandatoryConform>
+          <feature name="VS"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="SeekOutOfRange" summary="The Seek Command was issued with a value of position outside of the allowed seek range of the media.">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <struct name="PlaybackPositionStruct">
+      <field id="0" name="UpdatedAt" type="epoch-us">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Position" type="uint64">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="TrackAttributesStruct">
+      <field id="0" name="LanguageCode" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="Characteristics" type="list" default="null">
+        <entry type="CharacteristicEnum"/>
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="2" name="DisplayName" type="string" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </struct>
+    <struct name="TrackStruct">
+      <field id="0" name="ID" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="TrackAttributes" type="TrackAttributesStruct">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="CurrentState" type="PlaybackStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="StartTime" type="epoch-us" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="Duration" type="uint64" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="SampledPosition" type="PlaybackPositionStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="PlaybackSpeed" type="single" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="SeekRangeEnd" type="uint64" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="SeekRangeStart" type="uint64" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0007" name="ActiveAudioTrack" type="TrackStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0008" name="AvailableAudioTracks" type="list" default="null">
+      <entry type="TrackStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0009" name="ActiveTextTrack" type="TrackStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000A" name="AvailableTextTracks" type="list" default="null">
+      <entry type="TrackStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Play" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="Pause" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="Stop" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x03" name="StartOver" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+    <command id="0x04" name="Previous" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+    <command id="0x05" name="Next" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+    <command id="0x06" name="Rewind" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="VS"/>
+      </mandatoryConform>
+      <field id="0" name="AudioAdvanceUnmuted" type="bool" default="false">
+        <mandatoryConform>
+          <feature name="AA"/>
+        </mandatoryConform>
+      </field>
+    </command>
+    <command id="0x07" name="FastForward" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="VS"/>
+      </mandatoryConform>
+      <field id="0" name="AudioAdvanceUnmuted" type="bool" default="false">
+        <mandatoryConform>
+          <feature name="AA"/>
+        </mandatoryConform>
+      </field>
+    </command>
+    <command id="0x08" name="SkipForward" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+      <field id="0" name="DeltaPositionMilliseconds" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x09" name="SkipBackward" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+      <field id="0" name="DeltaPositionMilliseconds" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0A" name="PlaybackResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Data" type="string">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x0B" name="Seek" direction="commandToServer" response="PlaybackResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="AS"/>
+      </mandatoryConform>
+      <field id="0" name="Position" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0C" name="ActivateAudioTrack" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="AT"/>
+      </mandatoryConform>
+      <field id="0" name="TrackID" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="AudioOutputIndex" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="AT"/>
+        </mandatoryConform>
+      </field>
+    </command>
+    <command id="0x0D" name="ActivateTextTrack" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="TT"/>
+      </mandatoryConform>
+      <field id="0" name="TrackID" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x0E" name="DeactivateTextTrack" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="TT"/>
+      </mandatoryConform>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="StateChanged" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="CurrentState" type="PlaybackStateEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="StartTime" type="epoch-us">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Duration" type="uint64">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="SampledPosition" type="PlaybackPositionStruct">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="PlaybackSpeed" type="single">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="5" name="SeekRangeEnd" type="uint64">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="6" name="SeekRangeStart" type="uint64">
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="7" name="Data" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="900"/>
+      </field>
+      <field id="8" name="AudioAdvanceUnmuted" type="bool" default="false">
+        <mandatoryConform>
+          <feature name="AA"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Messages.xml b/data_model/in_progress/clusters/Messages.xml
new file mode 100644
index 0000000..d2dbd28
--- /dev/null
+++ b/data_model/in_progress/clusters/Messages.xml
@@ -0,0 +1,333 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+

+:xrefstyle: short

+

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved. This

+information within this document is the property of the Connectivity Standards

+Alliance and its use and disclosure are restricted.

+

+Elements of Connectivity Standards Alliance specifications may be subject to third

+party intellectual property rights, including without limitation,

+patent, copyright or trademark rights (such a third party may or may

+not be a member of the Connectivity Standards Alliance). The Connectivity Standards Alliance is not

+responsible and shall not be held responsible in any manner for

+identifying or failing to identify any or all such third party

+intellectual property rights.

+

+This document and the information contained herein are provided on an

+"AS IS" basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE

+OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD

+PARTIES (INCLUDING WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS

+INCLUDING PATENT, COPYRIGHT OR TRADEMARK RIGHTS) OR (B) ANY IMPLIED

+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE

+OR NON-INFRINGEMENT. IN NO EVENT WILL THE CONNECTIVITY STANDARDS ALLIANCE BE LIABLE

+FOR ANY LOSS OF PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA,

+INTERRUPTION OF BUSINESS, OR FOR ANY OTHER DIRECT, INDIRECT, SPECIAL

+OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY

+KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT OR THE

+INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF

+SUCH LOSS OR DAMAGE.

+

+All company, brand and product names may be trademarks that are the

+sole property of their respective owners.

+

+This legal notice must be included on all copies of this document that

+are made.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0097" name="Messages Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="Updated from SE1.4 version; CCB 1819"/>
+    <revision revision="3" summary="Initial Matter release; renamed from EnergyMessaging to Messages"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0097" name="Messages"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MESS" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="CONF" name="ReceivedConfirmation">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="RESP" name="ConfirmationResponse">
+      <optionalConform>
+        <feature name="CONF"/>
+      </optionalConform>
+    </feature>
+    <feature bit="2" code="RPLY" name="ConfirmationReply">
+      <optionalConform>
+        <feature name="CONF"/>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="PROT" name="ProtectedMessages">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="MessageID" type=""/>
+    <enum name="FutureMessagePreferenceEnum">
+      <item value="0" name="Allowed" summary="Similar messages are allowed">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Increased" summary="Similar messages should be sent more often">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Reduced" summary="Similar messages should be sent less often">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Disallowed" summary="Similar messages should not be sent">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Banned" summary="No further messages should be sent">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="MessagePriorityEnum">
+      <item value="0" name="Low" summary="Message to be transferred with a low level of importance">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Medium" summary="Message to be transferred with a medium level of importance">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="High" summary="Message to be transferred with a high level of importance">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Critical" summary="Message to be transferred with a critical level of importance">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="MessageControlBitmap">
+      <bitfield name="ConfirmationRequired" bit="0" summary="Message requires confirmation from user">
+        <mandatoryConform>
+          <feature name="CONF"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="ResponseRequired" bit="1" summary="Message requires response from user">
+        <mandatoryConform>
+          <feature name="RESP"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="ReplyMessage" bit="2" summary="Message supports reply message from user">
+        <mandatoryConform>
+          <feature name="RPLY"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="MessageConfirmed" bit="3" summary="Message has already been confirmed">
+        <mandatoryConform>
+          <feature name="CONF"/>
+        </mandatoryConform>
+      </bitfield>
+      <bitfield name="MessageProtected" bit="4" summary="Message required PIN/password protection">
+        <mandatoryConform>
+          <feature name="PROT"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+    <struct name="MessageResponseOptionStruct">
+      <field id="0" name="MessageResponseID" type="uint32">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="Label" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </struct>
+    <struct name="MessageStruct">
+      <field id="0" name="MessageID" type="MessageID">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Priority" type="MessagePriorityEnum" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MessageControl" type="MessageControlBitmap" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="StartTime" type="epoch-s" default="0">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Duration" type="uint64" default="0">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="MessageText" type="string">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="6" name="Responses" type="list" default="empty">
+        <entry type="MessageResponseOptionStruct"/>
+        <access fabricSensitive="true"/>
+        <mandatoryConform>
+          <feature name="RESP"/>
+        </mandatoryConform>
+        <constraint type="maxCount" value="4"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Messages" type="list" default="empty">
+      <entry type="MessageStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="8"/>
+    </attribute>
+    <attribute id="0x0001" name="ActiveMessageIDs" type="list" default="empty">
+      <entry type="MessageID"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="8"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="PresentMessagesRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="MessageID" type="MessageID">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Priority" type="MessagePriorityEnum" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="MessageControl" type="MessageControlBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="StartTime" type="epoch-s" default="0">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="Duration" type="uint64" default="0">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="MessageText" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="6" name="Responses" type="list" default="empty">
+        <entry type="MessageResponseOptionStruct"/>
+        <mandatoryConform>
+          <feature name="RESP"/>
+        </mandatoryConform>
+        <constraint type="maxCount" value="4"/>
+      </field>
+    </command>
+    <command id="0x01" name="CancelMessagesRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="MessageIDs" type="list">
+        <entry type="MessageID"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="MessageQueued" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="MessageID" type="MessageID">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="MessagePresented" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="MessageID" type="MessageID">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="MessageComplete" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="MessageID" type="MessageID">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ResponseID" type="uint32" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="RESP"/>
+        </mandatoryConform>
+      </field>
+      <field id="2" name="Reply" type="string" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform>
+          <feature name="RPLY"/>
+        </mandatoryConform>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="3" name="FutureMessagesPreference" type="FutureMessagePreferenceEnum" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/MicrowaveOvenControl.xml b/data_model/in_progress/clusters/MicrowaveOvenControl.xml
new file mode 100644
index 0000000..2169f7b
--- /dev/null
+++ b/data_model/in_progress/clusters/MicrowaveOvenControl.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005F" name="Microwave Oven Control Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x005F" name="Microwave Oven Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MWOCTRL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PWRNUM" name="PowerAsNumber" summary="Power is specified as a unitless number or a percentage">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="1" code="WATTS" name="PowerInWatts" summary="Power is specified in Watts">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform choice="a"/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="PWRLMTS" name="PowerNumberLimits" summary="Supports the limit attributes used with the PWRNUM feature">
+      <optionalConform>
+        <feature name="PWRNUM"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="CookTime" type="elapsed-s" default="30">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="MaxCookTime"/>
+    </attribute>
+    <attribute id="0x0001" name="MaxCookTime" type="elapsed-s" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="1" to="86400"/>
+    </attribute>
+    <attribute id="0x0002" name="PowerSetting" type="uint8" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PWRNUM"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="MinPower" type="uint8" default="10">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PWRLMTS"/>
+      </mandatoryConform>
+      <constraint type="between" from="1" to="99"/>
+    </attribute>
+    <attribute id="0x0004" name="MaxPower" type="uint8" default="100">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PWRLMTS"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinPower + 1" to="100"/>
+    </attribute>
+    <attribute id="0x0005" name="PowerStep" type="uint8" default="10">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PWRLMTS"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="SupportedWatts" type="list" default="MS">
+      <entry type="uint16"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="WATTS"/>
+        </mandatoryConform>
+      </otherwiseConform>
+      <constraint type="countBetween" from="1" to="10"/>
+    </attribute>
+    <attribute id="0x0007" name="SelectedWattIndex" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <feature name="WATTS"/>
+        </mandatoryConform>
+      </otherwiseConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0008" name="WattRating" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SetCookingParameters" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="CookMode" type="uint8" default="desc">
+        <optionalConform choice="b" more="true"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="CookTime" type="elapsed-s" default="30">
+        <optionalConform choice="b" more="true"/>
+        <constraint type="between" from="1" to="MaxCookTime"/>
+      </field>
+      <field id="2" name="PowerSetting" type="uint8" default="MaxPower">
+        <optionalConform choice="b" more="true">
+          <feature name="PWRNUM"/>
+        </optionalConform>
+        <constraint type="between" from="MinPower" to="MaxPower"/>
+      </field>
+      <field id="3" name="WattSettingIndex" type="uint8" default="MS">
+        <optionalConform choice="b" more="true">
+          <feature name="WATTS"/>
+        </optionalConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="StartAfterSetting" type="bool" default="false">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="AddMoreTime" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+      <field id="0" name="TimeToAdd" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="MaxCookTime"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ModeBase.xml b/data_model/in_progress/clusters/ModeBase.xml
new file mode 100644
index 0000000..c874eee
--- /dev/null
+++ b/data_model/in_progress/clusters/ModeBase.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Mode Base Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="ChangeToModeResponse command: StatusText must be provided for InvalidInMode status.
+             Require at least one standard mode tag. Define reserved ranges for base/derived clusters"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId name="Mode Base"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MODB" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label" type="string" default="MS">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="1" name="Mode" type="uint8" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags" type="list" default="MS">
+        <entry type="ModeTagStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+    </struct>
+    <struct name="ModeTagStruct">
+      <field id="0" name="MfgCode" type="vendor-id">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Value" type="enum16">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes" type="list" default="MS">
+      <entry type="ModeOptionStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="2" to="255"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode" type="uint8" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode" type="uint8" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="DEPONOFF"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ChangeToMode" direction="commandToServer" response="ChangeToModeResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="NewMode" type="uint8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="ChangeToModeResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="enum8">
+        <enum>
+          <item from="0x00" to="0x3F" name="CommonCodes" summary="Common standard values defined in the generic Mode Base cluster specification.">
+            <mandatoryConform/>
+          </item>
+          <item from="0x40" to="0x7F" name="DerivedClusterCodes" summary="Derived cluster specific standard values defined in the derived Mode Base cluster specification.">
+            <mandatoryConform/>
+          </item>
+          <item from="0x80" to="0xBF" name="MfgCodes" summary="Manufacturer specific values. For the derived Mode Base cluster instances, these are manufacturer specific under the derived cluster.">
+            <mandatoryConform/>
+          </item>
+        </enum>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="StatusText" type="string">
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ModeSelect.xml b/data_model/in_progress/clusters/ModeSelect.xml
new file mode 100644
index 0000000..6e6f062
--- /dev/null
+++ b/data_model/in_progress/clusters/ModeSelect.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0050" name="Mode Select Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="The MfgCode field was marked non-nullable. Updated the related text. Reorder sections."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0050" name="Mode Select"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MOD" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label" type="string" default="MS">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="1" name="Mode" type="uint8" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SemanticTags" type="list" default="MS">
+        <entry type="SemanticTagStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="64"/>
+      </field>
+    </struct>
+    <struct name="SemanticTagStruct">
+      <field id="0" name="MfgCode" type="vendor-id">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Value" type="enum16">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Description" type="string" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="64"/>
+    </attribute>
+    <attribute id="0x0001" name="StandardNamespace" type="enum16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="SupportedModes" type="list" default="MS">
+      <entry type="ModeOptionStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="255"/>
+    </attribute>
+    <attribute id="0x0003" name="CurrentMode" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="StartUpMode" type="uint8" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="OnMode" type="uint8" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="DEPONOFF"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ChangeToMode" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="NewMode" type="uint8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_DeviceEnergyManagement.xml b/data_model/in_progress/clusters/Mode_DeviceEnergyManagement.xml
new file mode 100644
index 0000000..b991a36
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_DeviceEnergyManagement.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009F" name="Device Energy Management Mode Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added DEPONOFF Feature"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009F" name="Device Energy Management Mode">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="DEMM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_Dishwasher.xml b/data_model/in_progress/clusters/Mode_Dishwasher.xml
new file mode 100644
index 0000000..8069fdd
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_Dishwasher.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0059" name="Dishwasher Mode Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="ChangeToModeResponse command: StatusText must be provided for InvalidInMode status"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0059" name="Dishwasher Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="DISHM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_EVSE.xml b/data_model/in_progress/clusters/Mode_EVSE.xml
new file mode 100644
index 0000000..fddd0e0
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_EVSE.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009D" name="Energy EVSE Mode Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Disallowed OnMode and StartUpMode attributes"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009D" name="Energy EVSE Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="EEVSEM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_LaundryWasher.xml b/data_model/in_progress/clusters/Mode_LaundryWasher.xml
new file mode 100644
index 0000000..444d536
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_LaundryWasher.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0051" name="Laundry Washer Mode Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="ChangeToModeResponse command: StatusText must be provided for InvalidInMode status"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0051" name="Laundry Washer Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="LWM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_MicrowaveOven.xml b/data_model/in_progress/clusters/Mode_MicrowaveOven.xml
new file mode 100644
index 0000000..b5076d8
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_MicrowaveOven.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005E" name="Microwave Oven Mode Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x005E" name="Microwave Oven Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="MWOM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ChangeToMode">
+      <disallowConform/>
+    </command>
+    <command id="0x01" name="ChangeToModeResponse">
+      <disallowConform/>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_Oven.xml b/data_model/in_progress/clusters/Mode_Oven.xml
new file mode 100644
index 0000000..f7e8c8a
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_Oven.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0049" name="Oven Mode Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0049" name="Oven Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="OTCCM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_RVCClean.xml b/data_model/in_progress/clusters/Mode_RVCClean.xml
new file mode 100644
index 0000000..26b5d15
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_RVCClean.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0055" name="RVC Clean Mode Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add constraint about changing cleaning modes while the RVC Run Mode cluster is in a non-Idle mode. ChangeToModeResponse command: StatusText must be provided for InvalidInMode status. Deprecate the OnMode attribute and the related feature map bit."/>
+    <revision revision="3" summary="Remove constraint on changing cleaning modes while the RVC Run Mode cluster is in a non-Idle mode. Continue to allow InvalidInMode response for devices that do not support such mode changes."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0055" name="RVC Clean Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="RVCCLEANM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <deprecateConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_RVCRun.xml b/data_model/in_progress/clusters/Mode_RVCRun.xml
new file mode 100644
index 0000000..ad0d760
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_RVCRun.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0054" name="RVC Run Mode Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add constraint about switching from non-Idle to non-Idle modes. ChangeToModeResponse command: StatusText must be provided for InvalidInMode status. Deprecate the OnMode attribute and the related feature map bit. Add the Mapping mode tag."/>
+    <revision revision="3" summary="Remove constraint on changing cleaning modes while the RVC Run Mode cluster is in a non-Idle mode. Continue to allow InvalidInMode response for devices that do not support such mode changes."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0054" name="RVC Run Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="RVCRUNM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <deprecateConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_Refrigerator.xml b/data_model/in_progress/clusters/Mode_Refrigerator.xml
new file mode 100644
index 0000000..84410d1
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_Refrigerator.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0052" name="Refrigerator And Temperature Controlled Cabinet Mode Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="ChangeToModeResponse command: StatusText must be provided for InvalidInMode status"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0052" name="Refrigerator And Temperature Controlled Cabinet Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="TCCM" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Mode_WaterHeater.xml b/data_model/in_progress/clusters/Mode_WaterHeater.xml
new file mode 100644
index 0000000..5aaf1d2
--- /dev/null
+++ b/data_model/in_progress/clusters/Mode_WaterHeater.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009E" name="Water Heater Mode Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009E" name="Water Heater Mode"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="WHM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <struct name="ModeOptionStruct">
+      <field id="0" name="Label">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Mode">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ModeTags">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="8"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/NetworkCommissioningCluster.xml b/data_model/in_progress/clusters/NetworkCommissioningCluster.xml
new file mode 100644
index 0000000..1a511ed
--- /dev/null
+++ b/data_model/in_progress/clusters/NetworkCommissioningCluster.xml
@@ -0,0 +1,513 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0031" name="Network Commissioning Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Support determining capabilities for Wi-Fi and Thread interfaces. Additional Wi-Fi directed scanning requirements."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0031" name="Network Commissioning"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="CNET" scope="Node"/>
+  <features>
+    <feature bit="0" code="WI" name="WiFiNetworkInterface" summary="Wi-Fi related features">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="1" code="TH" name="ThreadNetworkInterface" summary="Thread related features">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="2" code="ET" name="EthernetNetworkInterface" summary="Ethernet related features">
+      <optionalConform choice="a"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="NetworkCommissioningStatusEnum">
+      <item value="0" name="Success" summary="OK, no error">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="OutOfRange" summary="[[ref_OutOfRange]] Value Outside Range">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="BoundsExceeded" summary="[[ref_BoundsExceeded]] A collection would exceed its size limit">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="NetworkIDNotFound" summary="[[ref_NetworkIdNotFound]] The NetworkID is not among the collection of added networks">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="DuplicateNetworkID" summary="[[ref_DuplicateNetworkId]] The NetworkID is already among the collection of added networks">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="NetworkNotFound" summary="[[ref_NetworkNotFound]] Cannot find AP: SSID Not found">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="RegulatoryError" summary="[[ref_RegulatoryError]] Cannot find AP: Mismatch on band/channels/regulatory domain / 2.4GHz vs 5GHz">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="AuthFailure" summary="[[ref_AuthFailure]] Cannot associate due to authentication failure">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="UnsupportedSecurity" summary="[[ref_UnsupportedSecurity]] Cannot associate due to unsupported security mode">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="OtherConnectionFailure" summary="[[ref_OtherConnectionFailure]] Other association failure">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="IPV6Failed" summary="[[ref_Ipv6Failed]] Failure to generate an IPv6 address">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="IPBindFailed" summary="[[ref_IpBindFailed]] Failure to bind Wi-Fi +&lt;-&gt;+ IP interfaces">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="UnknownError" summary="[[ref_UnknownError]] Unknown error">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="WiFiBandEnum">
+      <item value="0" name="2G4" summary="2.4GHz - 2.401GHz to 2.495GHz (802.11b/g/n/ax)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+      <item value="1" name="3G65" summary="3.65GHz - 3.655GHz to 3.695GHz (802.11y)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+      <item value="2" name="5G" summary="5GHz - 5.150GHz to 5.895GHz (802.11a/n/ac/ax)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+      <item value="3" name="6G" summary="6GHz - 5.925GHz to 7.125GHz (802.11ax / Wi-Fi 6E)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+      <item value="4" name="60G" summary="60GHz - 57.24GHz to 70.20GHz (802.11ad/ay)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+      <item value="5" name="1G" summary="Sub-1GHz - 755MHz to 931MHz (802.11ah)">
+        <optionalConform choice="b" more="true"/>
+      </item>
+    </enum>
+    <bitmap name="ThreadCapabilitiesBitmap">
+      <bitfield name="IsBorderRouterCapable" bit="0" summary="Thread Border Router functionality is present">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="IsRouterCapable" bit="1" summary="Router mode is supported (interface could be in router or REED mode)">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="IsSleepyEndDeviceCapable" bit="2" summary="Sleepy end-device mode is supported">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="IsFullThreadDevice" bit="3" summary="Device is a full Thread device (opposite of Minimal Thread Device)">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="IsSynchronizedSleepyEndDeviceCapable" bit="4" summary="Synchronized sleepy end-device mode is supported">
+        <optionalConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="WiFiSecurityBitmap">
+      <bitfield name="Unencrypted" bit="0" summary="Supports unencrypted Wi-Fi">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="WEP" bit="1" summary="Supports Wi-Fi using WEP security">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="WPA-PERSONAL" bit="2" summary="Supports Wi-Fi using WPA-Personal security">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="WPA2-PERSONAL" bit="3" summary="Supports Wi-Fi using WPA2-Personal security">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="WPA3-PERSONAL" bit="4" summary="Supports Wi-Fi using WPA3-Personal security">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="NetworkInfoStruct">
+      <field id="0" name="NetworkID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="1" to="32"/>
+      </field>
+      <field id="1" name="Connected" type="bool">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="ThreadInterfaceScanResultStruct">
+      <field id="0" name="PanId" type="uint16">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+        <constraint type="between" from="0" to="65534"/>
+      </field>
+      <field id="1" name="ExtendedPanId" type="uint64">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+      <field id="2" name="NetworkName" type="string">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+        <constraint type="lengthBetween" from="1" to="16"/>
+      </field>
+      <field id="3" name="Channel" type="uint16">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+      <field id="4" name="Version" type="uint8">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+      <field id="5" name="ExtendedAddress" type="hwadr">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+      <field id="6" name="RSSI" type="int8">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+      <field id="7" name="LQI" type="uint8">
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+      </field>
+    </struct>
+    <struct name="WiFiInterfaceScanResultStruct">
+      <field id="0" name="Security" type="WiFiSecurityBitmap">
+        <mandatoryConform>
+          <feature name="WI"/>
+        </mandatoryConform>
+      </field>
+      <field id="1" name="SSID" type="octstr">
+        <mandatoryConform>
+          <feature name="WI"/>
+        </mandatoryConform>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="2" name="BSSID" type="octstr">
+        <mandatoryConform>
+          <feature name="WI"/>
+        </mandatoryConform>
+        <constraint type="maxLength" value="6"/>
+      </field>
+      <field id="3" name="Channel" type="uint16">
+        <mandatoryConform>
+          <feature name="WI"/>
+        </mandatoryConform>
+      </field>
+      <field id="4" name="WiFiBand" type="WiFiBandEnum">
+        <optionalConform>
+          <feature name="WI"/>
+        </optionalConform>
+      </field>
+      <field id="5" name="RSSI" type="int8">
+        <optionalConform>
+          <feature name="WI"/>
+        </optionalConform>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="MaxNetworks" type="uint8">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0001" name="Networks" type="list" default="empty">
+      <entry type="NetworkInfoStruct"/>
+      <access read="true" readPrivilege="admin"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="MaxNetworks"/>
+    </attribute>
+    <attribute id="0x0002" name="ScanMaxTimeSeconds" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="ConnectMaxTimeSeconds" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="InterfaceEnabled" type="bool" default="true">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="LastNetworkingStatus" type="NetworkCommissioningStatusEnum" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0006" name="LastNetworkID" type="octstr" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="lengthBetween" from="1" to="32"/>
+    </attribute>
+    <attribute id="0x0007" name="LastConnectErrorValue" type="int32" default="null">
+      <access read="true" readPrivilege="admin"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0008" name="SupportedWiFiBands" type="list" default="MS">
+      <entry type="WiFiBandEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="WI"/>
+      </mandatoryConform>
+      <constraint type="minCount" value="1"/>
+    </attribute>
+    <attribute id="0x0009" name="SupportedThreadFeatures" type="ThreadCapabilitiesBitmap" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000A" name="ThreadVersion" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TH"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ScanNetworks" direction="commandToServer" response="ScanNetworksResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="SSID" type="octstr" default="null">
+        <quality nullable="true"/>
+        <optionalConform>
+          <feature name="WI"/>
+        </optionalConform>
+        <constraint type="lengthBetween" from="1" to="32"/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="ScanNetworksResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkingStatus" type="NetworkCommissioningStatusEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="DebugText" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+      <field id="2" name="WiFiScanResults" type="list">
+        <entry type="WiFiInterfaceScanResultStruct"/>
+        <mandatoryConform>
+          <feature name="WI"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="ThreadScanResults" type="list">
+        <entry type="ThreadInterfaceScanResultStruct"/>
+        <mandatoryConform>
+          <feature name="TH"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x02" name="AddOrUpdateWiFiNetwork" direction="commandToServer" response="NetworkConfigResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="WI"/>
+      </mandatoryConform>
+      <field id="0" name="SSID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="Credentials" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="2" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x03" name="AddOrUpdateThreadNetwork" direction="commandToServer" response="NetworkConfigResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="TH"/>
+      </mandatoryConform>
+      <field id="0" name="OperationalDataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x04" name="RemoveNetwork" direction="commandToServer" response="NetworkConfigResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="1" to="32"/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x05" name="NetworkConfigResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkingStatus" type="NetworkCommissioningStatusEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="DebugText" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+      <field id="2" name="NetworkIndex" type="uint8">
+        <optionalConform/>
+        <constraint type="between" from="0" to="MaxNetworks - 1"/>
+      </field>
+    </command>
+    <command id="0x06" name="ConnectNetwork" direction="commandToServer" response="ConnectNetworkResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="1" to="32"/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x07" name="ConnectNetworkResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkingStatus" type="NetworkCommissioningStatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DebugText" type="string">
+        <optionalConform/>
+      </field>
+      <field id="2" name="ErrorValue" type="int32">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x08" name="ReorderNetwork" direction="commandToServer" response="NetworkConfigResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <orTerm>
+          <feature name="WI"/>
+          <feature name="TH"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="NetworkID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="1" to="32"/>
+      </field>
+      <field id="1" name="NetworkIndex" type="uint8">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OTAProvider.xml b/data_model/in_progress/clusters/OTAProvider.xml
new file mode 100644
index 0000000..f300a41
--- /dev/null
+++ b/data_model/in_progress/clusters/OTAProvider.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0029" name="OTA Software Update Provider Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0029" name="OTA Software Update Provider"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="OTAP" scope="Node"/>
+  <dataTypes>
+    <enum name="ApplyUpdateActionEnum">
+      <item value="0" name="Proceed" summary="Apply the update.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AwaitNextAction" summary="Wait at least the given delay time.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Discontinue" summary="The OTA Provider is conveying a desire to rescind a previously provided Software Image.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DownloadProtocolEnum">
+      <item value="0" name="BDXSynchronous" summary="Indicates support for synchronous BDX.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="BDXAsynchronous" summary="Indicates support for asynchronous BDX.">
+        <optionalConform/>
+      </item>
+      <item value="2" name="HTTPS" summary="Indicates support for HTTPS.">
+        <optionalConform/>
+      </item>
+      <item value="3" name="VendorSpecific" summary="Indicates support for vendor specific protocol.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="StatusEnum">
+      <item value="0" name="UpdateAvailable" summary="Indicates that the OTA Provider has an update available.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Busy" summary="Indicates OTA Provider may have an update, but it is not ready yet.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NotAvailable" summary="Indicates that there is definitely no update currently available from the OTA Provider.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="DownloadProtocolNotSupported" summary="Indicates that the requested download protocol is not supported by the OTA Provider.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="QueryImage" direction="commandToServer" response="QueryImageResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="VendorID" type="vendor-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ProductID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SoftwareVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="ProtocolsSupported" type="list">
+        <entry type="DownloadProtocolEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+      <field id="4" name="HardwareVersion" type="uint16">
+        <optionalConform/>
+      </field>
+      <field id="5" name="Location" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="2"/>
+      </field>
+      <field id="6" name="RequestorCanConsent" type="bool" default="False">
+        <optionalConform/>
+      </field>
+      <field id="7" name="MetadataForProvider" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+    </command>
+    <command id="0x01" name="QueryImageResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DelayedActionTime" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="ImageURI" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+      <field id="3" name="SoftwareVersion" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="4" name="SoftwareVersionString" type="string">
+        <optionalConform/>
+        <constraint type="lengthBetween" from="1" to="64"/>
+      </field>
+      <field id="5" name="UpdateToken" type="octstr">
+        <optionalConform/>
+        <constraint type="lengthBetween" from="8" to="32"/>
+      </field>
+      <field id="6" name="UserConsentNeeded" type="bool" default="False">
+        <optionalConform/>
+      </field>
+      <field id="7" name="MetadataForRequestor" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+    </command>
+    <command id="0x02" name="ApplyUpdateRequest" direction="commandToServer" response="ApplyUpdateResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="UpdateToken" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="8" to="32"/>
+      </field>
+      <field id="1" name="NewVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="ApplyUpdateResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Action" type="ApplyUpdateActionEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DelayedActionTime" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="NotifyUpdateApplied" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="UpdateToken" type="octstr">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="8" to="32"/>
+      </field>
+      <field id="1" name="SoftwareVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OTARequestor.xml b/data_model/in_progress/clusters/OTARequestor.xml
new file mode 100644
index 0000000..ea7ec03
--- /dev/null
+++ b/data_model/in_progress/clusters/OTARequestor.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002A" name="OTA Software Update Requestor Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002A" name="OTA Software Update Requestor"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="OTAR" scope="Node"/>
+  <dataTypes>
+    <enum name="AnnouncementReasonEnum">
+      <item value="0" name="SimpleAnnouncement" summary="An OTA Provider is announcing its presence.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="UpdateAvailable" summary="An OTA Provider is announcing, either to a single Node or to a group of Nodes, that a new Software Image MAY be available.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="UrgentUpdateAvailable" summary="An OTA Provider is announcing, either to a single Node or to a group of Nodes, that a new Software Image MAY be available,
+                                   which contains an update that needs to be applied urgently.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ChangeReasonEnum">
+      <item value="0" name="Unknown" summary="The reason for a state change is unknown.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Success" summary="The reason for a state change is the success of a prior operation.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Failure" summary="The reason for a state change is the failure of a prior operation.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="TimeOut" summary="The reason for a state change is a time-out.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="DelayByProvider" summary="The reason for a state change is a request by the OTA Provider to wait.">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="UpdateStateEnum">
+      <item value="0" name="Unknown" summary="Current state is not yet determined.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Idle" summary="Indicate a Node not yet in the process of software update.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Querying" summary="Indicate a Node in the process of querying an OTA Provider.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="DelayedOnQuery" summary="Indicate a Node waiting after a Busy response.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Downloading" summary="Indicate a Node currently in the process of downloading a software update.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Applying" summary="Indicate a Node currently in the process of verifying and applying a software update.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="DelayedOnApply" summary="Indicate a Node waiting caused by AwaitNextAction response.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="RollingBack" summary="Indicate a Node in the process of recovering to a previous version.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="DelayedOnUserConsent" summary="Indicate a Node is capable of user consent.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="ProviderLocation">
+      <field id="1" name="ProviderNodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Endpoint" type="endpoint-no">
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="DefaultOTAProviders" type="list" default="[]">
+      <entry type="ProviderLocation"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="admin" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="UpdatePossible" type="bool" default="True">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="UpdateState" type="UpdateStateEnum" default="Unknown">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="UpdateStateProgress" type="uint8" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="0" to="100"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AnnounceOTAProvider" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <optionalConform/>
+      <field id="0" name="ProviderNodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="VendorID" type="vendor-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="AnnouncementReason" type="AnnouncementReasonEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="MetadataForNode" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="512"/>
+      </field>
+      <field id="4" name="Endpoint" type="endpoint-no">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="StateTransition" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="PreviousState" type="UpdateStateEnum" default="Unknown">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NewState" type="UpdateStateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Reason" type="ChangeReasonEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="TargetSoftwareVersion" type="uint32" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="VersionApplied" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SoftwareVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ProductID" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="DownloadError" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="SoftwareVersion" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="BytesDownloaded" type="uint64">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ProgressPercent" type="uint8" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="100"/>
+      </field>
+      <field id="3" name="PlatformCode" type="int64" default="null">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OccupancySensing.xml b/data_model/in_progress/clusters/OccupancySensing.xml
new file mode 100644
index 0000000..4cd027d
--- /dev/null
+++ b/data_model/in_progress/clusters/OccupancySensing.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0406" name="Occupancy Sensing Cluster" revision="5">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="Physical Contact Occupancy feature with mandatory OccupancySensorTypeBitmap"/>
+    <revision revision="3" summary="New data model format and notation"/>
+    <revision revision="4" summary="Remove nullable from PhysicalContact delay attributes and ability to not report transitions"/>
+    <revision revision="5" summary="Rework to
+             add modalities: radar-, ambient-sensing- and vision-based sensors;
+             add sensitivity setting (via co-located BooleanStateConfiguration cluster on same endpoint);
+             add new attribute for tuning the sensor's reporting;
+             add event OccupancyChanged;
+             describe how to accommodate legacy clients"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0406" name="Occupancy Sensing"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="OCC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="OTHER" name="Other" summary="Supports sensing using a modality not listed in the other bits">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="PIR" name="PassiveInfrared" summary="Supports sensing using PIR (Passive InfraRed)">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="US" name="Ultrasonic" summary="Supports sensing using UltraSound">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="3" code="PHY" name="PhysicalContact" summary="Supports sensing using a physical contact">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="4" code="AIR" name="ActiveInfrared" summary="Supports sensing using Active InfraRed measurement (e.g. time-of-flight or transflective/reflective IR sensing)">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="5" code="RAD" name="Radar" summary="Supports sensing using radar waves (microwave)">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="6" code="RFS" name="RFSensing" summary="Supports sensing based on RF signal analysis">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="7" code="VIS" name="Vision" summary="Supports sensing based on analyzing images">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="OccupancySensorTypeEnum">
+      <item value="0" name="PIR" summary="Indicates a passive infrared sensor.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Ultrasonic" summary="Indicates a ultrasonic sensor.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="PIRAndUltrasonic" summary="Indicates a passive infrared and ultrasonic sensor.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="PhysicalContact" summary="Indicates a physical contact sensor.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="OccupancyBitmap">
+      <bitfield name="Occupied" bit="0" summary="Indicates the sensed occupancy state">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="OccupancySensorTypeBitmap">
+      <bitfield name="PIR" bit="0" summary="Indicates a passive infrared sensor.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Ultrasonic" bit="1" summary="Indicates a ultrasonic sensor.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="PhysicalContact" bit="2" summary="Indicates a physical contact sensor.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="HoldTimeLimitsStruct">
+      <field id="0" name="HoldTimeMin" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="HoldTimeMax"/>
+      </field>
+      <field id="1" name="HoldTimeMax" type="uint16">
+        <mandatoryConform/>
+        <constraint type="min" value="HoldTimeMin"/>
+      </field>
+      <field id="2" name="HoldTimeDefault" type="uint16">
+        <mandatoryConform/>
+        <constraint type="between" from="HoldTimeMin" to="HoldTimeMax"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Occupancy" type="OccupancyBitmap">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="0" to="1"/>
+    </attribute>
+    <attribute id="0x0001" name="OccupancySensorType" type="OccupancySensorTypeEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform/>
+        <deprecateConform/>
+      </otherwiseConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="OccupancySensorTypeBitmap" type="OccupancySensorTypeBitmap">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform/>
+        <deprecateConform/>
+      </otherwiseConform>
+      <constraint type="between" from="0" to="7"/>
+    </attribute>
+    <attribute id="0x0003" name="HoldTime" type="uint16">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="HoldTimeLimits" type="HoldTimeLimitsStruct">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <attribute name="HoldTime"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0010" name="PIROccupiedToUnoccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <orTerm>
+              <feature name="PIR"/>
+              <andTerm>
+                <notTerm>
+                  <feature name="PIR"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="US"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="PHY"/>
+                </notTerm>
+              </andTerm>
+            </orTerm>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0011" name="PIRUnoccupiedToOccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <andTerm>
+              <attribute name="HoldTime"/>
+              <orTerm>
+                <feature name="PIR"/>
+                <andTerm>
+                  <notTerm>
+                    <feature name="PIR"/>
+                  </notTerm>
+                  <notTerm>
+                    <feature name="US"/>
+                  </notTerm>
+                  <notTerm>
+                    <feature name="PHY"/>
+                  </notTerm>
+                </andTerm>
+              </orTerm>
+            </andTerm>
+            <attribute name="PIRUnoccupiedToOccupiedThreshold"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <orTerm>
+              <feature name="PIR"/>
+              <andTerm>
+                <notTerm>
+                  <feature name="PIR"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="US"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="PHY"/>
+                </notTerm>
+              </andTerm>
+            </orTerm>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0012" name="PIRUnoccupiedToOccupiedThreshold" type="uint8" default="1">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <andTerm>
+              <attribute name="HoldTime"/>
+              <orTerm>
+                <feature name="PIR"/>
+                <andTerm>
+                  <notTerm>
+                    <feature name="PIR"/>
+                  </notTerm>
+                  <notTerm>
+                    <feature name="US"/>
+                  </notTerm>
+                  <notTerm>
+                    <feature name="PHY"/>
+                  </notTerm>
+                </andTerm>
+              </orTerm>
+            </andTerm>
+            <attribute name="PIRUnoccupiedToOccupiedDelay"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <orTerm>
+              <feature name="PIR"/>
+              <andTerm>
+                <notTerm>
+                  <feature name="PIR"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="US"/>
+                </notTerm>
+                <notTerm>
+                  <feature name="PHY"/>
+                </notTerm>
+              </andTerm>
+            </orTerm>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+      <constraint type="between" from="1" to="254"/>
+    </attribute>
+    <attribute id="0x0020" name="UltrasonicOccupiedToUnoccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="US"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0021" name="UltrasonicUnoccupiedToOccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="US"/>
+            <attribute name="UltrasonicUnoccupiedToOccupiedThreshold"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="US"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0022" name="UltrasonicUnoccupiedToOccupiedThreshold" type="uint8" default="1">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="US"/>
+            <attribute name="UltrasonicUnoccupiedToOccupiedDelay"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="US"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+      <constraint type="between" from="1" to="254"/>
+    </attribute>
+    <attribute id="0x0030" name="PhysicalContactOccupiedToUnoccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="PHY"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0031" name="PhysicalContactUnoccupiedToOccupiedDelay" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="PHY"/>
+            <attribute name="PhysicalContactUnoccupiedToOccupiedThreshold"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="PHY"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0032" name="PhysicalContactUnoccupiedToOccupiedThreshold" type="uint8" default="1">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="PHY"/>
+            <attribute name="PhysicalContactUnoccupiedToOccupiedDelay"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <attribute name="HoldTime"/>
+            <feature name="PHY"/>
+          </andTerm>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+      <constraint type="between" from="1" to="254"/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="OccupancyChanged" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="Occupancy" type="OccupancyBitmap">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OnOff.xml b/data_model/in_progress/clusters/OnOff.xml
new file mode 100644
index 0000000..b1ea6eb
--- /dev/null
+++ b/data_model/in_progress/clusters/OnOff.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021-2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0006" name="On/Off Cluster" revision="6">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 1555"/>
+    <revision revision="2" summary="ZLO 1.0: StartUpOnOff"/>
+    <revision revision="3" summary="FeatureMap global attribute support with Level Control and Lighting feature"/>
+    <revision revision="4" summary="New data model format and notation"/>
+    <revision revision="5" summary="Addition of Dead Front behavior and associated FeatureMap entry"/>
+    <revision revision="6" summary="Addition of OffOnly feature and associated FeatureMap entry"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0006" name="On/Off"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="OO" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="LT" name="Lighting" summary="Behavior that supports lighting applications.">
+      <optionalConform>
+        <notTerm>
+          <feature name="OFFONLY"/>
+        </notTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="1" code="DF" name="DeadFrontBehavior" summary="Device has DeadFrontBehavior Feature">
+      <optionalConform>
+        <notTerm>
+          <feature name="OFFONLY"/>
+        </notTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="2" code="OFFONLY" name="OffOnly" summary="Device supports the OffOnly Feature feature">
+      <optionalConform>
+        <notTerm>
+          <orTerm>
+            <feature name="LT"/>
+            <feature name="DF"/>
+          </orTerm>
+        </notTerm>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="DelayedAllOffEffectVariantEnum">
+      <item value="0x00" name="DelayedOffFastFade" summary="Fade to off in 0.8 seconds">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="NoFade" summary="No fade">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="DelayedOffSlowFade" summary="50% dim down in 0.8 seconds then fade to off in 12 seconds">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DyingLightEffectVariantEnum">
+      <item value="0x00" name="DyingLightFadeOff" summary="20% dim up in 0.5s then fade to off in 1 second">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="EffectIdentifierEnum">
+      <item value="0x00" name="DelayedAllOff" summary="Delayed All Off">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="DyingLight" summary="Dying Light">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="StartUpOnOffEnum">
+      <item value="0" name="Off" summary="Set the OnOff attribute to FALSE">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="On" summary="Set the OnOff attribute to TRUE">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Toggle" summary="If the previous value of the OnOff attribute is
+                   equal to FALSE, set the OnOff attribute to TRUE.
+                   If the previous value of the OnOff attribute is
+                   equal to TRUE, set the OnOff attribute to FALSE
+                   (toggle).">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="OnOffControlBitmap">
+      <bitfield name="AcceptOnlyWhenOn" bit="0" summary="Indicates a command is only accepted when in On state.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="OnOff" type="bool" default="FALSE">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="true" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x4000" name="GlobalSceneControl" type="bool" default="TRUE">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4001" name="OnTime" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4002" name="OffWaitTime" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x4003" name="StartUpOnOff" type="StartUpOnOffEnum" default="MS">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Off" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="On" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <notTerm>
+          <feature name="OFFONLY"/>
+        </notTerm>
+      </mandatoryConform>
+    </command>
+    <command id="0x02" name="Toggle" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <notTerm>
+          <feature name="OFFONLY"/>
+        </notTerm>
+      </mandatoryConform>
+    </command>
+    <command id="0x40" name="OffWithEffect" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+      <field id="0" name="EffectIdentifier" type="EffectIdentifierEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="EffectVariant" type="enum8" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x41" name="OnWithRecallGlobalScene" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x42" name="OnWithTimedOff" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="LT"/>
+      </mandatoryConform>
+      <field id="0" name="OnOffControl" type="OnOffControlBitmap">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="1"/>
+      </field>
+      <field id="1" name="OnTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="0xFFFE"/>
+      </field>
+      <field id="2" name="OffWaitTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="0xFFFE"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OperationalCredentialCluster.xml b/data_model/in_progress/clusters/OperationalCredentialCluster.xml
new file mode 100644
index 0000000..338a8af
--- /dev/null
+++ b/data_model/in_progress/clusters/OperationalCredentialCluster.xml
@@ -0,0 +1,325 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Node Operational Credentials Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x003E" name="Operational Credentials"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="OPCREDS" scope="Node"/>
+  <dataTypes>
+    <number name="Attestation Elements" type=""/>
+    <number name="Attestation Information" type=""/>
+    <number name="NOCSR Elements" type=""/>
+    <number name="NOCSR Information" type=""/>
+    <number name="RESP_MAX Constant" type=""/>
+    <enum name="CertificateChainTypeEnum">
+      <item value="1" name="DACCertificate" summary="Request the DER-encoded DAC certificate">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="PAICertificate" summary="Request the DER-encoded PAI certificate">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="NodeOperationalCertStatusEnum">
+      <item value="0" name="OK" summary="OK, no error">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="InvalidPublicKey" summary="[[ref_InvalidPublicKey]] Public Key in the NOC does not match the public key in the NOCSR">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="InvalidNodeOpId" summary="[[ref_InvalidOperationalId]] The Node Operational ID in the NOC is not formatted correctly.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="InvalidNOC" summary="[[ref_InvalidNoc]] Any other validation error in NOC chain">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="MissingCsr" summary="[[ref_MissingCsr]] No record of prior CSR for which this NOC could match">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="TableFull" summary="[[ref_TableFull]] NOCs table full, cannot add another one">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="InvalidAdminSubject" summary="[[ref_InvalidAdminSubject]] Invalid CaseAdminSubject field for an AddNOC command.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="Item7" summary="Reserved for future use">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Item8" summary="Reserved for future use">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="FabricConflict" summary="[[ref_FabricConflict]] Trying to AddNOC instead of UpdateNOC against an existing Fabric.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="LabelConflict" summary="[[ref_LabelConflict]] Label already exists on another Fabric.">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="InvalidFabricIndex" summary="[[ref_InvalidFabricIndex]] FabricIndex argument is invalid.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="FabricDescriptorStruct">
+      <field id="1" name="RootPublicKey" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="65"/>
+      </field>
+      <field id="2" name="VendorID" type="vendor-id">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="FabricID" type="fabric-id">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="Label" type="string" default="&quot;">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="NOCStruct">
+      <field id="1" name="NOC" type="octstr">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <field id="2" name="ICAC" type="octstr">
+        <access fabricSensitive="true"/>
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="NOCs" type="list">
+      <entry type="NOCStruct"/>
+      <access read="true" readPrivilege="admin" fabricScoped="true"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="SupportedFabrics"/>
+    </attribute>
+    <attribute id="0x0001" name="Fabrics" type="list">
+      <entry type="FabricDescriptorStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="SupportedFabrics"/>
+    </attribute>
+    <attribute id="0x0002" name="SupportedFabrics" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="5" to="254"/>
+    </attribute>
+    <attribute id="0x0003" name="CommissionedFabrics" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="SupportedFabrics"/>
+    </attribute>
+    <attribute id="0x0004" name="TrustedRootCertificates" type="list">
+      <entry type="octstr">
+        <constraint type="maxLength" value="400"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="SupportedFabrics"/>
+    </attribute>
+    <attribute id="0x0005" name="CurrentFabricIndex" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AttestationRequest" direction="commandToServer" response="AttestationResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="AttestationNonce" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x01" name="AttestationResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="AttestationElements" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="RESP_MAX Constant Type"/>
+      </field>
+      <field id="1" name="AttestationSignature" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </command>
+    <command id="0x02" name="CertificateChainRequest" direction="commandToServer" response="CertificateChainResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="CertificateType" type="CertificateChainTypeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="CertificateChainResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Certificate" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="600"/>
+      </field>
+    </command>
+    <command id="0x04" name="CSRRequest" direction="commandToServer" response="CSRResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="CSRNonce" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+      <field id="1" name="IsForUpdateNOC" type="bool" default="false">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x05" name="CSRResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="NOCSRElements" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="RESP_MAX Constant Type"/>
+      </field>
+      <field id="1" name="AttestationSignature" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </command>
+    <command id="0x06" name="AddNOC" direction="commandToServer" response="NOCResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="NOCValue" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <field id="1" name="ICACValue" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <field id="2" name="IPKValue" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="CaseAdminSubject" type="SubjectID">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="AdminVendorId" type="vendor-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x07" name="UpdateNOC" direction="commandToServer" response="NOCResponse">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="NOCValue" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+      <field id="1" name="ICACValue" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+    </command>
+    <command id="0x08" name="NOCResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="StatusCode" type="NodeOperationalCertStatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="FabricIndex" type="fabric-idx">
+        <optionalConform/>
+        <constraint type="between" from="1" to="254"/>
+      </field>
+      <field id="2" name="DebugText" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="128"/>
+      </field>
+    </command>
+    <command id="0x09" name="UpdateFabricLabel" direction="commandToServer" response="NOCResponse">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="Label" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="32"/>
+      </field>
+    </command>
+    <command id="0x0A" name="RemoveFabric" direction="commandToServer" response="NOCResponse">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="FabricIndex" type="fabric-idx">
+        <mandatoryConform/>
+        <constraint type="between" from="1" to="254"/>
+      </field>
+    </command>
+    <command id="0x0B" name="AddTrustedRootCertificate" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="RootCACertificate" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="400"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OperationalState.xml b/data_model/in_progress/clusters/OperationalState.xml
new file mode 100644
index 0000000..354efa2
--- /dev/null
+++ b/data_model/in_progress/clusters/OperationalState.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0060" name="Operational State Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="The Pause and Resume commands are usable in all compatible states. Define reserved ranges for base/derived clusters."/>
+    <revision revision="3" summary="Changed CountdownTime attribute to Q quality."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0060" name="Operational State"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="OPSTATE" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="ErrorStateEnum">
+      <item from="0x00" to="0x3F" name="GeneralErrors" summary="Generally applicable values for error, defined herein">
+        <mandatoryConform/>
+      </item>
+      <item from="0x40" to="0x7F" name="DerivedClusterErrors" summary="Derived Cluster defined errors">
+        <mandatoryConform/>
+      </item>
+      <item from="0x80" to="0xBF" name="ManufacturerError" summary="Vendor specific errors">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="OperationalStateEnum">
+      <item from="0x00" to="0x3F" name="GeneralStates" summary="Generally applicable values for state, defined herein">
+        <mandatoryConform/>
+      </item>
+      <item from="0x40" to="0x7F" name="DerivedClusterStates" summary="Derived Cluster defined states">
+        <mandatoryConform/>
+      </item>
+      <item from="0x80" to="0xBF" name="ManufacturerStates" summary="Vendor specific states">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="ErrorStateStruct">
+      <field id="0" name="ErrorStateID" type="ErrorStateEnum" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ErrorStateLabel" type="string" default="empty">
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="2" name="ErrorStateDetails" type="string" default="empty">
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </struct>
+    <struct name="OperationalStateStruct">
+      <field id="0" name="OperationalStateID" type="OperationalStateEnum" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="OperationalStateLabel" type="string">
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="PhaseList" type="list" default="MS">
+      <entry type="string">
+        <constraint type="maxLength" value="64"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="32"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentPhase" type="uint8" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="CountdownTime" type="elapsed-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+      <constraint type="max" value="259200"/>
+    </attribute>
+    <attribute id="0x0003" name="OperationalStateList" type="list" default="MS">
+      <entry type="OperationalStateStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="OperationalState" type="OperationalStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="OperationalError" type="ErrorStateStruct">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Pause" direction="commandToServer" response="OperationalCommandResponse">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <command name="Resume"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </command>
+    <command id="0x01" name="Stop" direction="commandToServer" response="OperationalCommandResponse">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <command name="Start"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </command>
+    <command id="0x02" name="Start" direction="commandToServer" response="OperationalCommandResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+    <command id="0x03" name="Resume" direction="commandToServer" response="OperationalCommandResponse">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <command name="Pause"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </command>
+    <command id="0x04" name="OperationalCommandResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <orTerm>
+          <command name="Pause"/>
+          <command name="Stop"/>
+          <command name="Start"/>
+          <command name="Resume"/>
+        </orTerm>
+      </mandatoryConform>
+      <field id="0" name="CommandResponseState" type="ErrorStateStruct">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="OperationalError" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="ErrorState" type="ErrorStateStruct">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="OperationCompletion" priority="info">
+      <access readPrivilege="view"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+      <field id="0" name="CompletionErrorCode" type="enum8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="TotalOperationalTime" type="elapsed-s">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="2" name="PausedTime" type="elapsed-s">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OperationalState_Oven.xml b/data_model/in_progress/clusters/OperationalState_Oven.xml
new file mode 100644
index 0000000..710dea9
--- /dev/null
+++ b/data_model/in_progress/clusters/OperationalState_Oven.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0048" name="Oven Cavity Operational State Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0048" name="Oven Cavity Operational State"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Operational State" role="application" picsCode="OVENOPSTATE" scope="Endpoint"/>
+  <commands>
+    <command id="0x00" name="Pause">
+      <disallowConform/>
+    </command>
+    <command id="0x01" name="Stop"/>
+    <command id="0x02" name="Start"/>
+    <command id="0x03" name="Resume">
+      <disallowConform/>
+    </command>
+    <command id="0x04" name="OperationalCommandResponse"/>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/OperationalState_RVC.xml b/data_model/in_progress/clusters/OperationalState_RVC.xml
new file mode 100644
index 0000000..5d2d28d
--- /dev/null
+++ b/data_model/in_progress/clusters/OperationalState_RVC.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0061" name="RVC Operational State Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="The Pause and Resume commands are usable in all compatible states. Deprecate the Start and Stop commands. Add the GoHome command."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0061" name="RVC Operational State"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Operational State" role="application" picsCode="RVCOPSTATE" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="ErrorStateEnum">
+      <item value="0x40" name="FailedToFindChargingDock" summary="The device has failed to find or reach the charging dock">
+        <mandatoryConform/>
+      </item>
+      <item value="0x41" name="Stuck" summary="The device is stuck and requires manual intervention">
+        <mandatoryConform/>
+      </item>
+      <item value="0x42" name="DustBinMissing" summary="The device has detected that its dust bin is missing">
+        <mandatoryConform/>
+      </item>
+      <item value="0x43" name="DustBinFull" summary="The device has detected that its dust bin is full">
+        <mandatoryConform/>
+      </item>
+      <item value="0x44" name="WaterTankEmpty" summary="The device has detected that its water tank is empty">
+        <mandatoryConform/>
+      </item>
+      <item value="0x45" name="WaterTankMissing" summary="The device has detected that its water tank is missing">
+        <mandatoryConform/>
+      </item>
+      <item value="0x46" name="WaterTankLidOpen" summary="The device has detected that its water tank lid is open">
+        <mandatoryConform/>
+      </item>
+      <item value="0x47" name="MopCleaningPadMissing" summary="The device has detected that its cleaning pad is missing">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="OperationalStateEnum">
+      <item value="0x40" name="SeekingCharger" summary="The device is en route to the charging dock">
+        <mandatoryConform/>
+      </item>
+      <item value="0x41" name="Charging" summary="The device is charging">
+        <mandatoryConform/>
+      </item>
+      <item value="0x42" name="Docked" summary="The device is on the dock, not charging">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <commands>
+    <command id="0x00" name="Pause"/>
+    <command id="0x01" name="Stop">
+      <deprecateConform/>
+    </command>
+    <command id="0x02" name="Start">
+      <deprecateConform/>
+    </command>
+    <command id="0x03" name="Resume"/>
+    <command id="0x04" name="OperationalCommandResponse"/>
+    <command id="0x80" name="GoHome" direction="commandToServer" response="OperationalCommandResponse">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/PowerSourceCluster.xml b/data_model/in_progress/clusters/PowerSourceCluster.xml
new file mode 100644
index 0000000..a0b6b91
--- /dev/null
+++ b/data_model/in_progress/clusters/PowerSourceCluster.xml
@@ -0,0 +1,830 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002F" name="Power Source Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added EndpointList attribute that maps a power source to a list of endpoints"/>
+    <revision revision="3" summary="Added Q quality (replacing C quality) on BatPercentRemaining, BatTimeRemaining and BatTimeToFullCharge"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002F" name="Power Source"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="PS" scope="Node"/>
+  <features>
+    <feature bit="0" code="WIRED" name="Wired" summary="A wired power source">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="BAT" name="Battery" summary="A battery power source">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="RECHG" name="Rechargeable" summary="A rechargeable battery power source">
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="REPLC" name="Replaceable" summary="A replaceable battery power source">
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="BatApprovedChemistryEnum">
+      <item value="0" name="Unspecified" summary="Cell chemistry is unspecified or unknown">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Alkaline" summary="Cell chemistry is alkaline">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="LithiumCarbonFluoride" summary="Cell chemistry is lithium carbon fluoride">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="LithiumChromiumOxide" summary="Cell chemistry is lithium chromium oxide">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="LithiumCopperOxide" summary="Cell chemistry is lithium copper oxide">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="LithiumIronDisulfide" summary="Cell chemistry is lithium iron disulfide">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="LithiumManganeseDioxide" summary="Cell chemistry is lithium manganese dioxide">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="LithiumThionylChloride" summary="Cell chemistry is lithium thionyl chloride">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="Magnesium" summary="Cell chemistry is magnesium">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="MercuryOxide" summary="Cell chemistry is mercury oxide">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="NickelOxyhydride" summary="Cell chemistry is nickel oxyhydride">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="SilverOxide" summary="Cell chemistry is silver oxide">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="ZincAir" summary="Cell chemistry is zinc air">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="ZincCarbon" summary="Cell chemistry is zinc carbon">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="ZincChloride" summary="Cell chemistry is zinc chloride">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="ZincManganeseDioxide" summary="Cell chemistry is zinc manganese dioxide">
+        <mandatoryConform/>
+      </item>
+      <item value="16" name="LeadAcid" summary="Cell chemistry is lead acid">
+        <mandatoryConform/>
+      </item>
+      <item value="17" name="LithiumCobaltOxide" summary="Cell chemistry is lithium cobalt oxide">
+        <mandatoryConform/>
+      </item>
+      <item value="18" name="LithiumIon" summary="Cell chemistry is lithium ion">
+        <mandatoryConform/>
+      </item>
+      <item value="19" name="LithiumIonPolymer" summary="Cell chemistry is lithium ion polymer">
+        <mandatoryConform/>
+      </item>
+      <item value="20" name="LithiumIronPhosphate" summary="Cell chemistry is lithium iron phosphate">
+        <mandatoryConform/>
+      </item>
+      <item value="21" name="LithiumSulfur" summary="Cell chemistry is lithium sulfur">
+        <mandatoryConform/>
+      </item>
+      <item value="22" name="LithiumTitanate" summary="Cell chemistry is lithium titanate">
+        <mandatoryConform/>
+      </item>
+      <item value="23" name="NickelCadmium" summary="Cell chemistry is nickel cadmium">
+        <mandatoryConform/>
+      </item>
+      <item value="24" name="NickelHydrogen" summary="Cell chemistry is nickel hydrogen">
+        <mandatoryConform/>
+      </item>
+      <item value="25" name="NickelIron" summary="Cell chemistry is nickel iron">
+        <mandatoryConform/>
+      </item>
+      <item value="26" name="NickelMetalHydride" summary="Cell chemistry is nickel metal hydride">
+        <mandatoryConform/>
+      </item>
+      <item value="27" name="NickelZinc" summary="Cell chemistry is nickel zinc">
+        <mandatoryConform/>
+      </item>
+      <item value="28" name="SilverZinc" summary="Cell chemistry is silver zinc">
+        <mandatoryConform/>
+      </item>
+      <item value="29" name="SodiumIon" summary="Cell chemistry is sodium ion">
+        <mandatoryConform/>
+      </item>
+      <item value="30" name="SodiumSulfur" summary="Cell chemistry is sodium sulfur">
+        <mandatoryConform/>
+      </item>
+      <item value="31" name="ZincBromide" summary="Cell chemistry is zinc bromide">
+        <mandatoryConform/>
+      </item>
+      <item value="32" name="ZincCerium" summary="Cell chemistry is zinc cerium">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatChargeFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node detects an unspecified fault on this battery source.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AmbientTooHot" summary="The Node detects the ambient temperature is above the nominal range for this battery source.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="AmbientTooCold" summary="The Node detects the ambient temperature is below the nominal range for this battery source.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="BatteryTooHot" summary="The Node detects the temperature of this battery source is above the nominal range.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="BatteryTooCold" summary="The Node detects the temperature of this battery source is below the nominal range.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="BatteryAbsent" summary="The Node detects this battery source is not present.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="BatteryOverVoltage" summary="The Node detects this battery source is over voltage.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="BatteryUnderVoltage" summary="The Node detects this battery source is under voltage.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="ChargerOverVoltage" summary="The Node detects the charger for this battery source is over voltage.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="ChargerUnderVoltage" summary="The Node detects the charger for this battery source is under voltage.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="SafetyTimeout" summary="The Node detects a charging safety timeout for this battery source.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatChargeLevelEnum">
+      <item value="0" name="OK" summary="Charge level is nominal">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Warning" summary="Charge level is low, intervention may soon be required.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Critical" summary="Charge level is critical, immediate intervention is required">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatChargeStateEnum">
+      <item value="0" name="Unknown" summary="Unable to determine the charging state">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="IsCharging" summary="The battery is charging">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="IsAtFullCharge" summary="The battery is at full charge">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="IsNotCharging" summary="The battery is not charging">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatCommonDesignationEnum">
+      <item value="0" name="Unspecified" summary="Common type is unknown or unspecified">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="AAA" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="AA" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="C" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="D" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="4v5" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="6v0" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="9v0" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="1_2AA" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="AAAA" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="A" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="B" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="F" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="N" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="No6" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="SubC" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="16" name="A23" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="17" name="A27" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="18" name="BA5800" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="19" name="Duplex" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="20" name="4SR44" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="21" name="523" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="22" name="531" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="23" name="15v0" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="24" name="22v5" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="25" name="30v0" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="26" name="45v0" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="27" name="67v5" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="28" name="J" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="29" name="CR123A" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="30" name="CR2" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="31" name="2CR5" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="32" name="CR_P2" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="33" name="CR_V3" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="34" name="SR41" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="35" name="SR43" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="36" name="SR44" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="37" name="SR45" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="38" name="SR48" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="39" name="SR54" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="40" name="SR55" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="41" name="SR57" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="42" name="SR58" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="43" name="SR59" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="44" name="SR60" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="45" name="SR63" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="46" name="SR64" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="47" name="SR65" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="48" name="SR66" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="49" name="SR67" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="50" name="SR68" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="51" name="SR69" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="52" name="SR516" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="53" name="SR731" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="54" name="SR712" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="55" name="LR932" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="56" name="A5" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="57" name="A10" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="58" name="A13" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="59" name="A312" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="60" name="A675" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="61" name="AC41E" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="62" name="10180" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="63" name="10280" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="64" name="10440" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="65" name="14250" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="66" name="14430" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="67" name="14500" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="68" name="14650" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="69" name="15270" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="70" name="16340" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="71" name="RCR123A" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="72" name="17500" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="73" name="17670" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="74" name="18350" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="75" name="18500" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="76" name="18650" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="77" name="19670" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="78" name="25500" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="79" name="26650" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+      <item value="80" name="32600" summary="Common type is as specified">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node detects an unspecified fault on this battery power source.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="OverTemp" summary="The Node detects the temperature of this battery power source is above ideal operating conditions.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="UnderTemp" summary="The Node detects the temperature of this battery power source is below ideal operating conditions.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="BatReplaceabilityEnum">
+      <item value="0" name="Unspecified" summary="The replaceability is unspecified or unknown.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="NotReplaceable" summary="The battery is not replaceable.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="UserReplaceable" summary="The battery is replaceable by the user or customer.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="FactoryReplaceable" summary="The battery is replaceable by an authorized factory technician.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="PowerSourceStatusEnum">
+      <item value="0" name="Unspecified" summary="Indicate the source status is not specified">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Active" summary="Indicate the source is available and currently supplying power">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Standby" summary="Indicate the source is available, but is not currently supplying power">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Unavailable" summary="Indicate the source is not currently available to supply power">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="WiredCurrentTypeEnum">
+      <item value="0" name="AC" summary="Indicates AC current">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="DC" summary="Indicates DC current">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="WiredFaultEnum">
+      <item value="0" name="Unspecified" summary="The Node detects an unspecified fault on this wired power source.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="OverVoltage" summary="The Node detects the supplied voltage is above maximum supported value for this wired power source.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="UnderVoltage" summary="The Node detects the supplied voltage is below maximum supported value for this wired power source.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Status" type="PowerSourceStatusEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="Order" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="Description" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="60"/>
+    </attribute>
+    <attribute id="0x0003" name="WiredAssessedInputVoltage" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0004" name="WiredAssessedInputFrequency" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0005" name="WiredCurrentType" type="WiredCurrentTypeEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="WIRED"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="WiredAssessedCurrent" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0007" name="WiredNominalVoltage" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0008" name="WiredMaximumCurrent" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0009" name="WiredPresent" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000A" name="ActiveWiredFaults" type="list">
+      <entry type="WiredFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+      <constraint type="maxCount" value="8"/>
+    </attribute>
+    <attribute id="0x000B" name="BatVoltage" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000C" name="BatPercentRemaining" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+      <constraint type="between" from="0" to="200"/>
+    </attribute>
+    <attribute id="0x000D" name="BatTimeRemaining" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000E" name="BatChargeLevel" type="BatChargeLevelEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BAT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000F" name="BatReplacementNeeded" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BAT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0010" name="BatReplaceability" type="BatReplaceabilityEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="BAT"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0011" name="BatPresent" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0012" name="ActiveBatFaults" type="list">
+      <entry type="BatFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+      <constraint type="maxCount" value="8"/>
+    </attribute>
+    <attribute id="0x0013" name="BatReplacementDescription" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="REPLC"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="60"/>
+    </attribute>
+    <attribute id="0x0014" name="BatCommonDesignation" type="BatCommonDesignationEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="REPLC"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0015" name="BatANSIDesignation" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="REPLC"/>
+      </optionalConform>
+      <constraint type="maxLength" value="20"/>
+    </attribute>
+    <attribute id="0x0016" name="BatIECDesignation" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="REPLC"/>
+      </optionalConform>
+      <constraint type="maxLength" value="20"/>
+    </attribute>
+    <attribute id="0x0017" name="BatApprovedChemistry" type="BatApprovedChemistryEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="REPLC"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0018" name="BatCapacity" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <orTerm>
+          <feature name="REPLC"/>
+          <feature name="RECHG"/>
+        </orTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0019" name="BatQuantity" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="REPLC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x001A" name="BatChargeState" type="BatChargeStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="RECHG"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x001B" name="BatTimeToFullCharge" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <feature name="RECHG"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001C" name="BatFunctionalWhileCharging" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="RECHG"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x001D" name="BatChargingCurrent" type="uint32">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="RECHG"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x001E" name="ActiveBatChargeFaults" type="list">
+      <entry type="BatChargeFaultEnum"/>
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="RECHG"/>
+      </optionalConform>
+      <constraint type="maxCount" value="16"/>
+    </attribute>
+    <attribute id="0x001F" name="EndpointList" type="list">
+      <entry type="endpoint-no"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="WiredFaultChange" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="WIRED"/>
+      </optionalConform>
+      <field id="0" name="Current" type="list" default="empty">
+        <entry type="WiredFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+      <field id="1" name="Previous" type="list" default="empty">
+        <entry type="WiredFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+    </event>
+    <event id="0x01" name="BatFaultChange" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="BAT"/>
+      </optionalConform>
+      <field id="0" name="Current" type="list" default="empty">
+        <entry type="BatFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+      <field id="1" name="Previous" type="list" default="empty">
+        <entry type="BatFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="8"/>
+      </field>
+    </event>
+    <event id="0x02" name="BatChargeFaultChange" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="RECHG"/>
+      </optionalConform>
+      <field id="0" name="Current" type="list" default="empty">
+        <entry type="BatChargeFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="16"/>
+      </field>
+      <field id="1" name="Previous" type="list" default="empty">
+        <entry type="BatChargeFaultEnum"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="16"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/PowerSourceConfigurationCluster.xml b/data_model/in_progress/clusters/PowerSourceConfigurationCluster.xml
new file mode 100644
index 0000000..61df601
--- /dev/null
+++ b/data_model/in_progress/clusters/PowerSourceConfigurationCluster.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x002E" name="Power Source Configuration Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x002E" name="Power Source Configuration"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="PSCFG" scope="Node"/>
+  <attributes>
+    <attribute id="0x0000" name="Sources" type="list">
+      <entry type="endpoint-no"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="6"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/PowerTopology.xml b/data_model/in_progress/clusters/PowerTopology.xml
new file mode 100644
index 0000000..eb0a2d7
--- /dev/null
+++ b/data_model/in_progress/clusters/PowerTopology.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009C" name="Power Topology Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x009C" name="Power Topology"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="PWRTL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="NODE" name="NodeTopology" summary="This endpoint provides or consumes power to/from the entire node">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="1" code="TREE" name="TreeTopology" summary="This endpoint provides or consumes power to/from itself and its child endpoints">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="2" code="SET" name="SetTopology" summary="This endpoint provides or consumes power to/from a specified set of endpoints">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="3" code="DYPF" name="DynamicPowerFlow" summary="The specified set of endpoints may change">
+      <optionalConform>
+        <feature name="SET"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="AvailableEndpoints" type="list">
+      <entry type="endpoint-no"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SET"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="20"/>
+    </attribute>
+    <attribute id="0x0001" name="ActiveEndpoints" type="list">
+      <entry type="endpoint-no"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="DYPF"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="20"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/PressureMeasurement.xml b/data_model/in_progress/clusters/PressureMeasurement.xml
new file mode 100644
index 0000000..bf9b6a9
--- /dev/null
+++ b/data_model/in_progress/clusters/PressureMeasurement.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0403" name="Pressure Measurement Cluster" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2241 2370"/>
+    <revision revision="3" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0403" name="Pressure Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="PRS" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="EXT" name="Extended" summary="Extended range and resolution">
+      <optionalConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="int16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="int16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="-32767" to="MaxMeasuredValue-1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="int16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue+1" to="32767"/>
+    </attribute>
+    <attribute id="0x0003" name="Tolerance" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="between" from="0" to="2048"/>
+    </attribute>
+    <attribute id="0x0010" name="ScaledValue" type="int16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="EXT"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinScaledValue" to="MaxScaledValue"/>
+    </attribute>
+    <attribute id="0x0011" name="MinScaledValue" type="int16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="EXT"/>
+      </mandatoryConform>
+      <constraint type="between" from="-32767" to="MaxScaledValue-1"/>
+    </attribute>
+    <attribute id="0x0012" name="MaxScaledValue" type="int16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="EXT"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinScaledValue+1" to="32767"/>
+    </attribute>
+    <attribute id="0x0013" name="ScaledTolerance" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="EXT"/>
+      </optionalConform>
+      <constraint type="between" from="0" to="2048"/>
+    </attribute>
+    <attribute id="0x0014" name="Scale" type="int8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="EXT"/>
+      </mandatoryConform>
+      <constraint type="between" from="-127" to="127"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ProxyConfiguration-Cluster.xml b/data_model/in_progress/clusters/ProxyConfiguration-Cluster.xml
new file mode 100644
index 0000000..6796e79
--- /dev/null
+++ b/data_model/in_progress/clusters/ProxyConfiguration-Cluster.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0042" name="Proxy Configuration Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0042" name="ProxyConfiguration">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="PXCFG" scope="Node"/>
+  <dataTypes>
+    <struct name="ConfigurationStruct">
+      <field id="1" name="ProxyAllNodes" type="bool" default="false">
+        <access read="true" write="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="SourceList" type="list" default="empty">
+        <entry type="node-id"/>
+        <access read="true" write="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ConfigurationList" type="list" default="empty">
+      <entry type="ConfigurationStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ProxyDiscovery-Cluster.xml b/data_model/in_progress/clusters/ProxyDiscovery-Cluster.xml
new file mode 100644
index 0000000..7353386
--- /dev/null
+++ b/data_model/in_progress/clusters/ProxyDiscovery-Cluster.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0043" name="Proxy Discovery Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0043" name="ProxyDiscovery">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="PXDSC" scope="Node"/>
+  <commands>
+    <command id="0x00" name="ProxyDiscoverRequest" direction="commandToServer">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="SourceNodeId" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NumAttributePaths" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="NumEventPaths" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="ProxyDiscoverResponse" direction="commandToClient">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="SourceNodeId" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NumHopsToSource" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="AvailableCapacity" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/PumpConfigurationControl.xml b/data_model/in_progress/clusters/PumpConfigurationControl.xml
new file mode 100644
index 0000000..95ede00
--- /dev/null
+++ b/data_model/in_progress/clusters/PumpConfigurationControl.xml
@@ -0,0 +1,446 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0200" name="Pump Configuration and Control Cluster" revision="5">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="All Hubs changes"/>
+    <revision revision="3" summary="New data model format and notation, added additional events"/>
+    <revision revision="4" summary="Added feature map"/>
+    <revision revision="5" summary="Added Q quality for Capacity, Speed and Power"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0200" name="Pump Configuration and Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="PCC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PRSCONST" name="ConstantPressure" summary="Supports operating in constant pressure mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="PRSCOMP" name="CompensatedPressure" summary="Supports operating in compensated pressure mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="FLW" name="ConstantFlow" summary="Supports operating in constant flow mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="3" code="SPD" name="ConstantSpeed" summary="Supports operating in constant speed mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="4" code="TEMP" name="ConstantTemperature" summary="Supports operating in constant temperature mode">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="5" code="AUTO" name="Automatic" summary="Supports operating in automatic mode">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="LOCAL" name="LocalOperation" summary="Supports operating using local settings">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="ControlModeEnum">
+      <item value="0" name="ConstantSpeed" summary="The pump is running at a constant speed.">
+        <mandatoryConform>
+          <feature name="SPD"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="ConstantPressure" summary="The pump will regulate its speed to maintain a constant differential pressure over its flanges.">
+        <mandatoryConform>
+          <feature name="PRSCONST"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="ProportionalPressure" summary="The pump will regulate its speed to maintain a constant differential pressure over its flanges.">
+        <mandatoryConform>
+          <feature name="PRSCOMP"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="ConstantFlow" summary="The pump will regulate its speed to maintain a constant flow through the pump.">
+        <mandatoryConform>
+          <feature name="FLW"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="ConstantTemperature" summary="The pump will regulate its speed to maintain a constant temperature.">
+        <mandatoryConform>
+          <feature name="TEMP"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="Automatic" summary="The operation of the pump is automatically optimized to provide the most suitable performance with respect to comfort and energy savings.">
+        <mandatoryConform>
+          <feature name="AUTO"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="OperationModeEnum">
+      <item value="0" name="Normal" summary="The pump is controlled by a setpoint, as defined by a connected remote sensor or by the ControlMode attribute.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Minimum" summary="This value sets the pump to run at the minimum possible speed it can without being stopped.">
+        <mandatoryConform>
+          <feature name="SPD"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Maximum" summary="This value sets the pump to run at its maximum possible speed.">
+        <mandatoryConform>
+          <feature name="SPD"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Local" summary="This value sets the pump to run with the local settings of the pump, regardless of what these are.">
+        <mandatoryConform>
+          <feature name="LOCAL"/>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <bitmap name="PumpStatusBitmap">
+      <bitfield name="DeviceFault" bit="0" summary="A fault related to the system or pump device is detected.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SupplyFault" bit="1" summary="A fault related to the supply to the pump is detected.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SpeedLow" bit="2" summary="Setpoint is too low to achieve.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SpeedHigh" bit="3" summary="Setpoint is too high to achieve.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LocalOverride" bit="4" summary="Device control is overridden by hardware, such as an external STOP button or via a local HMI.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Running" bit="5" summary="Pump is currently running">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RemotePressure" bit="6" summary="A remote pressure sensor is used as the sensor for the regulation of the pump.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RemoteFlow" bit="7" summary="A remote flow sensor is used as the sensor for the regulation of the pump.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RemoteTemperature" bit="8" summary="A remote temperature sensor is used as the sensor for the regulation of the pump.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="MaxPressure" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="MaxSpeed" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="MaxFlow" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="MinConstPressure" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="PRSCONST"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0004" name="MaxConstPressure" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="PRSCONST"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0005" name="MinCompPressure" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="PRSCOMP"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0006" name="MaxCompPressure" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="PRSCOMP"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0007" name="MinConstSpeed" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="SPD"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0008" name="MaxConstSpeed" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="SPD"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x0009" name="MinConstFlow" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="FLW"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x000A" name="MaxConstFlow" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="FLW"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+    </attribute>
+    <attribute id="0x000B" name="MinConstTemp" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="TEMP"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+      <constraint type="min" value="-27315"/>
+    </attribute>
+    <attribute id="0x000C" name="MaxConstTemp" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="TEMP"/>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="AUTO"/>
+        </optionalConform>
+      </otherwiseConform>
+      <constraint type="min" value="-27315"/>
+    </attribute>
+    <attribute id="0x0010" name="PumpStatus" type="PumpStatusBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0011" name="EffectiveOperationMode" type="OperationModeEnum" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0012" name="EffectiveControlMode" type="ControlModeEnum" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0013" name="Capacity" type="int16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0014" name="Speed" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0015" name="LifetimeRunningHours" type="uint24" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0016" name="Power" type="uint24" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0017" name="LifetimeEnergyConsumed" type="uint32" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0020" name="OperationMode" type="OperationModeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0021" name="ControlMode" type="ControlModeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0022" name="AlarmMask" type="map16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <deprecateConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="SupplyVoltageLow" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x01" name="SupplyVoltageHigh" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x02" name="PowerMissingPhase" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x03" name="SystemPressureLow" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x04" name="SystemPressureHigh" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x05" name="DryRunning" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x06" name="MotorTemperatureHigh" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x07" name="PumpMotorFatalFailure" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x08" name="ElectronicTemperatureHigh" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x09" name="PumpBlocked" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0A" name="SensorFailure" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0B" name="ElectronicNonFatalFailure" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0C" name="ElectronicFatalFailure" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0D" name="GeneralFault" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0E" name="Leakage" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x0F" name="AirDetection" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x10" name="TurbineOperation" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/RefrigeratorAlarm.xml b/data_model/in_progress/clusters/RefrigeratorAlarm.xml
new file mode 100644
index 0000000..a3a7501
--- /dev/null
+++ b/data_model/in_progress/clusters/RefrigeratorAlarm.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: short

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0057" name="Refrigerator Alarm Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0057" name="Refrigerator Alarm"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Alarm Base" role="application" picsCode="REFALM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="RESET" name="Reset" summary="Supports the ability to reset alarms">
+      <disallowConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <bitmap name="AlarmBitmap">
+      <bitfield name="DoorOpen" bit="0" summary="The cabinet's door has been open for a vendor defined amount of time.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <commands>
+    <command id="0x01" name="ModifyEnabledAlarms">
+      <disallowConform/>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ResourceMonitoring.xml b/data_model/in_progress/clusters/ResourceMonitoring.xml
new file mode 100644
index 0000000..911ad11
--- /dev/null
+++ b/data_model/in_progress/clusters/ResourceMonitoring.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Resource Monitoring Clusters" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0071" name="HEPA Filter Monitoring" picsCode="HEPAFREMON"/>
+    <clusterId id="0x0072" name="Activated Carbon Filter Monitoring" picsCode="ACFREMON"/>
+    <clusterId id="0x0079" name="Water Tank Level Monitoring" picsCode="WTLREPMON"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="REPM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="CON" name="Condition" summary="Supports monitoring the condition of the resource in percentage">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="WRN" name="Warning" summary="Supports warning indication">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="REP" name="ReplacementProductList" summary="Supports specifying the list of replacement products">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="ChangeIndicationEnum">
+      <item value="0" name="OK" summary="Resource is in good condition, no intervention required">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Warning" summary="Resource will be exhausted soon, intervention will shortly be required">
+        <mandatoryConform>
+          <feature name="WRN"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Critical" summary="Resource is exhausted, immediate intervention is required">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="DegradationDirectionEnum">
+      <item value="0" name="Up" summary="The degradation of the resource is indicated by an upwards moving/increasing value">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Down" summary="The degradation of the resource is indicated by a downwards moving/decreasing value">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ProductIdentifierTypeEnum">
+      <item value="0" name="UPC" summary="12-digit Universal Product Code">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="GTIN-8" summary="8-digit Global Trade Item Number">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="EAN" summary="13-digit European Article Number">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="GTIN-14" summary="14-digit Global Trade Item Number">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="OEM" summary="Original Equipment Manufacturer part number">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="ReplacementProductStruct">
+      <field id="0" name="ProductIdentifierType" type="ProductIdentifierTypeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="ProductIdentifierValue" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="20"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Condition" type="percent">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CON"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0001" name="DegradationDirection" type="DegradationDirectionEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CON"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="ChangeIndication" type="ChangeIndicationEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="InPlaceIndicator" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0004" name="LastChangedTime" type="epoch-s" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0005" name="ReplacementProductList" type="list">
+      <entry type="ReplacementProductStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="REP"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="5"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="ResetCondition" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Scenes.xml b/data_model/in_progress/clusters/Scenes.xml
new file mode 100644
index 0000000..1479d3f
--- /dev/null
+++ b/data_model/in_progress/clusters/Scenes.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0062" name="Scenes Management Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Based on the ZCL Scenes Cluster, Updated the Cluster ID to 0x0062, the name to Scenes Management, removed the provisional status; Removed attributes SceneCount, CurrentScene, CurrentGroup, SceneValid, and NameSupport; Removed Explicit, TableSize and FabricScenes features; Removed EnhancedAddScene, EnhancedAddSceneResponse, EnhancedViewScene, EnhancedViewSceneResponse; TransitionTime field changed milliseconds in AddScene, ViewSceneResponse and RecallScene"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0062" name="Scenes Management">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="S" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="SN" name="SceneNames" summary="The ability to store a name for a scene.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <bitmap name="CopyModeBitmap">
+      <bitfield name="CopyAllScenes" bit="0" summary="Copy all scenes in the scene table">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="AttributeValuePairStruct">
+      <field id="0" name="AttributeID" type="attribute-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ValueUnsigned8" type="uint8">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="2" name="ValueSigned8" type="int8">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="3" name="ValueUnsigned16" type="uint16">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="4" name="ValueSigned16" type="int16">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="5" name="ValueUnsigned32" type="uint32">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="6" name="ValueSigned32" type="int32">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="7" name="ValueUnsigned64" type="uint64">
+        <optionalConform choice="a"/>
+      </field>
+      <field id="8" name="ValueSigned64" type="int64">
+        <optionalConform choice="a"/>
+      </field>
+    </struct>
+    <struct name="ExtensionFieldSetStruct">
+      <field id="0" name="ClusterID" type="cluster-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="AttributeValueList" type="list">
+        <entry type="AttributeValuePairStruct"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+    <struct name="Logical Scene Table">
+      <field id="0" name="SceneGroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="2" name="SceneName" type="string">
+        <mandatoryConform>
+          <feature name="SN"/>
+        </mandatoryConform>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="SceneTransitionTime" type="uint32" default="0">
+        <mandatoryConform/>
+        <constraint type="max" value="60000000"/>
+      </field>
+      <field id="4" name="ExtensionFields" type="list" default="empty">
+        <entry type="ExtensionFieldSetStruct"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="SceneInfoStruct">
+      <field id="0" name="SceneCount" type="uint8" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="CurrentScene" type="uint8" default="0xFF">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="CurrentGroup" type="group-id" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="SceneValid" type="bool" default="False">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="RemainingCapacity" type="uint8" default="MS">
+        <mandatoryConform/>
+        <constraint type="max" value="253"/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="LastConfiguredBy" type="node-id" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0001" name="SceneTableSize" type="uint16" default="16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="FabricSceneInfo" type="list">
+      <entry type="SceneInfoStruct"/>
+      <access read="true" readPrivilege="view" fabricScoped="true"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AddScene" direction="commandToServer" response="AddSceneResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint32">
+        <mandatoryConform/>
+        <constraint type="max" value="60000000"/>
+      </field>
+      <field id="3" name="SceneName" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="4" name="ExtensionFieldSetStructs" type="list">
+        <entry type="ExtensionFieldSetStruct"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x00" name="AddSceneResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x01" name="ViewScene" direction="commandToServer" response="ViewSceneResponse">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x01" name="ViewSceneResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="3" name="TransitionTime" type="uint32">
+        <constraint type="max" value="60000000"/>
+      </field>
+      <field id="4" name="SceneName" type="string">
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="5" name="ExtensionFieldSetStructs" type="list">
+        <entry type="ExtensionFieldSetStruct"/>
+      </field>
+    </command>
+    <command id="0x02" name="RemoveScene" direction="commandToServer" response="RemoveSceneResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x02" name="RemoveSceneResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x03" name="RemoveAllScenes" direction="commandToServer" response="RemoveAllScenesResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x03" name="RemoveAllScenesResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="StoreScene" direction="commandToServer" response="StoreSceneResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x04" name="StoreSceneResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+    <command id="0x05" name="RecallScene" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="SceneID" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint32">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="max" value="60000000"/>
+      </field>
+    </command>
+    <command id="0x06" name="GetSceneMembership" direction="commandToServer" response="GetSceneMembershipResponse">
+      <access invokePrivilege="operate" fabricScoped="true"/>
+      <mandatoryConform/>
+      <field id="0" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x06" name="GetSceneMembershipResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Capacity" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="GroupID" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="SceneList" type="list">
+        <entry type="uint8"/>
+      </field>
+    </command>
+    <command id="0x40" name="CopyScene" direction="commandToServer" response="CopySceneResponse">
+      <access invokePrivilege="manage" fabricScoped="true"/>
+      <optionalConform/>
+      <field id="0" name="Mode" type="CopyModeBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupIdentifierFrom" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneIdentifierFrom" type="max 254">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="GroupIdentifierTo" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="SceneIdentifierTo" type="max 254">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x40" name="CopySceneResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <command name="CopyScene"/>
+      </mandatoryConform>
+      <field id="0" name="Status" type="status">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="GroupIdentifierFrom" type="group-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="SceneIdentifierFrom" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ServiceArea.xml b/data_model/in_progress/clusters/ServiceArea.xml
new file mode 100644
index 0000000..6a54264
--- /dev/null
+++ b/data_model/in_progress/clusters/ServiceArea.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0150" name="Service Area Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0150" name="Service Area"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="SEAR" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="SELRUN" name="SelectWhileRunning" summary="The device allows changing the selected areas while running">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="PROG" name="ProgressReporting" summary="The device implements the progress reporting feature">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="MAPS" name="Maps" summary="The device has map support">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="OperationalStatusEnum">
+      <item value="0x00" name="Pending" summary="The device has not yet started operating at the given area,
+                         or has not finished operating at that area but it is not currently
+                         operating at the area">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="Operating" summary="The device is currently operating at the given area">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="Skipped" summary="The device has skipped the given area, before or during operating at it,
+                         due to a SkipArea command, due an out of band command (e.g. from the vendor's application),
+                         due to a vendor specific reason, such as a time limit used by the device,
+                         or due the device ending operating unsuccessfully">
+        <mandatoryConform/>
+      </item>
+      <item value="0x03" name="Completed" summary="The device has completed operating at the given area">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="AreaInfoStruct">
+      <field id="0" name="LocationInfo" type="locationdesc">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="LandmarkInfo" type="LandmarkInfoStruct">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="AreaStruct">
+      <field id="0" name="AreaID" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="MapID" type="uint32" default="MS">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="AreaDesc" type="AreaInfoStruct" default="MS">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="LandmarkInfoStruct">
+      <field id="0" name="LandmarkTag" type="tag">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="PositionTag" type="tag">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="MapStruct">
+      <field id="0" name="MapID" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string" default="MS">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </struct>
+    <struct name="ProgressStruct">
+      <field id="0" name="AreaID" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Status" type="OperationalStatusEnum" default="MS">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TotalOperationalTime" type="elapsed-s" default="MS">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+      <field id="3" name="InitialTimeEstimate" type="elapsed-s" default="MS">
+        <quality nullable="true"/>
+        <optionalConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedAreas" type="list" default="MS">
+      <entry type="AreaStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="255"/>
+    </attribute>
+    <attribute id="0x0001" name="SupportedMaps" type="list" default="MS">
+      <entry type="MapStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MAPS"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="255"/>
+    </attribute>
+    <attribute id="0x0002" name="SelectedAreas" type="list" default="empty">
+      <entry type="uint32"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="CurrentArea" type="uint32" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="EstimatedEndTime" type="epoch-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <attribute name="CurrentArea"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0005" name="Progress" type="list" default="empty">
+      <entry type="ProgressStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="PROG"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="255"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SelectAreas" direction="commandToServer" response="SelectAreasResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="NewAreas" type="list">
+        <entry type="uint32"/>
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="SelectAreasResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="SelectAreasStatus">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="StatusText" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </command>
+    <command id="0x02" name="SkipArea" direction="commandToServer" response="SkipAreaResponse">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="SkippedArea" type="uint32">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="SkipAreaResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <command name="SkipArea"/>
+      </mandatoryConform>
+      <field id="0" name="Status" type="SkipAreaStatus">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="StatusText" type="string">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="256"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/SmokeCOAlarm.xml b/data_model/in_progress/clusters/SmokeCOAlarm.xml
new file mode 100644
index 0000000..482a8a8
--- /dev/null
+++ b/data_model/in_progress/clusters/SmokeCOAlarm.xml
@@ -0,0 +1,308 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005C" name="Smoke CO Alarm Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x005C" name="Smoke CO Alarm"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="SMOKECO" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="SMOKE" name="SmokeAlarm" summary="Supports Smoke alarm">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="CO" name="COAlarm" summary="Supports CO alarm">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="AlarmStateEnum">
+      <item value="0" name="Normal" summary="Nominal state, the device is not alarming">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Warning" summary="Warning state">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Critical" summary="Critical state">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ContaminationStateEnum">
+      <item value="0" name="Normal" summary="Nominal state, the sensor is not contaminated">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Low" summary="Low contamination">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Warning" summary="Warning state">
+        <optionalConform/>
+      </item>
+      <item value="3" name="Critical" summary="Critical state, will cause nuisance alarms">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="EndOfServiceEnum">
+      <item value="0" name="Normal" summary="Device has not expired">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Expired" summary="Device has reached its end of service">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ExpressedStateEnum">
+      <item value="0" name="Normal" summary="Nominal state, the device is not alarming">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="SmokeAlarm" summary="Smoke Alarm state">
+        <mandatoryConform>
+          <feature name="SMOKE"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="COAlarm" summary="CO Alarm state">
+        <mandatoryConform>
+          <feature name="CO"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="BatteryAlert" summary="Battery Alert State">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Testing" summary="Test in Progress">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="HardwareFault" summary="Hardware Fault Alert State">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="EndOfService" summary="End of Service Alert State">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="InterconnectSmoke" summary="Interconnected Smoke Alarm State">
+        <optionalConform/>
+      </item>
+      <item value="8" name="InterconnectCO" summary="Interconnected CO Alarm State">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="MuteStateEnum">
+      <item value="0" name="NotMuted" summary="Not Muted">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Muted" summary="Muted">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="SensitivityEnum">
+      <item value="0" name="High" summary="High sensitivity">
+        <optionalConform/>
+      </item>
+      <item value="1" name="Standard" summary="Standard Sensitivity">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Low" summary="Low sensitivity">
+        <optionalConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ExpressedState" type="ExpressedStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="SmokeState" type="AlarmStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SMOKE"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0002" name="COState" type="AlarmStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="CO"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="BatteryAlert" type="AlarmStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="DeviceMuted" type="MuteStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0005" name="TestInProgress" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0006" name="HardwareFaultAlert" type="bool">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0007" name="EndOfServiceAlert" type="EndOfServiceEnum">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0008" name="InterconnectSmokeAlarm" type="AlarmStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0009" name="InterconnectCOAlarm" type="AlarmStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000A" name="ContaminationState" type="ContaminationStateEnum">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="SMOKE"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000B" name="SmokeSensitivityLevel" type="SensitivityEnum">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform>
+        <feature name="SMOKE"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x000C" name="ExpiryDate" type="epoch-s">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SelfTestRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform/>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="SmokeAlarm" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="SMOKE"/>
+      </mandatoryConform>
+      <field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="COAlarm" priority="critical">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="CO"/>
+      </mandatoryConform>
+      <field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="LowBattery" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x03" name="HardwareFault" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+    <event id="0x04" name="EndOfService" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+    <event id="0x05" name="SelfTestComplete" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+    <event id="0x06" name="AlarmMuted" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x07" name="MuteEnded" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x08" name="InterconnectSmokeAlarm" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="SMOKE"/>
+      </optionalConform>
+      <field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x09" name="InterconnectCOAlarm" priority="critical">
+      <access readPrivilege="view"/>
+      <optionalConform>
+        <feature name="CO"/>
+      </optionalConform>
+      <field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x0A" name="AllClear" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Switch.xml b/data_model/in_progress/clusters/Switch.xml
new file mode 100644
index 0000000..92489c1
--- /dev/null
+++ b/data_model/in_progress/clusters/Switch.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x003B" name="Switch Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Behavior clarifications for ambiguous combinations of events;
+             Introduction of TotalNumberOfPressesCounted == 0 when MultiPressMax is exceeded;
+             Introduction of ActionSwitch feature."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x003B" name="Switch"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="SWTCH" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="LS" name="LatchingSwitch" summary="Switch is latching">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="1" code="MS" name="MomentarySwitch" summary="Switch is momentary">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="2" code="MSR" name="MomentarySwitchRelease" summary="Switch supports release events generation">
+      <optionalConform>
+        <andTerm>
+          <feature name="MS"/>
+          <notTerm>
+            <feature name="AS"/>
+          </notTerm>
+        </andTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="MSL" name="MomentarySwitchLongPress" summary="Switch supports long press detection">
+      <optionalConform>
+        <andTerm>
+          <feature name="MS"/>
+          <orTerm>
+            <feature name="MSR"/>
+            <feature name="AS"/>
+          </orTerm>
+        </andTerm>
+      </optionalConform>
+    </feature>
+    <feature bit="4" code="MSM" name="MomentarySwitchMultiPress" summary="Switch supports multi-press detection">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="AS"/>
+        </mandatoryConform>
+        <optionalConform>
+          <andTerm>
+            <feature name="MS"/>
+            <feature name="MSR"/>
+          </andTerm>
+        </optionalConform>
+      </otherwiseConform>
+    </feature>
+    <feature bit="5" code="AS" name="ActionSwitch" summary="Switch is momentary, targeted at specific user actions (focus on multi-press and optionally long press) with a reduced event generation scheme">
+      <optionalConform>
+        <feature name="MS"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="NumberOfPositions" type="uint8" default="2">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="2"/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentPosition" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="max" value="NumberOfPositions-1"/>
+    </attribute>
+    <attribute id="0x0002" name="MultiPressMax" type="uint8" default="2">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSM"/>
+      </mandatoryConform>
+      <constraint type="min" value="2"/>
+    </attribute>
+  </attributes>
+  <events>
+    <event id="0x00" name="SwitchLatched" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="LS"/>
+      </mandatoryConform>
+      <field id="0" name="NewPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+    </event>
+    <event id="0x01" name="InitialPress" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MS"/>
+      </mandatoryConform>
+      <field id="0" name="NewPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+    </event>
+    <event id="0x02" name="LongPress" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MSL"/>
+      </mandatoryConform>
+      <field id="0" name="NewPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+    </event>
+    <event id="0x03" name="ShortRelease" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MSR"/>
+      </mandatoryConform>
+      <field id="0" name="PreviousPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+    </event>
+    <event id="0x04" name="LongRelease" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MSL"/>
+      </mandatoryConform>
+      <field id="0" name="PreviousPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+    </event>
+    <event id="0x05" name="MultiPressOngoing" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="MSM"/>
+          <notTerm>
+            <feature name="AS"/>
+          </notTerm>
+        </andTerm>
+      </mandatoryConform>
+      <field id="0" name="NewPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+      <field id="1" name="CurrentNumberOfPressesCounted" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="2" to="MultiPressMax"/>
+      </field>
+    </event>
+    <event id="0x06" name="MultiPressComplete" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="MSM"/>
+      </mandatoryConform>
+      <field id="0" name="PreviousPosition" type="uint8">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="NumberOfPositions-1"/>
+      </field>
+      <field id="1" name="TotalNumberOfPressesCounted" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="MultiPressMax"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/TargetNavigator.xml b/data_model/in_progress/clusters/TargetNavigator.xml
new file mode 100644
index 0000000..b1fcff6
--- /dev/null
+++ b/data_model/in_progress/clusters/TargetNavigator.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0505" name="Target Navigator Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add TargetUpdated event"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0505" name="Target Navigator"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TGTNAV" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="StatusEnum">
+      <item value="0" name="Success" summary="Command succeeded">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="TargetNotFound" summary="Requested target was not found in the TargetList">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="NotAllowed" summary="Target request is not allowed in current state.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="TargetInfoStruct">
+      <field id="0" name="Identifier" type="uint8">
+        <mandatoryConform/>
+        <constraint type="max" value="254"/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="TargetList" type="list">
+      <entry type="TargetInfoStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentTarget" type="uint8" default="0xFF">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="NavigateTarget" direction="commandToServer" response="NavigateTargetResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Target" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Data" type="string" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="NavigateTargetResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Status" type="StatusEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Data" type="string" default="MS">
+        <optionalConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="TargetUpdated" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="TargetList" type="list">
+        <entry type="TargetInfoStruct"/>
+        <optionalConform/>
+      </field>
+      <field id="1" name="CurrentTarget" type="uint8" default="0xFF">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Data" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="900"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/TemperatureControl.xml b/data_model/in_progress/clusters/TemperatureControl.xml
new file mode 100644
index 0000000..7951971
--- /dev/null
+++ b/data_model/in_progress/clusters/TemperatureControl.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0056" name="Temperature Control Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0056" name="Temperature Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TCTL" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="TN" name="TemperatureNumber" summary="Use actual temperature numbers">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="1" code="TL" name="TemperatureLevel" summary="Use temperature levels">
+      <optionalConform choice="a"/>
+    </feature>
+    <feature bit="2" code="STEP" name="TemperatureStep" summary="Use step control with temperature numbers">
+      <optionalConform>
+        <feature name="TN"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="TemperatureSetpoint" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TN"/>
+      </mandatoryConform>
+      <constraint type="between" from="MinTemperature" to="MaxTemperature"/>
+    </attribute>
+    <attribute id="0x0001" name="MinTemperature" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TN"/>
+      </mandatoryConform>
+      <constraint type="max" value="MaxTemperature - 1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxTemperature" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TN"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="Step" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="STEP"/>
+      </mandatoryConform>
+      <constraint type="max" value="MaxTemperature - MinTemperature"/>
+    </attribute>
+    <attribute id="0x0004" name="SelectedTemperatureLevel" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TL"/>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="31"/>
+    </attribute>
+    <attribute id="0x0005" name="SupportedTemperatureLevels" type="list">
+      <entry type="string">
+        <constraint type="maxLength" value="16"/>
+      </entry>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TL"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="32"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SetTemperature" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="TargetTemperature" type="temperature">
+        <mandatoryConform>
+          <feature name="TN"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="TargetTemperatureLevel" type="uint8">
+        <mandatoryConform>
+          <feature name="TL"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/TemperatureMeasurement.xml b/data_model/in_progress/clusters/TemperatureMeasurement.xml
new file mode 100644
index 0000000..0935b18
--- /dev/null
+++ b/data_model/in_progress/clusters/TemperatureMeasurement.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0402" name="Temperature Measurement Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2241 2370"/>
+    <revision revision="3" summary="CCB 2823"/>
+    <revision revision="4" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0402" name="Temperature Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TMP" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="-27315" to="MaxMeasuredValue-1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="temperature">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue+1" to="32767"/>
+    </attribute>
+    <attribute id="0x0003" name="Tolerance" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="between" from="0" to="2048"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Thermostat.xml b/data_model/in_progress/clusters/Thermostat.xml
new file mode 100644
index 0000000..faf1478
--- /dev/null
+++ b/data_model/in_progress/clusters/Thermostat.xml
@@ -0,0 +1,1225 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021-2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0201" name="Thermostat Cluster" revision="8">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; fixed some defaults; CCB 1823, 1480"/>
+    <revision revision="2" summary="CCB 1981 2186 2249 2250 2251; NFR Thermostat Setback"/>
+    <revision revision="3" summary="CCB 2477 2560 2773 2777 2815 2816 3029"/>
+    <revision revision="4" summary="All Hubs changes"/>
+    <revision revision="5" summary="New data model format and notation, added FeatureMap, collapsed attribute sets, clarified edge cases around limits, default value of xxxSetpointLimit now respects AbsxxxSetpointLimit"/>
+    <revision revision="6" summary="Introduced the LTNE feature and adapted text (spec issue #5778)"/>
+    <revision revision="7" summary="Added Q quality for LocalTemperature, OutdoorTemperature and ACCoilTemperature,
+             update constraints on local temperature calibration and minimum setpoint deadband and introduced
+             Presets and MatterScheduleConfiguration features"/>
+    <revision revision="8" summary="Added comment regarding writing to ControlSequenceOfOperation."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0201" name="Thermostat"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TSTAT" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="HEAT" name="Heating" summary="Thermostat is capable of managing a heating device">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="AUTO"/>
+        </mandatoryConform>
+        <optionalConform choice="a" more="true"/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="1" code="COOL" name="Cooling" summary="Thermostat is capable of managing a cooling device">
+      <otherwiseConform>
+        <mandatoryConform>
+          <feature name="AUTO"/>
+        </mandatoryConform>
+        <optionalConform choice="a" more="true"/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="2" code="OCC" name="Occupancy" summary="Supports Occupied and Unoccupied setpoints">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="SCH" name="ScheduleConfiguration" summary="Supports remote configuration of a weekly schedule of setpoint transitions">
+      <otherwiseConform>
+        <optionalConform>
+          <condition name="Zigbee"/>
+        </optionalConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </feature>
+    <feature bit="4" code="SB" name="Setback" summary="Supports configurable setback (or span)">
+      <optionalConform/>
+    </feature>
+    <feature bit="5" code="AUTO" name="AutoMode" summary="Supports a System Mode of Auto">
+      <optionalConform/>
+    </feature>
+    <feature bit="6" code="LTNE" name="LocalTemperatureNotExposed" summary="Thermostat does not expose the LocalTemperature Value in the LocalTemperature attribute">
+      <optionalConform/>
+    </feature>
+    <feature bit="7" code="MSCH" name="MatterScheduleConfiguration" summary="Supports enhanced schedules">
+      <optionalConform/>
+    </feature>
+    <feature bit="8" code="PRES" name="Presets" summary="Thermostat supports setpoint presets">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <number name="SignedTemperature" type=""/>
+    <number name="TemperatureDifference" type=""/>
+    <number name="UnsignedTemperature" type=""/>
+    <enum name="ACCapacityFormatEnum">
+      <item value="0" name="BTUh" summary="British Thermal Unit per Hour">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ACCompressorTypeEnum">
+      <item value="0" name="Unknown" summary="Unknown compressor type">
+        <optionalConform/>
+      </item>
+      <item value="1" name="T1" summary="Max working ambient 43 °C">
+        <optionalConform/>
+      </item>
+      <item value="2" name="T2" summary="Max working ambient 35 °C">
+        <optionalConform/>
+      </item>
+      <item value="3" name="T3" summary="Max working ambient 52 °C">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ACLouverPositionEnum">
+      <item value="1" name="Closed" summary="Fully Closed">
+        <optionalConform/>
+      </item>
+      <item value="2" name="Open" summary="Fully Open">
+        <optionalConform/>
+      </item>
+      <item value="3" name="Quarter" summary="Quarter Open">
+        <optionalConform/>
+      </item>
+      <item value="4" name="Half" summary="Half Open">
+        <optionalConform/>
+      </item>
+      <item value="5" name="ThreeQuarters" summary="Three Quarters Open">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ACRefrigerantTypeEnum">
+      <item value="0" name="Unknown" summary="Unknown Refrigerant Type">
+        <optionalConform/>
+      </item>
+      <item value="1" name="R22" summary="R22 Refrigerant">
+        <optionalConform/>
+      </item>
+      <item value="2" name="R410a" summary="R410a Refrigerant">
+        <optionalConform/>
+      </item>
+      <item value="3" name="R407c" summary="R407c Refrigerant">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ACTypeEnum">
+      <item value="0" name="Unknown" summary="Unknown AC Type">
+        <optionalConform/>
+      </item>
+      <item value="1" name="CoolingFixed" summary="Cooling and Fixed Speed">
+        <optionalConform/>
+      </item>
+      <item value="2" name="HeatPumpFixed" summary="Heat Pump and Fixed Speed">
+        <optionalConform/>
+      </item>
+      <item value="3" name="CoolingInverter" summary="Cooling and Inverter">
+        <optionalConform/>
+      </item>
+      <item value="4" name="HeatPumpInverter" summary="Heat Pump and Inverter">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="ControlSequenceOfOperationEnum">
+      <item value="0" name="CoolingOnly" summary="Heat and Emergency are not possible">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+      </item>
+      <item value="1" name="CoolingWithReheat" summary="Heat and Emergency are not possible">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+      </item>
+      <item value="2" name="HeatingOnly" summary="Cool and precooling (see ref_HvacTerms) are not possible">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+      </item>
+      <item value="3" name="HeatingWithReheat" summary="Cool and precooling are not possible">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+      </item>
+      <item value="4" name="CoolingAndHeating" summary="All modes are possible">
+        <optionalConform>
+          <andTerm>
+            <feature name="HEAT"/>
+            <feature name="COOL"/>
+          </andTerm>
+        </optionalConform>
+      </item>
+      <item value="5" name="CoolingAndHeatingWithReheat" summary="All modes are possible">
+        <optionalConform>
+          <andTerm>
+            <feature name="HEAT"/>
+            <feature name="COOL"/>
+          </andTerm>
+        </optionalConform>
+      </item>
+    </enum>
+    <enum name="PresetScenarioEnum">
+      <item value="1" name="Occupied" summary="The thermostat-controlled area is occupied">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Unoccupied" summary="The thermostat-controlled area is unoccupied">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Sleep" summary="Users are likely to be sleeping">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Wake" summary="Users are likely to be waking up">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Vacation" summary="Users are on vacation">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="GoingToSleep" summary="Users are likely to be going to sleep">
+        <mandatoryConform/>
+      </item>
+      <item value="254" name="UserDefined" summary="Custom presets">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="SetpointChangeSourceEnum">
+      <item value="0" name="Manual" summary="Manual, user-initiated setpoint change via the thermostat">
+        <optionalConform/>
+      </item>
+      <item value="1" name="Schedule" summary="Schedule/internal programming-initiated setpoint change">
+        <optionalConform>
+          <orTerm>
+            <feature name="SCH"/>
+            <feature name="MSCH"/>
+          </orTerm>
+        </optionalConform>
+      </item>
+      <item value="2" name="External" summary="Externally-initiated setpoint change (e.g., DRLC cluster command, attribute write)">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="SetpointRaiseLowerModeEnum">
+      <item value="0" name="Heat" summary="Adjust Heat Setpoint">
+        <mandatoryConform>
+          <feature name="HEAT"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="Cool" summary="Adjust Cool Setpoint">
+        <mandatoryConform>
+          <feature name="COOL"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="Both" summary="Adjust Heat Setpoint and Cool Setpoint">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="HEAT"/>
+            <feature name="COOL"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+    </enum>
+    <enum name="StartOfWeekEnum">
+      <item value="0" name="Sunday">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Monday">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Tuesday">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Wednesday">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Thursday">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Friday">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Saturday">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="SystemModeEnum">
+      <item value="0" name="Off" summary="The Thermostat does not generate demand for Cooling or Heating">
+        <optionalConform/>
+      </item>
+      <item value="1" name="Auto" summary="Demand is generated for either Cooling or Heating, as required">
+        <mandatoryConform>
+          <feature name="AUTO"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="Cool" summary="Demand is only generated for Cooling">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+      </item>
+      <item value="4" name="Heat" summary="Demand is only generated for Heating">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+      </item>
+      <item value="5" name="EmergencyHeat" summary="2 stage heating is in use to achieve desired temperature">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+      </item>
+      <item value="6" name="Precooling" summary="(see ref_HvacTerms)">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+      </item>
+      <item value="7" name="FanOnly">
+        <optionalConform/>
+      </item>
+      <item value="8" name="Dry">
+        <optionalConform/>
+      </item>
+      <item value="9" name="Sleep">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="TemperatureSetpointHoldEnum">
+      <item value="0" name="SetpointHoldOff" summary="Follow scheduling program">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="SetpointHoldOn" summary="Maintain current setpoint, regardless of schedule transitions">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ThermostatRunningModeEnum">
+      <item value="0" name="Off" summary="The Thermostat does not generate demand for Cooling or Heating">
+        <optionalConform/>
+      </item>
+      <item value="3" name="Cool" summary="Demand is only generated for Cooling">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+      </item>
+      <item value="4" name="Heat" summary="Demand is only generated for Heating">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+      </item>
+    </enum>
+    <bitmap name="ACErrorCodeBitmap">
+      <bitfield name="CompressorFail" bit="0" summary="Compressor Failure or Refrigerant Leakage">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="RoomSensorFail" bit="1" summary="Room Temperature Sensor Failure">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="OutdoorSensorFail" bit="2" summary="Outdoor Temperature Sensor Failure">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="CoilSensorFail" bit="3" summary="Indoor Coil Temperature Sensor Failure">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="FanFail" bit="4" summary="Fan Failure">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="AlarmCodeBitmap">
+      <bitfield name="Initialization" bit="0" summary="Initialization failure. The device failed to complete initialization at power-up.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Hardware" bit="1" summary="Hardware failure">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SelfCalibration" bit="2" summary="Self-calibration failure">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="HVACSystemTypeBitmap">
+      <bitfield name="CoolingStage" from="1" to="0" summary="Stage of cooling the HVAC system is using.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HeatingStage" from="3" to="2" summary="Stage of heating the HVAC system is using.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HeatingIsHeatPump" bit="4" summary="Is the heating type Heat Pump.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HeatingUsesFuel" bit="5" summary="Does the HVAC system use fuel.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="OccupancyBitmap">
+      <bitfield name="Occupied" bit="0" summary="Indicates the occupancy state">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="PresetTypeFeaturesBitmap">
+      <bitfield name="Automatic" bit="0" summary="Preset may be automatically activated by the thermostat">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="SupportsNames" bit="1" summary="Preset supports user-provided names">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ProgrammingOperationModeBitmap">
+      <bitfield name="ScheduleActive" bit="0" summary="Schedule programming mode. This enables any programmed weekly schedule configurations.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="AutoRecovery" bit="1" summary="Auto/recovery mode">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Economy" bit="2" summary="Economy/EnergyStar mode">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="RelayStateBitmap">
+      <bitfield name="Heat" bit="0" summary="Heat Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Cool" bit="1" summary="Cool Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Fan" bit="2" summary="Fan Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HeatStage2" bit="3" summary="Heat 2 Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="CoolStage2" bit="4" summary="Cool 2 Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="FanStage2" bit="5" summary="Fan 2 Stage On">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="FanStage3" bit="6" summary="Fan 3 Stage On">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="RemoteSensingBitmap">
+      <bitfield name="LocalTemperature" bit="0" summary="Calculated Local Temperature is derived from a remote node">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="OutdoorTemperature" bit="1" summary="OutdoorTemperature is derived from a remote node"/>
+      <bitfield name="Occupancy" bit="2" summary="Occupancy is derived from a remote node">
+        <mandatoryConform>
+          <feature name="OCC"/>
+        </mandatoryConform>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ScheduleDayOfWeekBitmap">
+      <bitfield name="Sunday" bit="0" summary="Sunday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Monday" bit="1" summary="Monday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tuesday" bit="2" summary="Tuesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Wednesday" bit="3" summary="Wednesday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Thursday" bit="4" summary="Thursday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Friday" bit="5" summary="Friday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Saturday" bit="6" summary="Saturday">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Away" bit="7" summary="Away or Vacation">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ScheduleModeBitmap">
+      <bitfield name="HeatSetpointPresent" bit="0" summary="Adjust Heat Setpoint">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="CoolSetpointPresent" bit="1" summary="Adjust Cool Setpoint">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ScheduleTypeFeaturesBitmap">
+      <bitfield name="SupportsPresets" bit="0" summary="Supports presets">
+        <optionalConform choice="b" more="true">
+          <feature name="PRES"/>
+        </optionalConform>
+      </bitfield>
+      <bitfield name="SupportsSetpoints" bit="1" summary="Supports setpoints">
+        <optionalConform choice="b" more="true"/>
+      </bitfield>
+      <bitfield name="SupportsNames" bit="2" summary="Supports user-provided names">
+        <optionalConform/>
+      </bitfield>
+      <bitfield name="SupportsOff" bit="3" summary="Supports transitioning to SystemModeOff">
+        <optionalConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="PresetStruct">
+      <field id="0" name="PresetHandle" type="octstr">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="PresetScenario" type="PresetScenarioEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Name" type="string" default="null">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="3" name="CoolingSetpoint" type="temperature" default="26°C">
+        <mandatoryConform>
+          <feature name="COOL"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="HeatingSetpoint" type="temperature" default="20°C">
+        <mandatoryConform>
+          <feature name="HEAT"/>
+        </mandatoryConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="5" name="BuiltIn" type="bool" default="false">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="PresetTypeStruct">
+      <field id="0" name="PresetScenario" type="PresetScenarioEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NumberOfPresets" type="uint8" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="PresetTypeFeatures" type="PresetTypeFeaturesBitmap" default="0">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="ScheduleStruct">
+      <field id="0" name="ScheduleHandle" type="octstr">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="1" name="SystemMode" type="SystemModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="Name" type="string">
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="3" name="PresetHandle" type="octstr">
+        <optionalConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="4" name="Transitions" type="list" default="empty">
+        <entry type="ScheduleTransitionStruct"/>
+        <mandatoryConform/>
+        <constraint type="countBetween" from="1" to="NumberOfScheduleTransitions Attribute"/>
+      </field>
+      <field id="5" name="BuiltIn" type="bool" default="false">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="ScheduleTransitionStruct">
+      <field id="0" name="DayOfWeek" type="ScheduleDayOfWeekBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="1439"/>
+      </field>
+      <field id="2" name="PresetHandle" type="octstr">
+        <optionalConform>
+          <feature name="PRES"/>
+        </optionalConform>
+        <constraint type="maxLength" value="16"/>
+      </field>
+      <field id="3" name="SystemMode" type="SystemModeEnum">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="CoolingSetpoint" type="temperature">
+        <optionalConform>
+          <feature name="COOL"/>
+        </optionalConform>
+        <constraint type="desc"/>
+      </field>
+      <field id="5" name="HeatingSetpoint" type="temperature">
+        <optionalConform>
+          <feature name="HEAT"/>
+        </optionalConform>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+    <struct name="ScheduleTypeStruct">
+      <field id="0" name="SystemMode" type="SystemModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="NumberOfSchedules" type="uint8" default="0">
+        <mandatoryConform/>
+        <constraint type="max" value="NumberOfSchedules Attribute"/>
+      </field>
+      <field id="2" name="ScheduleTypeFeatures" type="ScheduleTypeFeaturesBitmap" default="0">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </struct>
+    <struct name="WeeklyScheduleTransitionStruct">
+      <field id="0" name="TransitionTime" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="1439"/>
+      </field>
+      <field id="1" name="HeatSetpoint" type="temperature">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="CoolSetpoint" type="temperature">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="LocalTemperature" type="temperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="OutdoorTemperature" type="temperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0002" name="Occupancy" type="OccupancyBitmap" default="1">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="OCC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="AbsMinHeatSetpointLimit" type="temperature" default="7°C">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="HEAT"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0004" name="AbsMaxHeatSetpointLimit" type="temperature" default="30°C">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="HEAT"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0005" name="AbsMinCoolSetpointLimit" type="temperature" default="16°C">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="COOL"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0006" name="AbsMaxCoolSetpointLimit" type="temperature" default="32°C">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="COOL"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0007" name="PICoolingDemand" type="uint8" default="-">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="COOL"/>
+      </optionalConform>
+      <constraint type="between" from="0%" to="100%"/>
+    </attribute>
+    <attribute id="0x0008" name="PIHeatingDemand" type="uint8" default="-">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="HEAT"/>
+      </optionalConform>
+      <constraint type="between" from="0%" to="100%"/>
+    </attribute>
+    <attribute id="0x0009" name="HVACSystemTypeConfiguration" type="HVACSystemTypeBitmap" default="0">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <deprecateConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0010" name="LocalTemperatureCalibration" type="SignedTemperature" default="0°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <notTerm>
+          <feature name="LTNE"/>
+        </notTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0011" name="OccupiedCoolingSetpoint" type="temperature" default="26°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="COOL"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0012" name="OccupiedHeatingSetpoint" type="temperature" default="20°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="HEAT"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0013" name="UnoccupiedCoolingSetpoint" type="temperature" default="26°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="COOL"/>
+          <feature name="OCC"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0014" name="UnoccupiedHeatingSetpoint" type="temperature" default="20°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="HEAT"/>
+          <feature name="OCC"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0015" name="MinHeatSetpointLimit" type="temperature" default="AbsMinHeatSetpointLimit">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="HEAT"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0016" name="MaxHeatSetpointLimit" type="temperature" default="AbsMaxHeatSetpointLimit">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="HEAT"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0017" name="MinCoolSetpointLimit" type="temperature" default="AbsMinCoolSetpointLimit">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="COOL"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0018" name="MaxCoolSetpointLimit" type="temperature" default="AbsMaxCoolSetpointLimit">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="COOL"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0019" name="MinSetpointDeadBand" type="SignedTemperature" default="2.5°C">
+      <access read="true" write="optional" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="AUTO"/>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="12.7°C"/>
+    </attribute>
+    <attribute id="0x001A" name="RemoteSensing" type="RemoteSensingBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="allowed" value="0b0000 0xxx"/>
+    </attribute>
+    <attribute id="0x001B" name="ControlSequenceOfOperation" type="ControlSequenceOfOperationEnum" default="4">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x001C" name="SystemMode" type="SystemModeEnum" default="1">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x001D" name="AlarmMask" type="AlarmCodeBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x001E" name="ThermostatRunningMode" type="ThermostatRunningModeEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform>
+        <feature name="AUTO"/>
+      </optionalConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0020" name="StartOfWeek" type="StartOfWeekEnum" default="–">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0021" name="NumberOfWeeklyTransitions" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0022" name="NumberOfDailyTransitions" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0023" name="TemperatureSetpointHold" type="TemperatureSetpointHoldEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0024" name="TemperatureSetpointHoldDuration" type="uint16" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="max" value="1440"/>
+    </attribute>
+    <attribute id="0x0025" name="ThermostatProgrammingOperationMode" type="ProgrammingOperationModeBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0029" name="ThermostatRunningState" type="RelayStateBitmap" default="-">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0030" name="SetpointChangeSource" type="SetpointChangeSourceEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0031" name="SetpointChangeAmount" type="TemperatureDifference" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0032" name="SetpointChangeSourceTimestamp" type="utc" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0034" name="OccupiedSetback" type="UnsignedTemperature" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SB"/>
+      </mandatoryConform>
+      <constraint type="between" from="OccupiedSetbackMin" to="OccupiedSetbackMax"/>
+    </attribute>
+    <attribute id="0x0035" name="OccupiedSetbackMin" type="UnsignedTemperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SB"/>
+      </mandatoryConform>
+      <constraint type="max" value="OccupiedSetbackMax"/>
+    </attribute>
+    <attribute id="0x0036" name="OccupiedSetbackMax" type="UnsignedTemperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="SB"/>
+      </mandatoryConform>
+      <constraint type="between" from="OccupiedSetbackMin" to="25.4°C"/>
+    </attribute>
+    <attribute id="0x0037" name="UnoccupiedSetback" type="UnsignedTemperature" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="SB"/>
+          <feature name="OCC"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="UnoccupiedSetbackMin" to="UnoccupiedSetbackMax"/>
+    </attribute>
+    <attribute id="0x0038" name="UnoccupiedSetbackMin" type="UnsignedTemperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="SB"/>
+          <feature name="OCC"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="max" value="UnoccupiedSetbackMax"/>
+    </attribute>
+    <attribute id="0x0039" name="UnoccupiedSetbackMax" type="UnsignedTemperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="SB"/>
+          <feature name="OCC"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="UnoccupiedSetbackMin" to="25.4°C"/>
+    </attribute>
+    <attribute id="0x003A" name="EmergencyHeatDelta" type="UnsignedTemperature" default="25.5°C">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0040" name="ACType" type="ACTypeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0041" name="ACCapacity" type="uint16" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0042" name="ACRefrigerantType" type="ACRefrigerantTypeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0043" name="ACCompressorType" type="ACCompressorTypeEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0044" name="ACErrorCode" type="ACErrorCodeBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0045" name="ACLouverPosition" type="ACLouverPositionEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0046" name="ACCoilTemperature" type="temperature" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0047" name="ACCapacityFormat" type="ACCapacityFormatEnum" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0048" name="PresetTypes" type="list" default="MS">
+      <entry type="PresetTypeStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PRES"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0049" name="ScheduleTypes" type="list" default="MS">
+      <entry type="ScheduleTypeStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x004A" name="NumberOfPresets" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PRES"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x004B" name="NumberOfSchedules" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x004C" name="NumberOfScheduleTransitions" type="uint8" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x004D" name="NumberOfScheduleTransitionPerDay" type="uint8" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x004E" name="ActivePresetHandle" type="octstr" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PRES"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x004F" name="ActiveScheduleHandle" type="octstr" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0050" name="Presets" type="list" default="empty">
+      <entry type="PresetStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PRES"/>
+      </mandatoryConform>
+      <constraint type="maxCount" value="NumberOfPresets"/>
+    </attribute>
+    <attribute id="0x0051" name="Schedules" type="list" default="empty">
+      <entry type="ScheduleStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0052" name="SetpointHoldExpiryTimestamp" type="epoch-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SetpointRaiseLower" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="Mode" type="SetpointRaiseLowerModeEnum">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="Amount" type="int8">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x00" name="GetWeeklyScheduleResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+      <field id="0" name="NumberOfTransitionsForSequence" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DayOfWeekForSequence" type="ScheduleDayOfWeekBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="ModeForSequence" type="ScheduleModeBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="Transitions" type="list">
+        <entry type="WeeklyScheduleTransitionStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+    </command>
+    <command id="0x01" name="SetWeeklySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+      <field id="0" name="NumberOfTransitionsForSequence" type="uint8">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="DayOfWeekForSequence" type="ScheduleDayOfWeekBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="ModeForSequence" type="ScheduleModeBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="Transitions" type="list">
+        <entry type="WeeklyScheduleTransitionStruct"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="10"/>
+      </field>
+    </command>
+    <command id="0x01" name="GetRelayStatusLogResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <command name="GetRelayStatusLog"/>
+      </mandatoryConform>
+      <field id="0" name="TimeOfDay" type="uint16">
+        <mandatoryConform/>
+        <constraint type="max" value="1439"/>
+      </field>
+      <field id="1" name="RelayStatus" type="RelayStateBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="2" name="LocalTemperature" type="temperature">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="HumidityInPercentage" type="uint8">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="between" from="0%" to="100%"/>
+      </field>
+      <field id="4" name="SetPoint" type="temperature">
+        <mandatoryConform/>
+      </field>
+      <field id="5" name="UnreadEntries" type="uint16">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="GetWeeklySchedule" direction="commandToServer" response="GetWeeklyScheduleResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+      <field id="0" name="DaysToReturn" type="ScheduleDayOfWeekBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="ModeToReturn" type="ScheduleModeBitmap">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x03" name="ClearWeeklySchedule" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="SCH"/>
+      </mandatoryConform>
+    </command>
+    <command id="0x04" name="GetRelayStatusLog" direction="commandToServer" response="GetRelayStatusLogResponse">
+      <access invokePrivilege="operate"/>
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </command>
+    <command id="0x05" name="SetActiveScheduleRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="MSCH"/>
+      </mandatoryConform>
+      <field id="0" name="ScheduleHandle" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+    <command id="0x06" name="SetActivePresetRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="PRES"/>
+      </mandatoryConform>
+      <field id="0" name="PresetHandle" type="octstr">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="16"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/in_progress/clusters/ThermostatUserInterfaceConfiguration.xml
new file mode 100644
index 0000000..d6a5224
--- /dev/null
+++ b/data_model/in_progress/clusters/ThermostatUserInterfaceConfiguration.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0204" name="Thermostat User Interface Configuration Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="New data model format and notation, added &quot;Conversion of Temperature Values for Display&quot; section"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0204" name="Thermostat User Interface Configuration"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TSUIC" scope="Endpoint"/>
+  <dataTypes>
+    <enum name="KeypadLockoutEnum">
+      <item value="0" name="NoLockout" summary="All functionality available to the user">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Lockout1" summary="Level 1 reduced functionality">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Lockout2" summary="Level 2 reduced functionality">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Lockout3" summary="Level 3 reduced functionality">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Lockout4" summary="Level 4 reduced functionality">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Lockout5" summary="Least functionality available to the user">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ScheduleProgrammingVisibilityEnum">
+      <item value="0" name="ScheduleProgrammingPermitted" summary="Local schedule programming functionality is enabled at the thermostat">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="ScheduleProgrammingDenied" summary="Local schedule programming functionality is disabled at the thermostat">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="TemperatureDisplayModeEnum">
+      <item value="0" name="Celsius" summary="Temperature displayed in °C">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Fahrenheit" summary="Temperature displayed in °F">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="TemperatureDisplayMode" type="TemperatureDisplayModeEnum" default="Celsius">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="KeypadLockout" type="KeypadLockoutEnum" default="NoLockout">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="ScheduleProgrammingVisibility" type="ScheduleProgrammingVisibilityEnum" default="ScheduleProgrammingPermitted">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ThreadBorderRouterManagement.xml b/data_model/in_progress/clusters/ThreadBorderRouterManagement.xml
new file mode 100644
index 0000000..7ae4eda
--- /dev/null
+++ b/data_model/in_progress/clusters/ThreadBorderRouterManagement.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0452" name="Thread Border Router Management Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0452" name="Thread Border Router Management"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="TBRM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PC" name="PANChange" summary="The ability to change PAN configuration with pending dataset setting request.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="BorderRouterName" type="string">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="lengthBetween" from="1" to="63"/>
+    </attribute>
+    <attribute id="0x0001" name="BorderAgentID" type="octstr">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0002" name="ThreadVersion" type="uint16" default="MS">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0003" name="InterfaceEnabled" type="bool" default="false">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="ActiveDatasetTimestamp" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="PendingDatasetTimestamp" type="uint64" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="GetActiveDatasetRequest" direction="commandToServer" response="DatasetResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="GetPendingDatasetRequest" direction="commandToServer" response="DatasetResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="DatasetResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="Dataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+    </command>
+    <command id="0x03" name="SetActiveDatasetRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="ActiveDataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+      <field id="1" name="Breadcrumb" type="uint64">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x04" name="SetPendingDatasetRequest" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform>
+        <feature name="PC"/>
+      </mandatoryConform>
+      <field id="0" name="PendingDataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ThreadNetworkDirectory.xml b/data_model/in_progress/clusters/ThreadNetworkDirectory.xml
new file mode 100644
index 0000000..e511299
--- /dev/null
+++ b/data_model/in_progress/clusters/ThreadNetworkDirectory.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0453" name="Thread Network Directory Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0453" name="Thread Network Directory"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="THNETDIR" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="ThreadNetworkStruct">
+      <field id="0" name="ExtendedPanID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+      <field id="1" name="NetworkName" type="string">
+        <mandatoryConform/>
+        <constraint type="lengthBetween" from="1" to="16"/>
+      </field>
+      <field id="2" name="Channel" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="ActiveTimestamp" type="uint64">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="PreferredExtendedPanID" type="octstr" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="8"/>
+    </attribute>
+    <attribute id="0x0001" name="ThreadNetworks" type="list">
+      <entry type="ThreadNetworkStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="ThreadNetworkTableSize"/>
+    </attribute>
+    <attribute id="0x0002" name="ThreadNetworkTableSize" type="uint8" default="10">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="AddNetwork" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="OperationalDataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+    </command>
+    <command id="0x01" name="RemoveNetwork" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage" timed="true"/>
+      <mandatoryConform/>
+      <field id="0" name="ExtendedPanID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+    </command>
+    <command id="0x02" name="GetOperationalDataset" direction="commandToServer" response="OperationalDatasetResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="ExtendedPanID" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="8"/>
+      </field>
+    </command>
+    <command id="0x03" name="OperationalDatasetResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="OperationalDataset" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="254"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/TimeSync.xml b/data_model/in_progress/clusters/TimeSync.xml
new file mode 100644
index 0000000..e72a9d3
--- /dev/null
+++ b/data_model/in_progress/clusters/TimeSync.xml
@@ -0,0 +1,411 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:imagesdir: service_device_management/images

+:xrefstyle: full

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0038" name="Time Synchronization Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Make TrustedTimeSource fabric-aware, add TSC feature, define list max sizes, change writable attributes to commands, remote port, add attribute for DNS support"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0038" name="Time Synchronization"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="TIMESYNC" scope="Node"/>
+  <features>
+    <feature bit="0" code="TZ" name="TimeZone" summary="Server supports time zone.">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="NTPC" name="NTPClient" summary="Server supports an NTP or SNTP client.">
+      <optionalConform/>
+    </feature>
+    <feature bit="2" code="NTPS" name="NTPServer" summary="Server supports an NTP server role.">
+      <optionalConform/>
+    </feature>
+    <feature bit="3" code="TSC" name="TimeSyncClient" summary="Time synchronization client cluster is present.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="GranularityEnum">
+      <item value="0" name="NoTimeGranularity" summary="This indicates that the node is not currently synchronized with a UTC Time source and its clock is based on the Last Known Good UTC Time only.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="MinutesGranularity" summary="This indicates the node was synchronized to an upstream source in the past, but sufficient clock drift has occurred such that the clock error is now &gt; 5 seconds.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="SecondsGranularity" summary="This indicates the node is synchronized to an upstream source using a low resolution protocol. UTC Time is accurate to ± 5 seconds.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="MillisecondsGranularity" summary="This indicates the node is synchronized to an upstream source using high resolution time-synchronization protocol such as NTP, or has built-in GNSS with some amount of jitter applying its GNSS timestamp. UTC Time is accurate to ± 50 ms.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="MicrosecondsGranularity" summary="This indicates the node is synchronized to an upstream source using a highly precise time-synchronization protocol such as PTP, or has built-in GNSS. UTC time is accurate to ± 10 μs.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="Status Codes" type="status"/>
+    <enum name="TimeSourceEnum">
+      <item value="0" name="None" summary="Node is not currently synchronized with a UTC Time source.">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Unknown" summary="Node uses an unlisted time source.">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Admin" summary="Node received time from a client using the SetUTCTime Command.">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="NodeTimeCluster" summary="Synchronized time by querying the Time Synchronization cluster of another Node.">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="NonMatterSNTP" summary="SNTP from a server not in the Matter network. NTS is not used.">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="NonMatterNTP" summary="NTP from servers not in the Matter network. None of the servers used NTS.">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="MatterSNTP" summary="SNTP from a server within the Matter network. NTS is not used.">
+        <mandatoryConform/>
+      </item>
+      <item value="7" name="MatterNTP" summary="NTP from servers within the Matter network. None of the servers used NTS.">
+        <mandatoryConform/>
+      </item>
+      <item value="8" name="MixedNTP" summary="NTP from multiple servers in the Matter network and external. None of the servers used NTS.">
+        <mandatoryConform/>
+      </item>
+      <item value="9" name="NonMatterSNTPNTS" summary="SNTP from a server not in the Matter network. NTS is used.">
+        <mandatoryConform/>
+      </item>
+      <item value="10" name="NonMatterNTPNTS" summary="NTP from servers not in the Matter network. NTS is used on at least one server.">
+        <mandatoryConform/>
+      </item>
+      <item value="11" name="MatterSNTPNTS" summary="SNTP from a server within the Matter network. NTS is used.">
+        <mandatoryConform/>
+      </item>
+      <item value="12" name="MatterNTPNTS" summary="NTP from a server within the Matter network. NTS is used on at least one server.">
+        <mandatoryConform/>
+      </item>
+      <item value="13" name="MixedNTPNTS" summary="NTP from multiple servers in the Matter network and external. NTS is used on at least one server.">
+        <mandatoryConform/>
+      </item>
+      <item value="14" name="CloudSource" summary="Time synchronization comes from a vendor cloud-based source (e.g. &quot;Date&quot; header in authenticated HTTPS connection).">
+        <mandatoryConform/>
+      </item>
+      <item value="15" name="PTP" summary="Time synchronization comes from PTP.">
+        <mandatoryConform/>
+      </item>
+      <item value="16" name="GNSS" summary="Time synchronization comes from a GNSS source.">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="TimeZoneDatabaseEnum">
+      <item value="0" name="Full" summary="Node has a full list of the available time zones">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Partial" summary="Node has a partial list of the available time zones">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="None" summary="Node does not have a time zone database">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <struct name="DSTOffsetStruct">
+      <field id="0" name="Offset" type="int32">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="ValidStarting" type="epoch-us">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="ValidUntil" type="epoch-us">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="FabricScopedTrustedTimeSourceStruct">
+      <field id="0" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Endpoint" type="endpoint-no">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="TimeZoneStruct">
+      <field id="0" name="Offset" type="int32">
+        <mandatoryConform/>
+        <constraint type="between" from="-43200" to="50400"/>
+      </field>
+      <field id="1" name="ValidAt" type="epoch-us">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Name" type="string">
+        <optionalConform/>
+        <constraint type="lengthBetween" from="0" to="64"/>
+      </field>
+    </struct>
+    <struct name="TrustedTimeSourceStruct">
+      <field id="0" name="FabricIndex" type="fabric-idx">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="NodeID" type="node-id">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Endpoint" type="endpoint-no">
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="UTCTime" type="epoch-us" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="Granularity" type="GranularityEnum" default="NoTimeGranularity">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0002" name="TimeSource" type="TimeSourceEnum" default="None">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0003" name="TrustedTimeSource" type="TrustedTimeSourceStruct" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TSC"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="DefaultNTP" type="string" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="NTPC"/>
+      </mandatoryConform>
+      <constraint type="maxLength" value="128"/>
+    </attribute>
+    <attribute id="0x0005" name="TimeZone" type="list" default="[{0,0}]">
+      <entry type="TimeZoneStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <constraint type="countBetween" from="1" to="2"/>
+    </attribute>
+    <attribute id="0x0006" name="DSTOffset" type="list" default="[]">
+      <entry type="DSTOffsetStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="LocalTime" type="epoch-us" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="true" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="TimeZoneDatabase" type="TimeZoneDatabaseEnum" default="None">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0009" name="NTPServerAvailable" type="bool" default="False">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="NTPS"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000A" name="TimeZoneListMaxSize" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <constraint type="between" from="1" to="2"/>
+    </attribute>
+    <attribute id="0x000B" name="DSTOffsetListMaxSize" type="uint8">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x000C" name="SupportsDNSResolve" type="bool" default="False">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="NTPC"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="SetUTCTime" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform/>
+      <field id="0" name="UTCTime" type="epoch-us" default="0">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Granularity" type="GranularityEnum" default="NoTimeGranularity">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="TimeSource" type="TimeSourceEnum" default="None">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="SetTrustedTimeSource" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin" fabricScoped="true"/>
+      <mandatoryConform>
+        <feature name="TSC"/>
+      </mandatoryConform>
+      <field id="0" name="TrustedTimeSource" type="FabricScopedTrustedTimeSourceStruct">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="SetTimeZone" direction="commandToServer" response="SetTimeZoneResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <field id="0" name="TimeZone" type="list">
+        <entry type="TimeZoneStruct"/>
+        <mandatoryConform/>
+        <constraint type="countBetween" from="1" to="2"/>
+      </field>
+    </command>
+    <command id="0x03" name="SetTimeZoneResponse" direction="responseFromServer">
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <field id="0" name="DSTOffsetsRequired" type="bool" default="true">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="SetDSTOffset" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <field id="0" name="DSTOffset" type="list">
+        <entry type="DSTOffsetStruct"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x05" name="SetDefaultNTP" direction="commandToServer" response="Y">
+      <access invokePrivilege="admin"/>
+      <mandatoryConform>
+        <feature name="NTPC"/>
+      </mandatoryConform>
+      <field id="0" name="DefaultNTP" type="string">
+        <quality nullable="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="128"/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="DSTTableEmpty" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+    </event>
+    <event id="0x01" name="DSTStatus" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <field id="0" name="DSTOffsetActive" type="bool">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x02" name="TimeZoneStatus" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TZ"/>
+      </mandatoryConform>
+      <field id="0" name="Offset" type="int32">
+        <mandatoryConform/>
+        <constraint type="between" from="-43200" to="50400"/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <optionalConform/>
+        <constraint type="lengthBetween" from="0" to="64 bytes"/>
+      </field>
+    </event>
+    <event id="0x03" name="TimeFailure" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+    <event id="0x04" name="MissingTrustedTimeSource" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TSC"/>
+      </mandatoryConform>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ValidProxies-Cluster.xml b/data_model/in_progress/clusters/ValidProxies-Cluster.xml
new file mode 100644
index 0000000..51cfeed
--- /dev/null
+++ b/data_model/in_progress/clusters/ValidProxies-Cluster.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0044" name="Valid Proxies Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0044" name="ValidProxies">
+      <provisionalConform/>
+    </clusterId>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="PXVALID" scope="Node"/>
+  <dataTypes>
+    <struct name="ValidProxyStruct">
+      <field id="1" name="NodeID" type="node-id">
+        <access read="true" write="true"/>
+        <mandatoryConform/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ValidProxyList" type="list" default="empty">
+      <entry type="ValidProxyStruct"/>
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="allowed" value="N/A"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="GetValidProxiesRequest" direction="commandToServer" response="GetValidProxiesResponse">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="GetValidProxiesResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field id="0" name="ProxyNodeIdList" type="list">
+        <entry type="node-id"/>
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/ValveConfigurationControl.xml b/data_model/in_progress/clusters/ValveConfigurationControl.xml
new file mode 100644
index 0000000..03d40ac
--- /dev/null
+++ b/data_model/in_progress/clusters/ValveConfigurationControl.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0081" name="Valve Configuration and Control Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Q quality for CurrentLevel"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0081" name="Valve Configuration and Control"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="VALCC" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="TS" name="TimeSync" summary="UTC time is used for time indications"/>
+    <feature bit="1" code="LVL" name="Level" summary="Device supports setting the specific position of the valve">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="Status Codes" type="status"/>
+    <enum name="ValveStateEnum">
+      <item value="0" name="Closed" summary="Valve is in closed position">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Open" summary="Valve is in open position">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Transitioning" summary="Valve is transitioning between closed and open positions or between levels">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="ValveFaultBitmap">
+      <bitfield name="GeneralFault" bit="0" summary="Unspecified fault detected">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Blocked" bit="1" summary="Valve is blocked">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Leaking" bit="2" summary="Valve has detected a leak">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="NotConnected" bit="3" summary="No valve is connected to controller">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ShortCircuit" bit="4" summary="Short circuit is detected">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="CurrentExceeded" bit="5" summary="The available current has been exceeded">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="OpenDuration" type="elapsed-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0001" name="DefaultOpenDuration" type="elapsed-s" default="null">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="min" value="1"/>
+    </attribute>
+    <attribute id="0x0002" name="AutoCloseTime" type="epoch-us" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="TS"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="RemainingDuration" type="elapsed-s" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0004" name="CurrentState" type="ValveStateEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0005" name="TargetState" type="ValveStateEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0006" name="CurrentLevel" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <feature name="LVL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0007" name="TargetLevel" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="LVL"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0008" name="DefaultOpenLevel" type="percent" default="100">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="operate"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="LVL"/>
+      </optionalConform>
+      <constraint type="between" from="1" to="100"/>
+    </attribute>
+    <attribute id="0x0009" name="ValveFault" type="ValveFaultBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000A" name="LevelStep" type="uint8" default="1">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="LVL"/>
+      </optionalConform>
+      <constraint type="between" from="1" to="50"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Open" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+      <field id="0" name="OpenDuration" type="elapsed-s">
+        <quality nullable="true"/>
+        <optionalConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="TargetLevel" type="percent">
+        <optionalConform>
+          <feature name="LVL"/>
+        </optionalConform>
+        <constraint type="min" value="1"/>
+      </field>
+    </command>
+    <command id="0x01" name="Close" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="ValveStateChanged" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ValveState" type="ValveStateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="ValveLevel" type="percent">
+        <mandatoryConform>
+          <feature name="LVL"/>
+        </mandatoryConform>
+      </field>
+    </event>
+    <event id="0x01" name="ValveFault" priority="info">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="ValveFault" type="ValveFaultBitmap">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/WakeOnLAN.xml b/data_model/in_progress/clusters/WakeOnLAN.xml
new file mode 100644
index 0000000..092e0a8
--- /dev/null
+++ b/data_model/in_progress/clusters/WakeOnLAN.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0503" name="Wake On LAN Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0503" name="Wake on LAN"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="WAKEONLAN" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="MACAddress" type="string">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="12"/>
+    </attribute>
+    <attribute id="0x0001" name="LinkLocalAddress" type="ipv6adr">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/WaterContentMeasurement.xml b/data_model/in_progress/clusters/WaterContentMeasurement.xml
new file mode 100644
index 0000000..af11c9c
--- /dev/null
+++ b/data_model/in_progress/clusters/WaterContentMeasurement.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="" name="Water Content Measurement Clusters" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added"/>
+    <revision revision="2" summary="CCB 2241"/>
+    <revision revision="3" summary="New data model format and notation"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0405" name="Relative Humidity Measurement"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="RH" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="MeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue" to="MaxMeasuredValue"/>
+    </attribute>
+    <attribute id="0x0001" name="MinMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="0" to="MaxMeasuredValue-1"/>
+    </attribute>
+    <attribute id="0x0002" name="MaxMeasuredValue" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="between" from="MinMeasuredValue+1" to="10000"/>
+    </attribute>
+    <attribute id="0x0003" name="Tolerance" type="uint16">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="between" from="0" to="2048"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/WaterHeaterManagement.xml b/data_model/in_progress/clusters/WaterHeaterManagement.xml
new file mode 100644
index 0000000..96dcc2b
--- /dev/null
+++ b/data_model/in_progress/clusters/WaterHeaterManagement.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0094" name="Water Heater Management Cluster" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added events and simplified data types"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0094" name="Water Heater Management"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="EWATERHTR" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="EM" name="EnergyManagement" summary="Allows energy management control of the tank">
+      <optionalConform/>
+    </feature>
+    <feature bit="1" code="TP" name="TankPercent" summary="Supports monitoring the percentage of hot water in the tank">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="BoostStateEnum">
+      <item value="0" name="Inactive" summary="Boost is not currently active">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Active" summary="Boost is currently active">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="WaterHeaterHeatSourceBitmap">
+      <bitfield name="ImmersionElement1" bit="0" summary="Immersion Heating Element 1">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ImmersionElement2" bit="1" summary="Immersion Heating Element 2">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HeatPump" bit="2" summary="Heat pump Heating">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Boiler" bit="3" summary="Boiler Heating (e.g. Gas or Oil)">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Other" bit="4" summary="Other Heating">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="WaterHeaterBoostInfoStruct">
+      <field id="0" name="Duration" type="elapsed-s">
+        <mandatoryConform/>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="OneShot" type="bool" default="False"/>
+      <field id="2" name="EmergencyBoost" type="bool" default="False">
+        <optionalConform/>
+      </field>
+      <field id="3" name="TemporarySetpoint" type="temperature">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="TargetPercentage" type="percent">
+        <otherwiseConform>
+          <mandatoryConform>
+            <attribute name="TargetReheat"/>
+          </mandatoryConform>
+          <optionalConform>
+            <feature name="TP"/>
+          </optionalConform>
+        </otherwiseConform>
+      </field>
+      <field id="5" name="TargetReheat" type="percent">
+        <constraint type="max" value="TargetPercentage"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="HeaterTypes" type="WaterHeaterHeatSourceBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="HeatDemand" type="WaterHeaterHeatSourceBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="TankVolume" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="EM"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0003" name="EstimatedHeatRequired" type="energy-mWh" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="EM"/>
+      </mandatoryConform>
+      <constraint type="min" value="0"/>
+    </attribute>
+    <attribute id="0x0004" name="TankPercentage" type="percent" default="0">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="TP"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0005" name="BoostState" type="BoostStateEnum" default="Inactive">
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="Boost" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+      <field id="0" name="BoostInfo" type="WaterHeaterBoostInfoStruct">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x01" name="CancelBoost" direction="commandToServer" response="Y">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="BoostStarted" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="BoostInfo" type="WaterHeaterBoostInfoStruct">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </event>
+    <event id="0x01" name="BoostEnded" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/WiFiNetworkManagement.xml b/data_model/in_progress/clusters/WiFiNetworkManagement.xml
new file mode 100644
index 0000000..3aad593
--- /dev/null
+++ b/data_model/in_progress/clusters/WiFiNetworkManagement.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0451" name="Wi-Fi Network Management Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0451" name="Wi-Fi Network Management"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="WIFINM" scope="Endpoint"/>
+  <attributes>
+    <attribute id="0x0000" name="SSID" type="octstr" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="lengthBetween" from="1" to="32"/>
+    </attribute>
+    <attribute id="0x0001" name="PassphraseSurrogate" type="uint64" default="null">
+      <access read="true" readPrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="NetworkPassphraseRequest" direction="commandToServer" response="NetworkPassphraseResponse">
+      <access invokePrivilege="manage"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="NetworkPassphraseResponse" direction="responseFromServer">
+      <mandatoryConform/>
+      <field name="Passphrase" type="octstr">
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/WindowCovering.xml b/data_model/in_progress/clusters/WindowCovering.xml
new file mode 100644
index 0000000..f8c60b4
--- /dev/null
+++ b/data_model/in_progress/clusters/WindowCovering.xml
@@ -0,0 +1,700 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: basic

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0102" name="Window Covering Cluster" revision="6">
+  <revisionHistory>
+    <revision revision="1" summary="Mandatory global ClusterRevision attribute added; CCB 1994 1995 1996 1997 2086 2094 2095 2096 2097"/>
+    <revision revision="2" summary="CCB 2328"/>
+    <revision revision="3" summary="CCB 2477 2555 2845 3028"/>
+    <revision revision="4" summary="All Hubs changes with FeatureMap &amp; OperationalStatus attribute"/>
+    <revision revision="5" summary="New data model format and notation. Created plus clarified PositionAware and AbsolutePosition features. General cleanup of functionality."/>
+    <revision revision="6" summary="Added Q quality for all CurrentPosition attributes"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0102" name="Window Covering"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="WNCV" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="LF" name="Lift" summary="Lift control and behavior for lifting/sliding window coverings">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="1" code="TL" name="Tilt" summary="Tilt control and behavior for tilting window coverings">
+      <optionalConform choice="a" more="true"/>
+    </feature>
+    <feature bit="2" code="PA_LF" name="PositionAwareLift" summary="Position aware lift control is supported.">
+      <optionalConform>
+        <feature name="LF"/>
+      </optionalConform>
+    </feature>
+    <feature bit="3" code="ABS" name="AbsolutePosition" summary="Absolute positioning is supported.">
+      <optionalConform/>
+    </feature>
+    <feature bit="4" code="PA_TL" name="PositionAwareTilt" summary="Position aware tilt control is supported.">
+      <optionalConform>
+        <feature name="TL"/>
+      </optionalConform>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="EndProductTypeEnum">
+      <item value="0" name="RollerShade" summary="Simple Roller Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="RomanShade" summary="Roman Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="BalloonShade" summary="Balloon Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="WovenWood" summary="Woven Wood">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="PleatedShade" summary="Pleated Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="CellularShade" summary="Cellular Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="LayeredShade" summary="Layered Shade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="LayeredShade2D" summary="Layered Shade 2D">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="8" name="SheerShade" summary="Sheer Shade">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="9" name="TiltOnlyInteriorBlind" summary="Tilt Only Interior Blind">
+        <mandatoryConform>
+          <feature name="TL"/>
+        </mandatoryConform>
+      </item>
+      <item value="10" name="InteriorBlind" summary="Interior Blind">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="11" name="VerticalBlindStripCurtain" summary="Vertical Blind, Strip Curtain">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="12" name="InteriorVenetianBlind" summary="Interior Venetian Blind">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="13" name="ExteriorVenetianBlind" summary="Exterior Venetian Blind">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="14" name="LateralLeftCurtain" summary="Lateral Left Curtain">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="15" name="LateralRightCurtain" summary="Lateral Right Curtain">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="16" name="CentralCurtain" summary="Central Curtain">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="17" name="RollerShutter" summary="Roller Shutter">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="18" name="ExteriorVerticalScreen" summary="Exterior Vertical Screen">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="19" name="AwningTerracePatio" summary="Awning Terrace (Patio)">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="20" name="AwningVerticalScreen" summary="Awning Vertical Screen">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="21" name="TiltOnlyPergola" summary="Tilt Only Pergola">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="22" name="SwingingShutter" summary="Swinging Shutter">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="23" name="SlidingShutter" summary="Sliding Shutter">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="255" name="Unknown" summary="Unknown">
+        <optionalConform/>
+      </item>
+    </enum>
+    <enum name="TypeEnum">
+      <item value="0" name="RollerShade" summary="RollerShade">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="1" name="RollerShade2Motor" summary="RollerShade - 2 Motor">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="2" name="RollerShadeExterior" summary="RollerShade - Exterior">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="3" name="RollerShadeExterior2Motor" summary="RollerShade - Exterior - 2 Motor">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="4" name="Drapery" summary="Drapery (curtain)">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="5" name="Awning" summary="Awning">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="6" name="Shutter" summary="Shutter">
+        <mandatoryConform>
+          <orTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </orTerm>
+        </mandatoryConform>
+      </item>
+      <item value="7" name="TiltBlindTiltOnly" summary="Tilt Blind - Tilt Only">
+        <mandatoryConform>
+          <feature name="TL"/>
+        </mandatoryConform>
+      </item>
+      <item value="8" name="TiltBlindLiftAndTilt" summary="Tilt Blind - Lift &amp; Tilt">
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="TL"/>
+          </andTerm>
+        </mandatoryConform>
+      </item>
+      <item value="9" name="ProjectorScreen" summary="Projector Screen">
+        <mandatoryConform>
+          <feature name="LF"/>
+        </mandatoryConform>
+      </item>
+      <item value="255" name="Unknown" summary="Unknown">
+        <optionalConform/>
+      </item>
+    </enum>
+    <bitmap name="ConfigStatusBitmap">
+      <bitfield name="Operational" bit="0" summary="Device is operational.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="OnlineReserved" bit="1" summary="Deprecated and reserved.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LiftMovementReversed" bit="2" summary="The lift movement is reversed.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LiftPositionAware" bit="3" summary="Supports the PositionAwareLift feature (PA_LF).">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="TiltPositionAware" bit="4" summary="Supports the PositionAwareTilt feature (PA_TL).">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LiftEncoderControlled" bit="5" summary="Uses an encoder for lift.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="TiltEncoderControlled" bit="6" summary="Uses an encoder for tilt.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="ModeBitmap">
+      <bitfield name="MotorDirectionReversed" bit="0" summary="Reverse the lift direction.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="CalibrationMode" bit="1" summary="Perform a calibration.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="MaintenanceMode" bit="2" summary="Freeze all motions for maintenance.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="LedFeedback" bit="3" summary="Control the LEDs feedback.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="OperationalStatusBitmap">
+      <bitfield name="Global" from="1" to="0" summary="Global operational state.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Lift" from="3" to="2" summary="Lift operational state.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Tilt" from="5" to="4" summary="Tilt operational state.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <bitmap name="SafetyStatusBitmap">
+      <bitfield name="RemoteLockout" bit="0" summary="Movement commands are ignored (locked out). e.g. not granted authorization, outside some time/date range.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="TamperDetection" bit="1" summary="Tampering detected on sensors or any other safety equipment. Ex: a device has been forcedly moved without its actuator(s).">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="FailedCommunication" bit="2" summary="Communication failure to sensors or other safety equipment.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="PositionFailure" bit="3" summary="Device has failed to reach the desired position. e.g. with position aware device, time expired before TargetPosition is reached.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ThermalProtection" bit="4" summary="Motor(s) and/or electric circuit thermal protection activated.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ObstacleDetected" bit="5" summary="An obstacle is preventing actuator movement.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Power" bit="6" summary="Device has power related issue or limitation e.g. device is running w/ the help of a backup battery or power might not be fully available at the moment.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="StopInput" bit="7" summary="Local safety sensor (not a direct obstacle) is preventing movements (e.g. Safety EU Standard EN60335).">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="MotorJammed" bit="8" summary="Mechanical problem related to the motor(s) detected.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="HardwareFailure" bit="9" summary="PCB, fuse and other electrics problems.">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ManualOperation" bit="10" summary="Actuator is manually operated and is preventing actuator movement (e.g. actuator is disengaged/decoupled).">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="Protection" bit="11" summary="Protection is activated.">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="Type" type="TypeEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0001" name="PhysicalClosedLimitLift" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0002" name="PhysicalClosedLimitTilt" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0003" name="CurrentPositionLift" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+      <constraint type="between" from="InstalledOpenLimitLift" to="InstalledClosedLimitLift"/>
+    </attribute>
+    <attribute id="0x0004" name="CurrentPositionTilt" type="uint16" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+      <constraint type="between" from="InstalledOpenLimitTilt" to="InstalledClosedLimitTilt"/>
+    </attribute>
+    <attribute id="0x0005" name="NumberOfActuationsLift" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="LF"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0006" name="NumberOfActuationsTilt" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform>
+        <feature name="TL"/>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0007" name="ConfigStatus" type="ConfigStatusBitmap" default="desc">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x0008" name="CurrentPositionLiftPercentage" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+        </andTerm>
+      </optionalConform>
+    </attribute>
+    <attribute id="0x0009" name="CurrentPositionTiltPercentage" type="percent" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+        </andTerm>
+      </optionalConform>
+      <constraint type="between" from="0" to="100"/>
+    </attribute>
+    <attribute id="0x000A" name="OperationalStatus" type="OperationalStatusBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="allowed" value="0b00xx xxxx"/>
+    </attribute>
+    <attribute id="0x000B" name="TargetPositionLiftPercent100ths" type="percent100ths" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000C" name="TargetPositionTiltPercent100ths" type="percent100ths" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+        </andTerm>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x000D" name="EndProductType" type="EndProductTypeEnum" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="desc"/>
+    </attribute>
+    <attribute id="0x000E" name="CurrentPositionLiftPercent100ths" type="percent100ths" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="10000"/>
+    </attribute>
+    <attribute id="0x000F" name="CurrentPositionTiltPercent100ths" type="percent100ths" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="true" sourceAttribution="false" quieterReporting="true"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="10000"/>
+    </attribute>
+    <attribute id="0x0010" name="InstalledOpenLimitLift" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="65534"/>
+    </attribute>
+    <attribute id="0x0011" name="InstalledClosedLimitLift" type="uint16" default="65534">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="PA_LF"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="65534"/>
+    </attribute>
+    <attribute id="0x0012" name="InstalledOpenLimitTilt" type="uint16" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="65534"/>
+    </attribute>
+    <attribute id="0x0013" name="InstalledClosedLimitTilt" type="uint16" default="65534">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="PA_TL"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </mandatoryConform>
+      <constraint type="between" from="0" to="65534"/>
+    </attribute>
+    <attribute id="0x0014" name="VelocityLift">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0015" name="AccelerationTimeLift">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0016" name="DecelerationTimeLift">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0017" name="Mode" type="ModeBitmap" default="0">
+      <access read="true" write="true" readPrivilege="view" writePrivilege="manage"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="allowed" value="0b0000 xxxx"/>
+    </attribute>
+    <attribute id="0x0018" name="IntermediateSetpointsLift">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x0019" name="IntermediateSetpointsTilt">
+      <deprecateConform/>
+    </attribute>
+    <attribute id="0x001A" name="SafetyStatus" type="SafetyStatusBitmap" default="0">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="volatile" reportable="true" sourceAttribution="false" quieterReporting="false"/>
+      <optionalConform/>
+      <constraint type="desc"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="UpOrOpen" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x01" name="DownOrClose" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x02" name="StopMotion" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform/>
+    </command>
+    <command id="0x04" name="GoToLiftValue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="LF"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+      <field id="0" name="LiftValue" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x05" name="GoToLiftPercentage" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <feature name="LF"/>
+            <feature name="PA_LF"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="LF"/>
+        </optionalConform>
+      </otherwiseConform>
+      <field id="0" name="LiftPercentageValue" type="percent">
+        <optionalConform choice="b"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="LiftPercent100thsValue" type="percent100ths">
+        <optionalConform choice="b"/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x07" name="GoToTiltValue" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <optionalConform>
+        <andTerm>
+          <feature name="TL"/>
+          <feature name="ABS"/>
+        </andTerm>
+      </optionalConform>
+      <field id="0" name="TiltValue" type="uint16">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+    <command id="0x08" name="GoToTiltPercentage" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <otherwiseConform>
+        <mandatoryConform>
+          <andTerm>
+            <feature name="TL"/>
+            <feature name="PA_TL"/>
+          </andTerm>
+        </mandatoryConform>
+        <optionalConform>
+          <feature name="TL"/>
+        </optionalConform>
+      </otherwiseConform>
+      <field id="0" name="TiltPercentageValue" type="percent">
+        <optionalConform choice="c"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="1" name="TiltPercent100thsValue" type="percent100ths">
+        <optionalConform choice="c"/>
+        <constraint type="desc"/>
+      </field>
+    </command>
+  </commands>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml b/data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml
new file mode 100644
index 0000000..4874aca
--- /dev/null
+++ b/data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml
@@ -0,0 +1,380 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:sectnums:

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0025" name="Actions Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0025" name="Actions"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="ACT" scope="Node"/>
+  <dataTypes>
+    <enum name="ActionErrorEnum">
+      <item value="0" name="Unknown" summary="Other reason not listed in the row(s) below">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Interrupted" summary="The action was interrupted by another command or interaction">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ActionStateEnum">
+      <item value="0" name="Inactive" summary="The action is not active">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Active" summary="The action is active">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Paused" summary="The action has been paused">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Disabled" summary="The action has been disabled">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="ActionTypeEnum">
+      <item value="0" name="Other" summary="Use this only when none of the other values applies">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Scene" summary="Bring the endpoints into a certain state">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Sequence" summary="A sequence of states with a certain time pattern">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="Automation" summary="Control an automation (e.g. motion sensor controlling lights)">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="Exception" summary="Sequence that will run when something doesn't happen">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="Notification" summary="Use the endpoints to send a message to user">
+        <mandatoryConform/>
+      </item>
+      <item value="6" name="Alarm" summary="Higher priority notification">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="EndpointListTypeEnum">
+      <item value="0" name="Other" summary="Another group of endpoints">
+        <mandatoryConform/>
+      </item>
+      <item value="1" name="Room" summary="User-configured group of endpoints where an endpoint can be in only one room">
+        <mandatoryConform/>
+      </item>
+      <item value="2" name="Zone" summary="User-configured group of endpoints where an endpoint can be in any number of zones">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <bitmap name="CommandBits">
+      <bitfield name="InstantAction" bit="0" summary="Indicate support for InstantAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="InstantActionWithTransition" bit="1" summary="Indicate support for InstantActionWithTransition command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="StartAction" bit="2" summary="Indicate support for StartAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="StartActionWithDuration" bit="3" summary="Indicate support for StartActionWithDuration command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="StopAction" bit="4" summary="Indicate support for StopAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="PauseAction" bit="5" summary="Indicate support for PauseAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="PauseActionWithDuration" bit="6" summary="Indicate support for PauseActionWithDuration command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="ResumeAction" bit="7" summary="Indicate support for ResumeAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="EnableAction" bit="8" summary="Indicate support for EnableAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="EnableActionWithDuration" bit="9" summary="Indicate support for EnableActionWithDuration command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="DisableAction" bit="10" summary="Indicate support for DisableAction command">
+        <mandatoryConform/>
+      </bitfield>
+      <bitfield name="DisableActionWithDuration" bit="11" summary="Indicate support for DisableActionWithDuration command">
+        <mandatoryConform/>
+      </bitfield>
+    </bitmap>
+    <struct name="ActionStruct">
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Type" type="ActionTypeEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="EndpointListID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="4" name="SupportedCommands" type="CommandBits">
+        <mandatoryConform/>
+        <constraint type="between" from="0" to="0x0FFF"/>
+      </field>
+      <field id="5" name="State" type="ActionStateEnum">
+        <mandatoryConform/>
+      </field>
+    </struct>
+    <struct name="EndpointListStruct">
+      <field id="0" name="EndpointListID" type="uint16">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="Name" type="string">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="Type" type="EndpointListTypeEnum">
+        <access read="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Endpoints" type="list">
+        <entry type="endpoint-no"/>
+        <access read="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="256"/>
+      </field>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="ActionList" type="list" default="empty">
+      <entry type="ActionStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="256"/>
+    </attribute>
+    <attribute id="0x0001" name="EndpointLists" type="list" default="empty">
+      <entry type="EndpointListStruct"/>
+      <access read="true" readPrivilege="view"/>
+      <mandatoryConform/>
+      <constraint type="maxCount" value="256"/>
+    </attribute>
+    <attribute id="0x0002" name="SetupURL" type="string" default="empty">
+      <access read="true" readPrivilege="view"/>
+      <optionalConform/>
+      <constraint type="maxLength" value="512"/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x00" name="InstantAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x01" name="InstantActionWithTransition" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="TransitionTime" type="uint16" default="MS">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x02" name="StartAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x03" name="StartActionWithDuration" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="Duration" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x04" name="StopAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x05" name="PauseAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x06" name="PauseActionWithDuration" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="Duration" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x07" name="ResumeAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x08" name="EnableAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x09" name="EnableActionWithDuration" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="Duration" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+    </command>
+    <command id="0x0A" name="DisableAction" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+    </command>
+    <command id="0x0B" name="DisableActionWithDuration" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <optionalConform/>
+      </field>
+      <field id="2" name="Duration" type="uint32" default="MS">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="StateChanged" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="NewState" type="ActionStateEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+    <event id="0x01" name="ActionFailed" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="ActionID" type="uint16">
+        <mandatoryConform/>
+      </field>
+      <field id="1" name="InvokeID" type="uint32">
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="NewState" type="ActionStateEnum">
+        <mandatoryConform/>
+      </field>
+      <field id="3" name="Error" type="ActionErrorEnum">
+        <mandatoryConform/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
new file mode 100644
index 0000000..4368d99
--- /dev/null
+++ b/data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:sectnums:

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0039" name="Bridged Device Basic Information Cluster" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added ProductAppearance attribute"/>
+    <revision revision="3" summary="Added SpecificationVersion and MaxPathsPerInvoke attributes"/>
+    <revision revision="4" summary="Updated conformance for UniqueID to mandatory, ProductID to optional when bridging Matter devices, and add the BridgedICDSupport feature. Added DeviceLocation."/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0039" name="Bridged Device Basic Information"/>
+  </clusterIds>
+  <classification hierarchy="derived" baseCluster="Basic Information" role="utility" picsCode="BRBINFO" scope="Endpoint"/>
+  <features>
+    <feature bit="20" code="BIS" name="BridgedICDSupport" summary="A set of features that support Bridged ICD Devices.">
+      <optionalConform/>
+    </feature>
+  </features>
+  <attributes>
+    <attribute id="0x0000" name="DataModelRevision">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0001" name="VendorName">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0002" name="VendorID">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0003" name="ProductName">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0004" name="ProductID"/>
+    <attribute id="0x0005" name="NodeLabel">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0006" name="Location">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0007" name="HardwareVersion">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0008" name="HardwareVersionString">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0009" name="SoftwareVersion">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000A" name="SoftwareVersionString">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000B" name="ManufacturingDate">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000C" name="PartNumber">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000D" name="ProductURL">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000E" name="ProductLabel">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x000F" name="SerialNumber">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0010" name="LocalConfigDisabled">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0011" name="Reachable">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0012" name="UniqueID">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0013" name="CapabilityMinima">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0014" name="ProductAppearance">
+      <optionalConform/>
+    </attribute>
+    <attribute id="0x0015" name="SpecificationVersion">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0016" name="MaxPathsPerInvoke">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0017" name="DeviceLocation">
+      <optionalConform/>
+    </attribute>
+  </attributes>
+  <commands>
+    <command id="0x80" name="KeepActive" direction="commandToServer" response="Y">
+      <access invokePrivilege="operate"/>
+      <mandatoryConform>
+        <feature name="BIS"/>
+      </mandatoryConform>
+      <field id="0" name="StayActiveDuration" type="uint32">
+        <mandatoryConform/>
+      </field>
+    </command>
+  </commands>
+  <events>
+    <event id="0x00" name="StartUp">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x01" name="ShutDown">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+    </event>
+    <event id="0x02" name="Leave">
+      <access readPrivilege="view"/>
+      <optionalConform/>
+      <field id="0" name="FabricIndex">
+        <disallowConform/>
+      </field>
+    </event>
+    <event id="0x03" name="ReachableChanged">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+    <event id="0x80" name="ActiveChanged" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform>
+        <feature name="BIS"/>
+      </mandatoryConform>
+      <field id="0" name="PromisedActiveDuration" type="uint32">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </event>
+  </events>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml b/data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml
new file mode 100644
index 0000000..22cc880
--- /dev/null
+++ b/data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:sectnums:

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0750" name="Ecosystem Information Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0750" name="Ecosystem Information"/>
+  </clusterIds>
+  <classification hierarchy="base" role="utility" picsCode="ECOINFO" scope="Endpoint"/>
+  <dataTypes>
+    <struct name="EcosystemDeviceStruct">
+      <field id="0" name="DeviceName" type="string" default="empty">
+        <access fabricSensitive="true"/>
+        <optionalConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="1" name="DeviceNameLastEdit" type="epoch-us" default="0">
+        <access fabricSensitive="true"/>
+      </field>
+      <field id="2" name="BridgedEndpoint" type="endpoint-no">
+        <access fabricSensitive="true"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="3" name="OriginalEndpoint" type="endpoint-no">
+        <access fabricSensitive="true"/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="DeviceTypes" type="list">
+        <entry type="ref_DeviceTypeStruct">
+          <constraint type="desc"/>
+        </entry>
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="minCount" value="1"/>
+      </field>
+      <field id="5" name="UniqueLocationIDs" type="list">
+        <entry type="string">
+          <constraint type="maxLength" value="64"/>
+        </entry>
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxCount" value="64"/>
+      </field>
+      <field id="6" name="UniqueLocationIDsLastEdit" type="epoch-us" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+    <struct name="EcosystemLocationStruct">
+      <field id="0" name="UniqueLocationID" type="string">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+        <constraint type="maxLength" value="64"/>
+      </field>
+      <field id="1" name="LocationDescriptor" type="locationdesc">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <field id="2" name="LocationDescriptorLastEdit" type="epoch-us" default="0">
+        <access fabricSensitive="true"/>
+        <mandatoryConform/>
+      </field>
+      <access fabricScoped="true"/>
+    </struct>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="RemovedOn" type="epoch-us">
+      <access read="true" readPrivilege="manage"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="DeviceDirectory" type="list">
+      <entry type="EcosystemDeviceStruct"/>
+      <access read="true" readPrivilege="manage" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="0" to="256"/>
+    </attribute>
+    <attribute id="0x0002" name="LocationDirectory" type="list">
+      <entry type="EcosystemLocationStruct"/>
+      <access read="true" readPrivilege="manage" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="countBetween" from="0" to="64"/>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/cluster_ids.json b/data_model/in_progress/clusters/cluster_ids.json
new file mode 100644
index 0000000..c65c08a
--- /dev/null
+++ b/data_model/in_progress/clusters/cluster_ids.json
@@ -0,0 +1,122 @@
+{
+    "3": "Identify",
+    "4": "Groups",
+    "6": "On/Off",
+    "8": "Level Control",
+    "29": "Descriptor",
+    "30": "Binding",
+    "31": "AccessControl",
+    "37": "Actions",
+    "40": "Basic Information",
+    "41": "OTA Software Update Provider",
+    "42": "OTA Software Update Requestor",
+    "43": "Localization Configuration",
+    "44": "Time Format Localization",
+    "45": "Unit Localization",
+    "46": "Power Source Configuration",
+    "47": "Power Source",
+    "48": "General Commissioning",
+    "49": "Network Commissioning",
+    "50": "Diagnostic Logs",
+    "51": "General Diagnostics",
+    "52": "Software Diagnostics",
+    "53": "Thread Network Diagnostics",
+    "54": "Wi-Fi Network Diagnostics",
+    "55": "Ethernet Network Diagnostics",
+    "56": "Time Synchronization",
+    "57": "Bridged Device Basic Information",
+    "59": "Switch",
+    "60": "Administrator Commissioning",
+    "62": "Operational Credentials",
+    "63": "GroupKeyManagement",
+    "64": "Fixed Label",
+    "65": "User Label",
+    "66": "ProxyConfiguration",
+    "67": "ProxyDiscovery",
+    "68": "ValidProxies",
+    "69": "Boolean State",
+    "70": "ICDManagement",
+    "72": "Oven Cavity Operational State",
+    "73": "Oven Mode",
+    "74": "Laundry Dryer Controls",
+    "80": "Mode Select",
+    "81": "Laundry Washer Mode",
+    "82": "Refrigerator And Temperature Controlled Cabinet Mode",
+    "83": "Laundry Washer Controls",
+    "84": "RVC Run Mode",
+    "85": "RVC Clean Mode",
+    "86": "Temperature Control",
+    "87": "Refrigerator Alarm",
+    "89": "Dishwasher Mode",
+    "91": "Air Quality",
+    "92": "Smoke CO Alarm",
+    "93": "Dishwasher Alarm",
+    "94": "Microwave Oven Mode",
+    "95": "Microwave Oven Control",
+    "96": "Operational State",
+    "97": "RVC Operational State",
+    "98": "Scenes Management",
+    "113": "HEPA Filter Monitoring",
+    "114": "Activated Carbon Filter Monitoring",
+    "121": "Water Tank Level Monitoring",
+    "128": "Boolean State Configuration",
+    "129": "Valve Configuration and Control",
+    "144": "Electrical Power Measurement",
+    "145": "Electrical Energy Measurement",
+    "148": "Water Heater Management",
+    "150": "Demand Response Load Control",
+    "151": "Messages",
+    "152": "Device Energy Management",
+    "153": "Energy EVSE",
+    "154": "Energy Calendar",
+    "155": "Energy Preference",
+    "156": "Power Topology",
+    "157": "Energy EVSE Mode",
+    "158": "Water Heater Mode",
+    "159": "Device Energy Management Mode",
+    "257": "Door Lock",
+    "258": "Window Covering",
+    "336": "Service Area",
+    "512": "Pump Configuration and Control",
+    "513": "Thermostat",
+    "514": "Fan Control",
+    "516": "Thermostat User Interface Configuration",
+    "517": "Humidistat",
+    "768": "Color Control",
+    "769": "Ballast Configuration",
+    "1024": "Illuminance Measurement",
+    "1026": "Temperature Measurement",
+    "1027": "Pressure Measurement",
+    "1028": "Flow Measurement",
+    "1029": "Relative Humidity Measurement",
+    "1030": "Occupancy Sensing",
+    "1036": "Carbon Monoxide Concentration Measurement",
+    "1037": "Carbon Dioxide Concentration Measurement",
+    "1043": "Nitrogen Dioxide Concentration Measurement",
+    "1045": "Ozone Concentration Measurement",
+    "1066": "PM2.5 Concentration Measurement",
+    "1067": "Formaldehyde Concentration Measurement",
+    "1068": "PM1 Concentration Measurement",
+    "1069": "PM10 Concentration Measurement",
+    "1070": "Total Volatile Organic Compounds Concentration Measurement",
+    "1071": "Radon Concentration Measurement",
+    "1105": "Wi-Fi Network Management",
+    "1106": "Thread Border Router Management",
+    "1107": "Thread Network Directory",
+    "1283": "Wake on LAN",
+    "1284": "Channel",
+    "1285": "Target Navigator",
+    "1286": "Media Playback",
+    "1287": "Media Input",
+    "1288": "Low Power",
+    "1289": "Keypad Input",
+    "1290": "Content Launcher",
+    "1291": "Audio Output",
+    "1292": "Application Launcher",
+    "1293": "Application Basic",
+    "1294": "Account Login",
+    "1295": "Content Control",
+    "1296": "Content App Observer",
+    "1872": "Ecosystem Information",
+    "1873": "Commissioner Control"
+}
diff --git a/data_model/in_progress/device_types/Aggregator.xml b/data_model/in_progress/device_types/Aggregator.xml
new file mode 100644
index 0000000..a99ee11
--- /dev/null
+++ b/data_model/in_progress/device_types/Aggregator.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x000E" name="Aggregator" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0025" name="Actions" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/AirPurifier.xml b/data_model/in_progress/device_types/AirPurifier.xml
new file mode 100644
index 0000000..62045f0
--- /dev/null
+++ b/data_model/in_progress/device_types/AirPurifier.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x002D" name="Air Purifier" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added On/Off cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0071" name="HEPA Filter Monitoring" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0072" name="Activated Carbon Filter Monitoring" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/AirQualitySensor.xml b/data_model/in_progress/device_types/AirQualitySensor.xml
new file mode 100644
index 0000000..756b42e
--- /dev/null
+++ b/data_model/in_progress/device_types/AirQualitySensor.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x002C" name="Air Quality Sensor" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x005B" name="Air Quality" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0405" name="Relative Humidity Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x040C" name="Carbon Monoxide Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x040D" name="Carbon Dioxide Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0413" name="Nitrogen Dioxide Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0415" name="Ozone Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042A" name="PM2.5 Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042B" name="Formaldehyde Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042C" name="PM1 Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042D" name="PM10 Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042E" name="Total Volatile Organic Compounds Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x042F" name="Radon Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/BaseDeviceType.xml b/data_model/in_progress/device_types/BaseDeviceType.xml
new file mode 100644
index 0000000..272b74f
--- /dev/null
+++ b/data_model/in_progress/device_types/BaseDeviceType.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="" name="Base Device Type" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Duplicate condition replaces Multiple condition"/>
+  </revisionHistory>
+  <conditions/>
+  <clusters>
+    <cluster id="0x001D" name="Descriptor" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="TagList">
+          <mandatoryConform>
+            <attribute name="Duplicate"/>
+          </mandatoryConform>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x001E" name="Binding" side="server">
+      <mandatoryConform>
+        <andTerm>
+          <condition name="Simple"/>
+          <condition name="Client"/>
+        </andTerm>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0040" name="Fixed Label" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0041" name="User Label" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/BasicVideoPlayer.xml b/data_model/in_progress/device_types/BasicVideoPlayer.xml
new file mode 100644
index 0000000..d35bbed
--- /dev/null
+++ b/data_model/in_progress/device_types/BasicVideoPlayer.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0028" name="Basic Video Player" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Messages and Content Control clusters"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions>
+    <condition name="PhysicalInputs" summary="The device has physical inputs for media."/>
+  </conditions>
+  <clusters>
+    <cluster id="0x0006" name="OnOff" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0097" name="Messages" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0503" name="WakeOnLAN" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0504" name="Channel" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0505" name="Target Navigator" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0506" name="Media Playback" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0507" name="Media Input" side="server">
+      <mandatoryConform>
+        <attribute name="PhysicalInputs"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0508" name="Low Power" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0509" name="Keypad Input" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050B" name="Audio Output" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050F" name="Content Control" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/BatteryStorage.xml b/data_model/in_progress/device_types/BatteryStorage.xml
new file mode 100644
index 0000000..5f09eeb
--- /dev/null
+++ b/data_model/in_progress/device_types/BatteryStorage.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0018" name="Battery Storage" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/BridgedNode.xml b/data_model/in_progress/device_types/BridgedNode.xml
new file mode 100644
index 0000000..6f30900
--- /dev/null
+++ b/data_model/in_progress/device_types/BridgedNode.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0013" name="Bridged Node" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Power Source to device type; Deprecated Power Source Configuration"/>
+  </revisionHistory>
+  <classification class="utility" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x002E" name="Power Source Configuration" side="server">
+      <otherwiseConform>
+        <mandatoryConform>
+          <condition name="BridgedPowerSourceInfo"/>
+        </mandatoryConform>
+        <deprecateConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x002F" name="Power Source" side="server">
+      <mandatoryConform>
+        <condition name="BridgedPowerSourceInfo"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0039" name="Bridged Device Basic Information" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/CastingVideoClient.xml b/data_model/in_progress/device_types/CastingVideoClient.xml
new file mode 100644
index 0000000..949142a
--- /dev/null
+++ b/data_model/in_progress/device_types/CastingVideoClient.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0029" name="Casting Video Client" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Content App Observer, Messages and Content Control Clusters"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0006" name="OnOff" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0097" name="Messages" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0503" name="WakeOnLAN" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0504" name="Channel" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0505" name="Target Navigator" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0506" name="Media Playback" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0507" name="Media Input" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0508" name="Low Power" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0509" name="Keypad Input" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050A" name="Content Launcher" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050B" name="Audio Output" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050C" name="Application Launcher" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050D" name="Application Basic" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050E" name="Account Login" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050F" name="Content Control" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0510" name="Content App Observer" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/CastingVideoPlayer.xml b/data_model/in_progress/device_types/CastingVideoPlayer.xml
new file mode 100644
index 0000000..5c88cf9
--- /dev/null
+++ b/data_model/in_progress/device_types/CastingVideoPlayer.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0023" name="Casting Video Player" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Messages and Content Control clusters"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions>
+    <condition name="ContentAppPlatform" summary="The device includes a Content App Platform. A Content App is usually an
+application built by a Content Provider. A Casting Video Player with a Content App Platform is able to
+launch Content Apps and represent these apps as separate endpoints."/>
+    <condition name="PhysicalInputs" summary="The device has physical inputs for media."/>
+  </conditions>
+  <clusters>
+    <cluster id="0x0006" name="OnOff" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0097" name="Messages" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0503" name="WakeOnLAN" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0504" name="Channel" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0505" name="Target Navigator" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0506" name="Media Playback" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0507" name="Media Input" side="server">
+      <mandatoryConform>
+        <attribute name="PhysicalInputs"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0508" name="Low Power" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0509" name="Keypad Input" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050A" name="Content Launcher" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050B" name="Audio Output" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050C" name="Application Launcher" side="server">
+      <mandatoryConform>
+        <attribute name="ContentAppPlatform"/>
+      </mandatoryConform>
+      <features>
+        <feature code="" name="ApplicationPlatform">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x050E" name="Account Login" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050F" name="Content Control" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ColorDimmerSwitch.xml b/data_model/in_progress/device_types/ColorDimmerSwitch.xml
new file mode 100644
index 0000000..abc027e
--- /dev/null
+++ b/data_model/in_progress/device_types/ColorDimmerSwitch.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0105" name="Color Dimmer Switch" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification superset="Dimmer Switch" class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0300" name="Color Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ColorTemperatureLight.xml b/data_model/in_progress/device_types/ColorTemperatureLight.xml
new file mode 100644
index 0000000..56db541
--- /dev/null
+++ b/data_model/in_progress/device_types/ColorTemperatureLight.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x010C" name="Color Temperature Light" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Added optional occupancy sensing"/>
+    <revision revision="4" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification superset="Dimmable Light" class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0300" name="Color Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="ColorTemperature">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="RemainingTime">
+          <mandatoryConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ContactSensor.xml b/data_model/in_progress/device_types/ContactSensor.xml
new file mode 100644
index 0000000..2767e5e
--- /dev/null
+++ b/data_model/in_progress/device_types/ContactSensor.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0015" name="Contact Sensor" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add Boolean State Configuration as optional cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0045" name="Boolean State" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0080" name="Boolean State Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ContentApp.xml b/data_model/in_progress/device_types/ContentApp.xml
new file mode 100644
index 0000000..81b967d
--- /dev/null
+++ b/data_model/in_progress/device_types/ContentApp.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0024" name="Content App" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Content App Observer cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x001E" name="Binding" side="server">
+      <mandatoryConform>
+        <attribute name="ObserverClient"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0504" name="Channel" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0505" name="Target Navigator" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0506" name="Media Playback" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0509" name="Keypad Input" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050A" name="Content Launcher" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050C" name="Application Launcher" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="ApplicationPlatform">
+          <disallowConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x050D" name="Application Basic" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050E" name="Account Login" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0510" name="Content App Observer" side="client">
+      <mandatoryConform>
+        <attribute name="ObserverClient"/>
+      </mandatoryConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ControlBridge.xml b/data_model/in_progress/device_types/ControlBridge.xml
new file mode 100644
index 0000000..ab07228
--- /dev/null
+++ b/data_model/in_progress/device_types/ControlBridge.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0840" name="Control Bridge" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0300" name="Color Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0400" name="Illuminance Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/CookSurface.xml b/data_model/in_progress/device_types/CookSurface.xml
new file mode 100644
index 0000000..3a0e8f0
--- /dev/null
+++ b/data_model/in_progress/device_types/CookSurface.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0077" name="Cook Surface" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OffOnly">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0056" name="Temperature Control" side="server">
+      <optionalConform choice="a" more="true"/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform choice="a" more="true"/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Cooktop.xml b/data_model/in_progress/device_types/Cooktop.xml
new file mode 100644
index 0000000..9164641
--- /dev/null
+++ b/data_model/in_progress/device_types/Cooktop.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0078" name="Cooktop" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="OffOnly">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DeviceEnergyManagement.xml b/data_model/in_progress/device_types/DeviceEnergyManagement.xml
new file mode 100644
index 0000000..86efccc
--- /dev/null
+++ b/data_model/in_progress/device_types/DeviceEnergyManagement.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050D" name="Device Energy Management" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Updated description of when DEM Mode is to be included"/>
+  </revisionHistory>
+  <classification class="utility" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x0098" name="Device Energy Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <features>
+        <feature code="" name="PowerAdjustment"/>
+        <feature code="" name="StartTimeAdjustment"/>
+        <feature code="" name="Pausable"/>
+        <feature code="" name="ForecastAdjustment"/>
+        <feature code="" name="ConstraintBasedAdjustment"/>
+      </features>
+    </cluster>
+    <cluster id="0x009F" name="Device Energy Management Mode" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform>
+          <attribute name="ControllableESA"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DimmableLight.xml b/data_model/in_progress/device_types/DimmableLight.xml
new file mode 100644
index 0000000..4d6c53e
--- /dev/null
+++ b/data_model/in_progress/device_types/DimmableLight.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0101" name="Dimmable Light" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification superset="On/Off Light" class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DimmablePlug-InUnit.xml b/data_model/in_progress/device_types/DimmablePlug-InUnit.xml
new file mode 100644
index 0000000..73fd2a3
--- /dev/null
+++ b/data_model/in_progress/device_types/DimmablePlug-InUnit.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x010B" name="Dimmable Plug-In Unit" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Added optional occupancy sensing"/>
+    <revision revision="4" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DimmerSwitch.xml b/data_model/in_progress/device_types/DimmerSwitch.xml
new file mode 100644
index 0000000..9dce28f
--- /dev/null
+++ b/data_model/in_progress/device_types/DimmerSwitch.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0104" name="Dimmer Switch" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification superset="On/Off Light Switch" class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Dishwasher.xml b/data_model/in_progress/device_types/Dishwasher.xml
new file mode 100644
index 0000000..b13f9a4
--- /dev/null
+++ b/data_model/in_progress/device_types/Dishwasher.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0075" name="Dishwasher" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="DeadFrontBehavior">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0056" name="Temperature Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0059" name="Dishwasher Mode" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x005D" name="Dishwasher Alarm" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0060" name="Operational State" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DoorLock.xml b/data_model/in_progress/device_types/DoorLock.xml
new file mode 100644
index 0000000..e2eb1e9
--- /dev/null
+++ b/data_model/in_progress/device_types/DoorLock.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x000A" name="Door Lock" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="Initial Matter revision"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <disallowConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <disallowConform/>
+    </cluster>
+    <cluster id="0x0101" name="Door Lock" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="User">
+          <mandatoryConform>
+            <andTerm>
+              <condition name="Matter"/>
+              <orTerm>
+                <feature name="PIN"/>
+                <feature name="RID"/>
+                <feature name="FPG"/>
+                <feature name="FACE"/>
+              </orTerm>
+            </andTerm>
+          </mandatoryConform>
+        </feature>
+        <feature code="" name="RFIDCredential">
+          <otherwiseConform>
+            <provisionalConform/>
+            <optionalConform/>
+          </otherwiseConform>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="AlarmMask">
+          <optionalConform>
+            <attribute name="Alarms"/>
+          </optionalConform>
+        </attribute>
+      </attributes>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/DoorLockController.xml b/data_model/in_progress/device_types/DoorLockController.xml
new file mode 100644
index 0000000..40749d7
--- /dev/null
+++ b/data_model/in_progress/device_types/DoorLockController.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x000B" name="Door Lock Controller" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="Initial Matter revision"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0038" name="Time Synchronization" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0101" name="Door Lock" side="client">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/EVSE.xml b/data_model/in_progress/device_types/EVSE.xml
new file mode 100644
index 0000000..d468cb8
--- /dev/null
+++ b/data_model/in_progress/device_types/EVSE.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050C" name="Energy EVSE" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Addition of associated Device Energy Management device"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0099" name="Energy EVSE" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x009D" name="Energy EVSE Mode" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ElectricalSensor.xml b/data_model/in_progress/device_types/ElectricalSensor.xml
new file mode 100644
index 0000000..75c4b0b
--- /dev/null
+++ b/data_model/in_progress/device_types/ElectricalSensor.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0510" name="Electrical Sensor" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="utility" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x0090" name="Electrical Power Measurement" side="server">
+      <optionalConform choice="a" more="true"/>
+    </cluster>
+    <cluster id="0x0091" name="Electrical Energy Measurement" side="server">
+      <optionalConform choice="a" more="true"/>
+    </cluster>
+    <cluster id="0x009C" name="Power Topology" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/EnergyTariff.xml b/data_model/in_progress/device_types/EnergyTariff.xml
new file mode 100644
index 0000000..887bfa4
--- /dev/null
+++ b/data_model/in_progress/device_types/EnergyTariff.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050B" name="Energy Tariff" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/EnergyTariffCalendar.xml b/data_model/in_progress/device_types/EnergyTariffCalendar.xml
new file mode 100644
index 0000000..70d74b7
--- /dev/null
+++ b/data_model/in_progress/device_types/EnergyTariffCalendar.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050B" name="Energy Tariff Calendar" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ExtendedColorLight.xml b/data_model/in_progress/device_types/ExtendedColorLight.xml
new file mode 100644
index 0000000..0678094
--- /dev/null
+++ b/data_model/in_progress/device_types/ExtendedColorLight.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x010D" name="Extended Color Light" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation; integrate DM CCB 3501"/>
+    <revision revision="3" summary="Added optional occupancy sensing"/>
+    <revision revision="4" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification superset="Color Temperature Light" class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0300" name="Color Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="HueSaturation">
+          <optionalConform/>
+        </feature>
+        <feature code="" name="EnhancedHue">
+          <optionalConform/>
+        </feature>
+        <feature code="" name="ColorLoop">
+          <optionalConform/>
+        </feature>
+        <feature code="" name="XY">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="ColorTemperature">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="RemainingTime">
+          <mandatoryConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ExtractorHood.xml b/data_model/in_progress/device_types/ExtractorHood.xml
new file mode 100644
index 0000000..3e8064a
--- /dev/null
+++ b/data_model/in_progress/device_types/ExtractorHood.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x007A" name="Extractor Hood" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0071" name="HEPA Filter Monitoring" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0072" name="Activated Carbon Filter Monitoring" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Rocking">
+          <disallowConform/>
+        </feature>
+        <feature code="" name="Wind">
+          <disallowConform/>
+        </feature>
+        <feature code="" name="AirflowDirection">
+          <disallowConform/>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Fan.xml b/data_model/in_progress/device_types/Fan.xml
new file mode 100644
index 0000000..e5184cf
--- /dev/null
+++ b/data_model/in_progress/device_types/Fan.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x002B" name="Fan" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added ability to be composed with a Thermostat for fan heaters"/>
+    <revision revision="3" summary="Added On/Off cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="server">
+      <mandatoryConform/>
+      <attributes>
+        <attribute code="" name="FanModeSequence">
+          <access read="true"/>
+          <quality persistence="fixed"/>
+          <mandatoryConform>
+            <condition name="Matter"/>
+          </mandatoryConform>
+        </attribute>
+      </attributes>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/FlowSensor.xml b/data_model/in_progress/device_types/FlowSensor.xml
new file mode 100644
index 0000000..6a90230
--- /dev/null
+++ b/data_model/in_progress/device_types/FlowSensor.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0306" name="Flow Sensor" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/GenericSwitch.xml b/data_model/in_progress/device_types/GenericSwitch.xml
new file mode 100644
index 0000000..b8bc394
--- /dev/null
+++ b/data_model/in_progress/device_types/GenericSwitch.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x000F" name="Generic Switch" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Removed requirement for Fixed Label cluster (can use TagList which was added in Descriptor cluster)"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x003B" name="Switch" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/HeatPump.xml b/data_model/in_progress/device_types/HeatPump.xml
new file mode 100644
index 0000000..61f556c
--- /dev/null
+++ b/data_model/in_progress/device_types/HeatPump.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0309" name="Heat Pump" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0301" name="Thermostat" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/HumidifierDehumidifier.xml b/data_model/in_progress/device_types/HumidifierDehumidifier.xml
new file mode 100644
index 0000000..9739196
--- /dev/null
+++ b/data_model/in_progress/device_types/HumidifierDehumidifier.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x007D" name="Humidifier/Dehumidifier" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/HumiditySensor.xml b/data_model/in_progress/device_types/HumiditySensor.xml
new file mode 100644
index 0000000..c6def40
--- /dev/null
+++ b/data_model/in_progress/device_types/HumiditySensor.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0307" name="Humidity Sensor" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0405" name="Relative Humidity Measurement" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/JointFabricAdmin.xml b/data_model/in_progress/device_types/JointFabricAdmin.xml
new file mode 100644
index 0000000..7d29cbb
--- /dev/null
+++ b/data_model/in_progress/device_types/JointFabricAdmin.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="" name="Joint Fabric Administrator" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="utility" scope="endpoint"/>
+  <clusters>
+    <cluster id="" name="Joint Fabric Datastore" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="" name="Joint Fabric PKI" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/LaundryDryer.xml b/data_model/in_progress/device_types/LaundryDryer.xml
new file mode 100644
index 0000000..36dc182
--- /dev/null
+++ b/data_model/in_progress/device_types/LaundryDryer.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x007C" name="Laundry Dryer" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="DeadFrontBehavior">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x004A" name="Laundry Dryer Controls" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0051" name="Laundry Washer Mode" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0056" name="Temperature Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0060" name="Operational State" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/LaundryWasher.xml b/data_model/in_progress/device_types/LaundryWasher.xml
new file mode 100644
index 0000000..d88ee7e
--- /dev/null
+++ b/data_model/in_progress/device_types/LaundryWasher.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0073" name="Laundry Washer" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="DeadFrontBehavior">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0051" name="Laundry Washer Mode" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0053" name="Laundry Washer Controls" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0056" name="Temperature Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0060" name="Operational State" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/LightSensor.xml b/data_model/in_progress/device_types/LightSensor.xml
new file mode 100644
index 0000000..e7200e3
--- /dev/null
+++ b/data_model/in_progress/device_types/LightSensor.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0106" name="Light Sensor" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Restricting Groups client to Zigbee."/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0400" name="Illuminance Measurement" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/MicrowaveOven.xml b/data_model/in_progress/device_types/MicrowaveOven.xml
new file mode 100644
index 0000000..98d2902
--- /dev/null
+++ b/data_model/in_progress/device_types/MicrowaveOven.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0079" name="Microwave Oven" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x005E" name="Microwave Oven Mode" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x005F" name="Microwave Oven Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0060" name="Operational State" side="server">
+      <mandatoryConform/>
+      <attributes>
+        <attribute code="" name="CountdownTime">
+          <mandatoryConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="Wind">
+          <disallowConform/>
+        </feature>
+        <feature code="" name="AirflowDirection">
+          <disallowConform/>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ModeSelectDeviceType.xml b/data_model/in_progress/device_types/ModeSelectDeviceType.xml
new file mode 100644
index 0000000..ad4cf56
--- /dev/null
+++ b/data_model/in_progress/device_types/ModeSelectDeviceType.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0027" name="Mode Select" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0050" name="Mode Select" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/MountedDimmableLoadControl.xml b/data_model/in_progress/device_types/MountedDimmableLoadControl.xml
new file mode 100644
index 0000000..2527eb6
--- /dev/null
+++ b/data_model/in_progress/device_types/MountedDimmableLoadControl.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="" name="Mounted Dimmable Load Control" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial release"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/MountedOnOffControl.xml b/data_model/in_progress/device_types/MountedOnOffControl.xml
new file mode 100644
index 0000000..1be3cf7
--- /dev/null
+++ b/data_model/in_progress/device_types/MountedOnOffControl.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="" name="Mounted On/Off Control" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial release"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/NetworkInfraIntro.xml b/data_model/in_progress/device_types/NetworkInfraIntro.xml
new file mode 100644
index 0000000..e5bc56b
--- /dev/null
+++ b/data_model/in_progress/device_types/NetworkInfraIntro.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="" name="Introduction" revision=""/>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/NetworkInfraManager.xml b/data_model/in_progress/device_types/NetworkInfraManager.xml
new file mode 100644
index 0000000..58cbae2
--- /dev/null
+++ b/data_model/in_progress/device_types/NetworkInfraManager.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0090" name="Network Infrastructure Manager" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0451" name="Wi-Fi Network Management" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0452" name="Thread Border Router Management" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0453" name="Thread Network Directory" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OccupancySensor.xml b/data_model/in_progress/device_types/OccupancySensor.xml
new file mode 100644
index 0000000..f257bab
--- /dev/null
+++ b/data_model/in_progress/device_types/OccupancySensor.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0107" name="Occupancy Sensor" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Restricting Groups client to Zigbee"/>
+    <revision revision="4" summary="Add Boolean State Configuration as optional cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0080" name="Boolean State Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OnOffLight.xml b/data_model/in_progress/device_types/OnOffLight.xml
new file mode 100644
index 0000000..c74f5f7
--- /dev/null
+++ b/data_model/in_progress/device_types/OnOffLight.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0100" name="On/Off Light" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OnOffLightSwitch.xml b/data_model/in_progress/device_types/OnOffLightSwitch.xml
new file mode 100644
index 0000000..0cfa5ba
--- /dev/null
+++ b/data_model/in_progress/device_types/OnOffLightSwitch.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0103" name="On/Off Light Switch" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OnOffPlug-inUnit.xml b/data_model/in_progress/device_types/OnOffPlug-inUnit.xml
new file mode 100644
index 0000000..946f791
--- /dev/null
+++ b/data_model/in_progress/device_types/OnOffPlug-inUnit.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x010A" name="On/Off Plug-in Unit" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+      <commands>
+        <command id="" name="TriggerEffect">
+          <mandatoryConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="Lighting">
+          <mandatoryConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="CurrentLevel">
+          <constraint type="between" from="1" to="254"/>
+        </attribute>
+        <attribute code="" name="MinLevel">
+          <constraint type="allowed" value="1"/>
+        </attribute>
+        <attribute code="" name="MaxLevel">
+          <constraint type="allowed" value="254"/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <mandatoryConform/>
+      </otherwiseConform>
+      <commands>
+        <command id="" name="CopyScene">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform/>
+          </otherwiseConform>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OnOffSensor.xml b/data_model/in_progress/device_types/OnOffSensor.xml
new file mode 100644
index 0000000..0fc76f8
--- /dev/null
+++ b/data_model/in_progress/device_types/OnOffSensor.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0850" name="On/Off Sensor" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0300" name="Color Control" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OtaProvider.xml b/data_model/in_progress/device_types/OtaProvider.xml
new file mode 100644
index 0000000..b148d27
--- /dev/null
+++ b/data_model/in_progress/device_types/OtaProvider.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0014" name="OTA Provider" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="utility" scope="node"/>
+  <clusters>
+    <cluster id="0x0029" name="OTA Software Update Provider" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x002A" name="OTA Software Update Requestor" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/OtaRequestor.xml b/data_model/in_progress/device_types/OtaRequestor.xml
new file mode 100644
index 0000000..d782ee9
--- /dev/null
+++ b/data_model/in_progress/device_types/OtaRequestor.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0012" name="OTA Requestor" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="utility" scope="node"/>
+  <clusters>
+    <cluster id="0x0029" name="OTA Software Update Provider" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x002A" name="OTA Software Update Requestor" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Oven.xml b/data_model/in_progress/device_types/Oven.xml
new file mode 100644
index 0000000..d34bc4c
--- /dev/null
+++ b/data_model/in_progress/device_types/Oven.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x007B" name="Oven" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Heater requirement"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/PowerSource.xml b/data_model/in_progress/device_types/PowerSource.xml
new file mode 100644
index 0000000..4e6c6de
--- /dev/null
+++ b/data_model/in_progress/device_types/PowerSource.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0011" name="Power Source" revision="1">
+  <classification class="utility" scope="node"/>
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <clusters>
+    <cluster id="0x002F" name="Power Source" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/PressureSensor.xml b/data_model/in_progress/device_types/PressureSensor.xml
new file mode 100644
index 0000000..5b7ef86
--- /dev/null
+++ b/data_model/in_progress/device_types/PressureSensor.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0305" name="Pressure Sensor" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0403" name="Pressure Measurement" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Pump.xml b/data_model/in_progress/device_types/Pump.xml
new file mode 100644
index 0000000..a39cd97
--- /dev/null
+++ b/data_model/in_progress/device_types/Pump.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0303" name="Pump" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0200" name="Pump Configuration and Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0403" name="Pressure Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0403" name="Pressure Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/PumpController.xml b/data_model/in_progress/device_types/PumpController.xml
new file mode 100644
index 0000000..25e9a8e
--- /dev/null
+++ b/data_model/in_progress/device_types/PumpController.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0304" name="Pump Controller" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+    <revision revision="4" summary="Remove Binding client as a result of review of CCB4058"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0200" name="Pump Configuration and Control" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0403" name="Pressure Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/RainSensor.xml b/data_model/in_progress/device_types/RainSensor.xml
new file mode 100644
index 0000000..a03060c
--- /dev/null
+++ b/data_model/in_progress/device_types/RainSensor.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0044" name="Rain Sensor" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0045" name="Boolean State" side="server">
+      <mandatoryConform/>
+      <events>
+        <event id="" name="StateChange">
+          <mandatoryConform/>
+        </event>
+      </events>
+    </cluster>
+    <cluster id="0x0080" name="Boolean State Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Refrigerator.xml b/data_model/in_progress/device_types/Refrigerator.xml
new file mode 100644
index 0000000..c8bdf86
--- /dev/null
+++ b/data_model/in_progress/device_types/Refrigerator.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0070" name="Refrigerator" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Cooler requirement"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0052" name="Refrigerator And Temperature Controlled Cabinet Mode" side="server">
+      <optionalConform/>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0057" name="Refrigerator Alarm" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/RoboticVacuumCleaner.xml b/data_model/in_progress/device_types/RoboticVacuumCleaner.xml
new file mode 100644
index 0000000..fd30668
--- /dev/null
+++ b/data_model/in_progress/device_types/RoboticVacuumCleaner.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0074" name="Robotic Vacuum Cleaner" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Add cluster usage constraints and informative data. Remove the element requirements section, after moving all constraints to the respective cluster specifications."/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0054" name="RVC Run Mode" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0055" name="RVC Clean Mode" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0061" name="RVC Operational State" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/RoomAirConditioner.xml b/data_model/in_progress/device_types/RoomAirConditioner.xml
new file mode 100644
index 0000000..e2b3061
--- /dev/null
+++ b/data_model/in_progress/device_types/RoomAirConditioner.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0072" name="Room Air Conditioner" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Thermostat User Interface Configuration cluster added; Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0006" name="On/Off" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="DeadFrontBehavior">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="server">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0201" name="Thermostat" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0204" name="Thermostat User Interface Configuration" side="server">
+      <optionalConform/>
+      <attributes>
+        <attribute code="" name="KeypadLockout">
+          <optionalConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0405" name="Relative Humidity Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/RootNodeDeviceType.xml b/data_model/in_progress/device_types/RootNodeDeviceType.xml
new file mode 100644
index 0000000..c967595
--- /dev/null
+++ b/data_model/in_progress/device_types/RootNodeDeviceType.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0016" name="Root Node" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Power Source to device type; Deprecated Power Source Configuration"/>
+  </revisionHistory>
+  <classification class="node" scope="node"/>
+  <clusters>
+    <cluster id="0x001F" name="Access Control" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0028" name="Basic Information" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x002B" name="Localization Configuration" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform>
+        <condition name="LanguageLocale"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x002C" name="Time Format Localization" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform>
+        <condition name="TimeLocale"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x002D" name="Unit Localization" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform>
+        <condition name="UnitLocale"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x002E" name="Power Source Configuration" side="server">
+      <quality singleton="true"/>
+      <otherwiseConform>
+        <optionalConform/>
+        <deprecateConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0030" name="General Commissioning" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0031" name="Network Commissioning" side="server">
+      <mandatoryConform>
+        <notTerm>
+          <attribute name="CustomNetworkConfig"/>
+        </notTerm>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x0032" name="Diagnostic Logs" side="server">
+      <quality singleton="true"/>
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0033" name="General Diagnostics" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0034" name="Software Diagnostics" side="server">
+      <quality singleton="true"/>
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0035" name="Thread Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Thread"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0036" name="Wi-Fi Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Wi-Fi"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0037" name="Ethernet Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Ethernet"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0038" name="Time Synchronization" side="server">
+      <quality singleton="true"/>
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x003C" name="Administrator Commissioning" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x003E" name="Node Operational Credentials" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x003F" name="Group Key Management" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0046" name="ICD Management" side="server">
+      <quality singleton="true"/>
+      <mandatoryConform>
+        <feature name="SIT"/>
+      </mandatoryConform>
+      <features>
+        <feature code="" name="LongIdleTimeSupport">
+          <otherwiseConform>
+            <provisionalConform/>
+            <mandatoryConform>
+              <feature name="LIT"/>
+            </mandatoryConform>
+          </otherwiseConform>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/SecondaryNetworkInterface.xml b/data_model/in_progress/device_types/SecondaryNetworkInterface.xml
new file mode 100644
index 0000000..8217aea
--- /dev/null
+++ b/data_model/in_progress/device_types/SecondaryNetworkInterface.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0019" name="Secondary Network Interface" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="utility" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x0031" name="Network Commissioning" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0035" name="Thread Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Thread"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0036" name="Wi-Fi Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Wi-Fi"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0037" name="Ethernet Network Diagnostics" side="server">
+      <optionalConform>
+        <condition name="Ethernet"/>
+      </optionalConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/SmokeCOAlarm.xml b/data_model/in_progress/device_types/SmokeCOAlarm.xml
new file mode 100644
index 0000000..769e6f5
--- /dev/null
+++ b/data_model/in_progress/device_types/SmokeCOAlarm.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0076" name="Smoke CO Alarm" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x005C" name="Smoke CO Alarm" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0405" name="Relative Humidity Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x040C" name="Carbon Monoxide Concentration Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/SolarPower.xml b/data_model/in_progress/device_types/SolarPower.xml
new file mode 100644
index 0000000..7556fb5
--- /dev/null
+++ b/data_model/in_progress/device_types/SolarPower.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2024). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0017" name="Solar Power" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Speaker.xml b/data_model/in_progress/device_types/Speaker.xml
new file mode 100644
index 0000000..d3f9b11
--- /dev/null
+++ b/data_model/in_progress/device_types/Speaker.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0022" name="Speaker" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0006" name="OnOff" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/TemperatureControlledCabinet.xml b/data_model/in_progress/device_types/TemperatureControlledCabinet.xml
new file mode 100644
index 0000000..68788e2
--- /dev/null
+++ b/data_model/in_progress/device_types/TemperatureControlledCabinet.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0071" name="Temperature Controlled Cabinet" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Extension to heating cabinets"/>
+    <revision revision="3" summary="Added exclusivity for conditions"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <clusters>
+    <cluster id="0x0048" name="Oven Cavity Operational State" side="server">
+      <optionalConform>
+        <attribute name="Heater"/>
+      </optionalConform>
+      <commands>
+        <command id="" name="Pause">
+          <disallowConform/>
+        </command>
+        <command id="" name="Resume">
+          <disallowConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0049" name="Oven Mode" side="server">
+      <optionalConform>
+        <attribute name="Heater"/>
+      </optionalConform>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0052" name="Refrigerator and Temperature Controlled Cabinet Mode" side="server">
+      <optionalConform>
+        <attribute name="Cooler"/>
+      </optionalConform>
+      <features>
+        <feature code="" name="OnOff">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="StartUpMode">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+    </cluster>
+    <cluster id="0x0056" name="Temperature Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/TemperatureSensor.xml b/data_model/in_progress/device_types/TemperatureSensor.xml
new file mode 100644
index 0000000..bf32218
--- /dev/null
+++ b/data_model/in_progress/device_types/TemperatureSensor.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0302" name="Temperature Sensor" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <optionalConform>
+        <condition name="Zigbee"/>
+      </optionalConform>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/Thermostat.xml b/data_model/in_progress/device_types/Thermostat.xml
new file mode 100644
index 0000000..dfc55d6
--- /dev/null
+++ b/data_model/in_progress/device_types/Thermostat.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0301" name="Thermostat" revision="4">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation, added Clusters required for Matter support, restricted legacy elements to Zigbee only"/>
+    <revision revision="3" summary="Addition of Energy Preference cluster and updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+    <revision revision="4" summary="Remove Time Synchronization cluster and Zigbee only clusters, remove provisional marking from Energy Preference cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <mandatoryConform>
+        <attribute name="Active"/>
+      </mandatoryConform>
+    </cluster>
+    <cluster id="0x009B" name="Energy Preference" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0201" name="Thermostat" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="ScheduleConfiguration">
+          <disallowConform/>
+        </feature>
+      </features>
+      <attributes>
+        <attribute code="" name="AlarmMask">
+          <disallowConform/>
+        </attribute>
+      </attributes>
+      <commands>
+        <command id="" name="GetRelayStatusLog">
+          <disallowConform/>
+        </command>
+        <command id="" name="GetRelayStatusLogResponse">
+          <disallowConform/>
+        </command>
+      </commands>
+    </cluster>
+    <cluster id="0x0202" name="Fan Control" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0204" name="Thermostat User Interface Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0402" name="Temperature Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0405" name="Relative Humidity Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0406" name="Occupancy Sensing" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/ThreadBorderRouter.xml b/data_model/in_progress/device_types/ThreadBorderRouter.xml
new file mode 100644
index 0000000..abe38a8
--- /dev/null
+++ b/data_model/in_progress/device_types/ThreadBorderRouter.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0091" name="Thread Border Router" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0035" name="Thread Network Diagnostics" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0452" name="Thread Border Router Management" side="server">
+      <mandatoryConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/VideoRemoteControl.xml b/data_model/in_progress/device_types/VideoRemoteControl.xml
new file mode 100644
index 0000000..de83b02
--- /dev/null
+++ b/data_model/in_progress/device_types/VideoRemoteControl.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x002A" name="Video Remote Control" revision="2">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added Content Control cluster"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0006" name="OnOff" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0008" name="Level Control" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0503" name="WakeOnLAN" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0504" name="Channel" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0505" name="Target Navigator" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0506" name="Media Playback" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0507" name="Media Input" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0508" name="Low Power" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0509" name="Keypad Input" side="client">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x050A" name="Content Launcher" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050B" name="Audio Output" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050C" name="Application Launcher" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050E" name="Account Login" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x050F" name="Content Control" side="client">
+      <otherwiseConform>
+        <provisionalConform/>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WaterFreezeDetector.xml b/data_model/in_progress/device_types/WaterFreezeDetector.xml
new file mode 100644
index 0000000..b2f4a49
--- /dev/null
+++ b/data_model/in_progress/device_types/WaterFreezeDetector.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0041" name="Water Freeze Detector" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0045" name="Boolean State" side="server">
+      <mandatoryConform/>
+      <events>
+        <event id="" name="StateChange">
+          <mandatoryConform/>
+        </event>
+      </events>
+    </cluster>
+    <cluster id="0x0080" name="Boolean State Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WaterHeater.xml b/data_model/in_progress/device_types/WaterHeater.xml
new file mode 100644
index 0000000..9d038d8
--- /dev/null
+++ b/data_model/in_progress/device_types/WaterHeater.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2023). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance +

+508 Second Street, Suite 206 +

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050F" name="Water Heater" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0094" name="Water Heater Management" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0096" name="Demand Response and Load Control" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x009E" name="Water Heater Mode" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0201" name="Thermostat" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="Heating">
+          <mandatoryConform/>
+        </feature>
+        <feature code="" name="ScheduleConfiguration">
+          <mandatoryConform/>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WaterLeakDetector.xml b/data_model/in_progress/device_types/WaterLeakDetector.xml
new file mode 100644
index 0000000..7277ce6
--- /dev/null
+++ b/data_model/in_progress/device_types/WaterLeakDetector.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0043" name="Water Leak Detector" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0045" name="Boolean State" side="server">
+      <mandatoryConform/>
+      <events>
+        <event id="" name="StateChange">
+          <mandatoryConform/>
+        </event>
+      </events>
+    </cluster>
+    <cluster id="0x0080" name="Boolean State Configuration" side="server">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WaterValve.xml b/data_model/in_progress/device_types/WaterValve.xml
new file mode 100644
index 0000000..21b77ed
--- /dev/null
+++ b/data_model/in_progress/device_types/WaterValve.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0042" name="Water Valve" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial revision"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0081" name="Valve Configuration and Control" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0404" name="Flow Measurement" side="client">
+      <optionalConform/>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WindowCovering.xml b/data_model/in_progress/device_types/WindowCovering.xml
new file mode 100644
index 0000000..0e90704
--- /dev/null
+++ b/data_model/in_progress/device_types/WindowCovering.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0202" name="Window Covering" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <mandatoryConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="server">
+      <otherwiseConform>
+        <mandatoryConform>
+          <attribute name="Active"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0102" name="Window Covering" side="server">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="AbsolutePosition">
+          <mandatoryConform>
+            <condition name="Zigbee"/>
+          </mandatoryConform>
+        </feature>
+      </features>
+      <commands>
+        <command id="" name="GoToLiftPercentage.LiftPercentageValue">
+          <field>
+            <mandatoryConform>
+              <condition name="Zigbee"/>
+            </mandatoryConform>
+          </field>
+        </command>
+        <command id="" name="GoToTiltPercentage.TiltPercentageValue">
+          <field>
+            <mandatoryConform>
+              <condition name="Zigbee"/>
+            </mandatoryConform>
+          </field>
+        </command>
+        <command id="" name="GoToLiftPercentage.LiftPercent100thsValue">
+          <field>
+            <mandatoryConform>
+              <condition name="Matter"/>
+            </mandatoryConform>
+          </field>
+        </command>
+        <command id="" name="GoToTiltPercentage.TiltPercent100thsValue">
+          <field>
+            <mandatoryConform>
+              <condition name="Matter"/>
+            </mandatoryConform>
+          </field>
+        </command>
+      </commands>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/WindowCoveringController.xml b/data_model/in_progress/device_types/WindowCoveringController.xml
new file mode 100644
index 0000000..189fee3
--- /dev/null
+++ b/data_model/in_progress/device_types/WindowCoveringController.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+-->
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x0203" name="Window Covering Controller" revision="3">
+  <revisionHistory>
+    <revision revision="1" summary="Initial Zigbee 3.0 revision"/>
+    <revision revision="2" summary="New data model format and notation"/>
+    <revision revision="3" summary="Updated the Scenes cluster to Scenes Management with Cluster ID: 0x0062"/>
+  </revisionHistory>
+  <classification class="simple" scope="endpoint"/>
+  <conditions/>
+  <clusters>
+    <cluster id="0x0003" name="Identify" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0003" name="Identify" side="client">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0004" name="Groups" side="client">
+      <otherwiseConform>
+        <mandatoryConform>
+          <attribute name="Active"/>
+        </mandatoryConform>
+        <optionalConform/>
+      </otherwiseConform>
+    </cluster>
+    <cluster id="0x0102" name="Window Covering" side="client">
+      <mandatoryConform/>
+      <features>
+        <feature code="" name="AbsolutePosition">
+          <mandatoryConform>
+            <condition name="Zigbee"/>
+          </mandatoryConform>
+        </feature>
+      </features>
+    </cluster>
+  </clusters>
+</deviceType>
\ No newline at end of file
diff --git a/data_model/in_progress/scraper_version b/data_model/in_progress/scraper_version
new file mode 100644
index 0000000..c813fe1
--- /dev/null
+++ b/data_model/in_progress/scraper_version
@@ -0,0 +1 @@
+1.2.5
diff --git a/data_model/in_progress/spec_sha b/data_model/in_progress/spec_sha
new file mode 100644
index 0000000..8f90729
--- /dev/null
+++ b/data_model/in_progress/spec_sha
@@ -0,0 +1 @@
+3432866fff8e0c21e1189a10d4ee66b9eb004844
diff --git a/data_model/master/clusters/ACL-Cluster.xml b/data_model/master/clusters/ACL-Cluster.xml
index 2278f7c..2f9de14 100644
--- a/data_model/master/clusters/ACL-Cluster.xml
+++ b/data_model/master/clusters/ACL-Cluster.xml
@@ -68,7 +68,7 @@
     <feature bit="0" code="EXTS" name="Extension" summary="Device provides ACL Extension attribute">
       <optionalConform/>
     </feature>
-    <feature bit="1" code="MNGD" name="Managed" summary="Device is managed">
+    <feature bit="1" code="MNGD" name="ManagedDevice" summary="Device is managed">
       <optionalConform/>
     </feature>
   </features>
@@ -274,7 +274,7 @@
         <feature name="MNGD"/>
       </mandatoryConform>
       <field id="0" name="ARL" type="list" default="desc">
-        <entry type="AccessRestrictionStruct"/>
+        <entry type="CommissioningAccessRestrictionEntryStruct"/>
         <mandatoryConform/>
         <constraint type="desc"/>
       </field>
diff --git a/data_model/master/clusters/CommissionerControlCluster.xml b/data_model/master/clusters/CommissionerControlCluster.xml
index 9cda8f4..9b01df6 100644
--- a/data_model/master/clusters/CommissionerControlCluster.xml
+++ b/data_model/master/clusters/CommissionerControlCluster.xml
@@ -111,8 +111,7 @@
         <optionalConform/>
       </field>
     </command>
-    <command id="0x02" name="ReverseOpenCommissioningWindow" direction="commandToClient" response="Y">
-      <access invokePrivilege="manage"/>
+    <command id="0x02" name="ReverseOpenCommissioningWindow" direction="responseFromServer">
       <mandatoryConform/>
       <field id="0" name="CommissioningTimeout" type="uint16">
         <mandatoryConform/>
@@ -145,9 +144,9 @@
       <field id="1" name="ClientNodeId" type="node-id">
         <mandatoryConform/>
       </field>
-      <field id="2" name="StatusCode" type="enum8">
+      <field id="2" name="StatusCode" type="status">
         <mandatoryConform/>
-        <constraint type="allowed" value="Status Codes"/>
+        <constraint type="desc"/>
       </field>
     </event>
   </events>
diff --git a/data_model/master/clusters/GeneralCommissioningCluster.xml b/data_model/master/clusters/GeneralCommissioningCluster.xml
index 2d9e658..8d6c428 100644
--- a/data_model/master/clusters/GeneralCommissioningCluster.xml
+++ b/data_model/master/clusters/GeneralCommissioningCluster.xml
@@ -65,7 +65,7 @@
   </clusterIds>
   <classification hierarchy="base" role="utility" picsCode="CGEN" scope="Node"/>
   <features>
-    <feature bit="0" code="TC" name="Terms" summary="Supports Terms &amp; Conditions acknowledgement">
+    <feature bit="0" code="TC" name="TermsAndConditions" summary="Supports Terms &amp; Conditions acknowledgement">
       <optionalConform/>
     </feature>
   </features>
diff --git a/data_model/master/clusters/JointFabricPKICluster.xml b/data_model/master/clusters/JointFabricPKICluster.xml
index b8c9474..7fba1e1 100644
--- a/data_model/master/clusters/JointFabricPKICluster.xml
+++ b/data_model/master/clusters/JointFabricPKICluster.xml
@@ -68,29 +68,38 @@
       <item value="0" name="ref_IcacsrRequestStatusOK" summary="No error">
         <mandatoryConform/>
       </item>
-      <item value="1" name="ref_InvalidIcacsr" summary="The ICACSR in the request was invalid">
+      <item value="1" name="ref_InvalidIcaCsrFormat" summary="The ICACSR in the request is not compliant to &lt;&lt;ref_Rfc2986, PKCS #10&gt;&gt; rules">
         <mandatoryConform/>
       </item>
-      <item value="2" name="ref_IcacsrFailed" summary="Signing the ICACSR failed">
+      <item value="2" name="ref_InvalidIcaCsrSignature" summary="The ICACSR in the request has an incorrect signature">
+        <mandatoryConform/>
+      </item>
+      <item value="3" name="ref_FailedDCLVendorIdValidation" summary="DCL Vendor ID validation failed">
+        <mandatoryConform/>
+      </item>
+      <item value="4" name="ref_NotAnIcac" summary="DCL returned certificate is not an ICAC">
+        <mandatoryConform/>
+      </item>
+      <item value="5" name="ref_IcaSigningFailed" summary="Signing the ICA CSR failed">
         <mandatoryConform/>
       </item>
     </enum>
   </dataTypes>
   <commands>
-    <command id="0x00" name="ICACSRRequest Command" direction="commandToServer" response="ICACSR Response Command">
+    <command id="0x00" name="ICACSRRequest Command" direction="commandToServer" response="ICACSRResponse Command">
       <access invokePrivilege="admin"/>
       <mandatoryConform/>
-      <field id="0" name="ICACSR" type="octstr">
+      <field id="0" name="ref_Icacsr" type="octstr">
         <mandatoryConform/>
         <constraint type="maxLength" value="400"/>
       </field>
     </command>
-    <command id="0x01" name="ICACSR Response Command" direction="responseFromServer">
+    <command id="0x01" name="ICACSRResponse Command" direction="responseFromServer">
       <mandatoryConform/>
-      <field id="0" name="StatusCode" type="ICAC Signing Request Status Enum">
+      <field id="0" name="ref_IcaCsrResponseStatusCode" type="ICAC Signing Request Status Enum">
         <mandatoryConform/>
       </field>
-      <field id="1" name="ICAC" type="octstr">
+      <field id="1" name="ref_IcaCsrResponseICAC" type="octstr">
         <optionalConform/>
         <constraint type="maxLength" value="400"/>
       </field>
diff --git a/data_model/master/clusters/MeterIdentification.xml b/data_model/master/clusters/MeterIdentification.xml
new file mode 100644
index 0000000..1ed47d5
--- /dev/null
+++ b/data_model/master/clusters/MeterIdentification.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+<!--

+Copyright (C) Connectivity Standards Alliance (2021). All rights reserved.

+The information within this document is the property of the Connectivity

+Standards Alliance and its use and disclosure are restricted, except as

+expressly set forth herein.

+

+Connectivity Standards Alliance hereby grants you a fully-paid, non-exclusive,

+nontransferable, worldwide, limited and revocable license (without the right to

+sublicense), under Connectivity Standards Alliance's applicable copyright

+rights, to view, download, save, reproduce and use the document solely for your

+own internal purposes and in accordance with the terms of the license set forth

+herein. This license does not authorize you to, and you expressly warrant that

+you shall not: (a) permit others (outside your organization) to use this

+document; (b) post or publish this document; (c) modify, adapt, translate, or

+otherwise change this document in any manner or create any derivative work

+based on this document; (d) remove or modify any notice or label on this

+document, including this Copyright Notice, License and Disclaimer. The

+Connectivity Standards Alliance does not grant you any license hereunder other

+than as expressly stated herein.

+

+Elements of this document may be subject to third party intellectual property

+rights, including without limitation, patent, copyright or trademark rights,

+and any such third party may or may not be a member of the Connectivity

+Standards Alliance. Connectivity Standards Alliance members grant other

+Connectivity Standards Alliance members certain intellectual property rights as

+set forth in the Connectivity Standards Alliance IPR Policy. Connectivity

+Standards Alliance members do not grant you any rights under this license. The

+Connectivity Standards Alliance is not responsible for, and shall not be held

+responsible in any manner for, identifying or failing to identify any or all

+such third party intellectual property rights. Please visit www.csa-iot.org for

+more information on how to become a member of the Connectivity Standards

+Alliance.

+

+This document and the information contained herein are provided on an “AS IS”

+basis and the Connectivity Standards Alliance DISCLAIMS ALL WARRANTIES EXPRESS

+OR IMPLIED, INCLUDING BUT NOT LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE

+INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING

+WITHOUT LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT, COPYRIGHT

+OR TRADEMARK RIGHTS); OR (B) ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS

+FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT. IN NO EVENT WILL THE

+CONNECTIVITY STANDARDS ALLIANCE BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF

+BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF BUSINESS, OR FOR ANY OTHER

+DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL

+DAMAGES OF ANY KIND, IN CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT

+OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

+LOSS OR DAMAGE.

+

+All company, brand and product names in this document may be trademarks that

+are the sole property of their respective owners.

+

+This notice and disclaimer must be included on all copies of this document.

+

+Connectivity Standards Alliance

+508 Second Street, Suite 206

+Davis, CA 95616, USA

+

+:xrefstyle: short

+-->
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0B06" name="Meter Identification Cluster" revision="1">
+  <revisionHistory>
+    <revision revision="1" summary="Initial version"/>
+  </revisionHistory>
+  <clusterIds>
+    <clusterId id="0x0B06" name="Meter Identification"/>
+  </clusterIds>
+  <classification hierarchy="base" role="application" picsCode="MTRID" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="PWRTHLD" name="PowerThreshold" summary="Supports information about power threshold">
+      <optionalConform/>
+    </feature>
+  </features>
+  <dataTypes>
+    <enum name="MeterTypeEnum">
+      <item value="0x00" name="Utility" summary="Utility Meter">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="Private" summary="Private Meter">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="Generic" summary="Generic Meter">
+        <mandatoryConform/>
+      </item>
+    </enum>
+    <enum name="PowerThresholdSourceEnum">
+      <item value="0x00" name="Contract" summary="The value comes from a signed contract">
+        <mandatoryConform/>
+      </item>
+      <item value="0x01" name="Regulator" summary="The value comes from a legal regulator">
+        <mandatoryConform/>
+      </item>
+      <item value="0x02" name="Equipment" summary="The value comes from a certified limits of the meter">
+        <mandatoryConform/>
+      </item>
+    </enum>
+  </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="MeterType" type="MeterTypeEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="UtilityName" type="string" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0002" name="PointOfDelivery" type="string" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform/>
+      <constraint type="maxLength" value="16"/>
+    </attribute>
+    <attribute id="0x0003" name="PowerThreshold" type="power-mW" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PWRTHLD"/>
+      </mandatoryConform>
+    </attribute>
+    <attribute id="0x0004" name="PowerThresholdSource" type="PowerThresholdSourceEnum" default="null">
+      <access read="true" readPrivilege="view"/>
+      <quality changeOmitted="false" nullable="true" scene="false" persistence="volatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
+      <mandatoryConform>
+        <feature name="PWRTHLD"/>
+      </mandatoryConform>
+    </attribute>
+  </attributes>
+</cluster>
\ No newline at end of file
diff --git a/data_model/master/clusters/Mode_DeviceEnergyManagement.xml b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml
index ff8f7e9..b991a36 100644
--- a/data_model/master/clusters/Mode_DeviceEnergyManagement.xml
+++ b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml
@@ -57,9 +57,10 @@
 

 :xrefstyle: basic

 -->
-<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009F" name="Device Energy Management Mode Cluster" revision="1">
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009F" name="Device Energy Management Mode Cluster" revision="2">
   <revisionHistory>
     <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added DEPONOFF Feature"/>
   </revisionHistory>
   <clusterIds>
     <clusterId id="0x009F" name="Device Energy Management Mode">
@@ -67,6 +68,11 @@
     </clusterId>
   </clusterIds>
   <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="DEMM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
   <dataTypes>
     <struct name="ModeOptionStruct">
       <field id="0" name="Label">
@@ -81,4 +87,18 @@
       </field>
     </struct>
   </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
 </cluster>
\ No newline at end of file
diff --git a/data_model/master/clusters/Mode_EVSE.xml b/data_model/master/clusters/Mode_EVSE.xml
index daf8042..fddd0e0 100644
--- a/data_model/master/clusters/Mode_EVSE.xml
+++ b/data_model/master/clusters/Mode_EVSE.xml
@@ -57,14 +57,20 @@
 

 :xrefstyle: basic

 -->
-<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009D" name="Energy EVSE Mode Cluster" revision="1">
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x009D" name="Energy EVSE Mode Cluster" revision="2">
   <revisionHistory>
     <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Disallowed OnMode and StartUpMode attributes"/>
   </revisionHistory>
   <clusterIds>
     <clusterId id="0x009D" name="Energy EVSE Mode"/>
   </clusterIds>
   <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="EEVSEM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
   <dataTypes>
     <struct name="ModeOptionStruct">
       <field id="0" name="Label">
@@ -79,11 +85,6 @@
       </field>
     </struct>
   </dataTypes>
-  <features>
-    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster">
-      <provisionalConform/>
-    </feature>
-  </features>
   <attributes>
     <attribute id="0x0000" name="SupportedModes">
       <mandatoryConform/>
@@ -92,10 +93,10 @@
       <mandatoryConform/>
     </attribute>
     <attribute id="0x0002" name="StartUpMode">
-      <provisionalConform/>
+      <disallowConform/>
     </attribute>
     <attribute id="0x0003" name="OnMode">
-      <provisionalConform/>
+      <disallowConform/>
     </attribute>
   </attributes>
 </cluster>
\ No newline at end of file
diff --git a/data_model/master/clusters/Mode_WaterHeater.xml b/data_model/master/clusters/Mode_WaterHeater.xml
index 1779e74..5aaf1d2 100644
--- a/data_model/master/clusters/Mode_WaterHeater.xml
+++ b/data_model/master/clusters/Mode_WaterHeater.xml
@@ -65,6 +65,11 @@
     <clusterId id="0x009E" name="Water Heater Mode"/>
   </clusterIds>
   <classification hierarchy="derived" baseCluster="Mode Base" role="application" picsCode="WHM" scope="Endpoint"/>
+  <features>
+    <feature bit="0" code="DEPONOFF" name="OnOff" summary="Dependency with the OnOff cluster is disallowed for this cluster">
+      <disallowConform/>
+    </feature>
+  </features>
   <dataTypes>
     <struct name="ModeOptionStruct">
       <field id="0" name="Label">
@@ -79,4 +84,18 @@
       </field>
     </struct>
   </dataTypes>
+  <attributes>
+    <attribute id="0x0000" name="SupportedModes">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0001" name="CurrentMode">
+      <mandatoryConform/>
+    </attribute>
+    <attribute id="0x0002" name="StartUpMode">
+      <disallowConform/>
+    </attribute>
+    <attribute id="0x0003" name="OnMode">
+      <disallowConform/>
+    </attribute>
+  </attributes>
 </cluster>
\ No newline at end of file
diff --git a/data_model/master/clusters/OTARequestor.xml b/data_model/master/clusters/OTARequestor.xml
index 83314d1..ea7ec03 100644
--- a/data_model/master/clusters/OTARequestor.xml
+++ b/data_model/master/clusters/OTARequestor.xml
@@ -136,6 +136,7 @@
     <attribute id="0x0000" name="DefaultOTAProviders" type="list" default="[]">
       <entry type="ProviderLocation"/>
       <access read="true" write="true" readPrivilege="view" writePrivilege="admin" fabricScoped="true"/>
+      <quality changeOmitted="false" nullable="false" scene="false" persistence="nonVolatile" reportable="false" sourceAttribution="false" quieterReporting="false"/>
       <mandatoryConform/>
       <constraint type="desc"/>
     </attribute>
diff --git a/data_model/master/clusters/ResourceMonitoring.xml b/data_model/master/clusters/ResourceMonitoring.xml
index b9d26ff..911ad11 100644
--- a/data_model/master/clusters/ResourceMonitoring.xml
+++ b/data_model/master/clusters/ResourceMonitoring.xml
@@ -74,7 +74,7 @@
     <feature bit="1" code="WRN" name="Warning" summary="Supports warning indication">
       <optionalConform/>
     </feature>
-    <feature bit="2" code="REP" name="Replacement" summary="Supports specifying the list of replacement products">
+    <feature bit="2" code="REP" name="ReplacementProductList" summary="Supports specifying the list of replacement products">
       <optionalConform/>
     </feature>
   </features>
diff --git a/data_model/master/clusters/Thermostat.xml b/data_model/master/clusters/Thermostat.xml
index de1743d..faf1478 100644
--- a/data_model/master/clusters/Thermostat.xml
+++ b/data_model/master/clusters/Thermostat.xml
@@ -55,7 +55,7 @@
 508 Second Street, Suite 206

 Davis, CA 95616, USA

 -->
-<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0201" name="Thermostat Cluster" revision="7">
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0201" name="Thermostat Cluster" revision="8">
   <revisionHistory>
     <revision revision="1" summary="Mandatory global ClusterRevision attribute added; fixed some defaults; CCB 1823, 1480"/>
     <revision revision="2" summary="CCB 1981 2186 2249 2250 2251; NFR Thermostat Setback"/>
@@ -66,6 +66,7 @@
     <revision revision="7" summary="Added Q quality for LocalTemperature, OutdoorTemperature and ACCoilTemperature,
              update constraints on local temperature calibration and minimum setpoint deadband and introduced
              Presets and MatterScheduleConfiguration features"/>
+    <revision revision="8" summary="Added comment regarding writing to ControlSequenceOfOperation."/>
   </revisionHistory>
   <clusterIds>
     <clusterId id="0x0201" name="Thermostat"/>
@@ -1215,6 +1216,7 @@
         <feature name="PRES"/>
       </mandatoryConform>
       <field id="0" name="PresetHandle" type="octstr">
+        <quality nullable="true"/>
         <mandatoryConform/>
         <constraint type="maxLength" value="16"/>
       </field>
diff --git a/data_model/master/clusters/ThreadNetworkDirectory.xml b/data_model/master/clusters/ThreadNetworkDirectory.xml
index 098b490..e511299 100644
--- a/data_model/master/clusters/ThreadNetworkDirectory.xml
+++ b/data_model/master/clusters/ThreadNetworkDirectory.xml
@@ -101,7 +101,7 @@
       <access read="true" readPrivilege="view"/>
       <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
       <mandatoryConform/>
-      <constraint type="min" value="SupportedFabrics*2"/>
+      <constraint type="desc"/>
     </attribute>
   </attributes>
   <commands>
diff --git a/data_model/master/clusters/WaterHeaterManagement.xml b/data_model/master/clusters/WaterHeaterManagement.xml
index cadf8e0..96dcc2b 100644
--- a/data_model/master/clusters/WaterHeaterManagement.xml
+++ b/data_model/master/clusters/WaterHeaterManagement.xml
@@ -57,9 +57,10 @@
 

 :xrefstyle: basic

 -->
-<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0094" name="Water Heater Management Cluster" revision="1">
+<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0094" name="Water Heater Management Cluster" revision="2">
   <revisionHistory>
     <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Added events and simplified data types"/>
   </revisionHistory>
   <clusterIds>
     <clusterId id="0x0094" name="Water Heater Management"/>
@@ -69,7 +70,7 @@
     <feature bit="0" code="EM" name="EnergyManagement" summary="Allows energy management control of the tank">
       <optionalConform/>
     </feature>
-    <feature bit="1" code="TP" name="TankPercent" summary="Supports monitoring the percentage of the water in the tank which is hot">
+    <feature bit="1" code="TP" name="TankPercent" summary="Supports monitoring the percentage of hot water in the tank">
       <optionalConform/>
     </feature>
   </features>
@@ -82,48 +83,58 @@
         <mandatoryConform/>
       </item>
     </enum>
-    <bitmap name="WaterHeaterDemandBitmap">
-      <bitfield name="ImmersionElement1" bit="0" summary="Immersion Heating Element1 State On">
+    <bitmap name="WaterHeaterHeatSourceBitmap">
+      <bitfield name="ImmersionElement1" bit="0" summary="Immersion Heating Element 1">
         <mandatoryConform/>
       </bitfield>
-      <bitfield name="ImmersionElement2" bit="1" summary="Immersion Heating Element2 State On">
+      <bitfield name="ImmersionElement2" bit="1" summary="Immersion Heating Element 2">
         <mandatoryConform/>
       </bitfield>
-      <bitfield name="HeatPump" bit="2" summary="Heat pump Heating State On">
+      <bitfield name="HeatPump" bit="2" summary="Heat pump Heating">
         <mandatoryConform/>
       </bitfield>
-      <bitfield name="Boiler" bit="3" summary="Boiler Heating State On">
+      <bitfield name="Boiler" bit="3" summary="Boiler Heating (e.g. Gas or Oil)">
         <mandatoryConform/>
       </bitfield>
-      <bitfield name="Other" bit="4" summary="Other Heating State On">
+      <bitfield name="Other" bit="4" summary="Other Heating">
         <mandatoryConform/>
       </bitfield>
     </bitmap>
-    <bitmap name="WaterHeaterTypeBitmap">
-      <bitfield name="ImmersionElement1" bit="0" summary="Supports Immersion Heating Element1">
+    <struct name="WaterHeaterBoostInfoStruct">
+      <field id="0" name="Duration" type="elapsed-s">
         <mandatoryConform/>
-      </bitfield>
-      <bitfield name="ImmersionElement2" bit="1" summary="Supports Immersion Heating Element2">
-        <mandatoryConform/>
-      </bitfield>
-      <bitfield name="HeatPump" bit="2" summary="Supports Heat pump Heating">
-        <mandatoryConform/>
-      </bitfield>
-      <bitfield name="Boiler" bit="3" summary="Supports Boiler Heating (e.g. Gas or Oil)">
-        <mandatoryConform/>
-      </bitfield>
-      <bitfield name="Other" bit="4" summary="Supports Other Heating">
-        <mandatoryConform/>
-      </bitfield>
-    </bitmap>
+        <constraint type="min" value="1"/>
+      </field>
+      <field id="1" name="OneShot" type="bool" default="False"/>
+      <field id="2" name="EmergencyBoost" type="bool" default="False">
+        <optionalConform/>
+      </field>
+      <field id="3" name="TemporarySetpoint" type="temperature">
+        <optionalConform/>
+        <constraint type="desc"/>
+      </field>
+      <field id="4" name="TargetPercentage" type="percent">
+        <otherwiseConform>
+          <mandatoryConform>
+            <attribute name="TargetReheat"/>
+          </mandatoryConform>
+          <optionalConform>
+            <feature name="TP"/>
+          </optionalConform>
+        </otherwiseConform>
+      </field>
+      <field id="5" name="TargetReheat" type="percent">
+        <constraint type="max" value="TargetPercentage"/>
+      </field>
+    </struct>
   </dataTypes>
   <attributes>
-    <attribute id="0x0000" name="HeaterTypes" type="WaterHeaterTypeBitmap" default="0">
+    <attribute id="0x0000" name="HeaterTypes" type="WaterHeaterHeatSourceBitmap" default="0">
       <access read="true" readPrivilege="view"/>
       <quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
       <mandatoryConform/>
     </attribute>
-    <attribute id="0x0001" name="HeatDemand" type="WaterHeaterDemandBitmap" default="0">
+    <attribute id="0x0001" name="HeatDemand" type="WaterHeaterHeatSourceBitmap" default="0">
       <access read="true" readPrivilege="view"/>
       <mandatoryConform/>
     </attribute>
@@ -138,6 +149,7 @@
       <mandatoryConform>
         <feature name="EM"/>
       </mandatoryConform>
+      <constraint type="min" value="0"/>
     </attribute>
     <attribute id="0x0004" name="TankPercentage" type="percent" default="0">
       <access read="true" readPrivilege="view"/>
@@ -154,27 +166,9 @@
     <command id="0x00" name="Boost" direction="commandToServer" response="Y">
       <access invokePrivilege="manage"/>
       <mandatoryConform/>
-      <field id="0" name="Duration" type="elapsed-s">
+      <field id="0" name="BoostInfo" type="WaterHeaterBoostInfoStruct">
         <mandatoryConform/>
-      </field>
-      <field id="1" name="OneShot" type="bool" default="False">
-        <optionalConform/>
-      </field>
-      <field id="2" name="EmergencyBoost" type="bool" default="False">
-        <optionalConform/>
-      </field>
-      <field id="3" name="TemporarySetpoint" type="temperature">
-        <optionalConform/>
-      </field>
-      <field id="4" name="TargetPercentage" type="percent">
-        <optionalConform>
-          <feature name="TP"/>
-        </optionalConform>
-      </field>
-      <field id="5" name="TargetReheat" type="percent">
-        <optionalConform>
-          <feature name="TP"/>
-        </optionalConform>
+        <constraint type="desc"/>
       </field>
     </command>
     <command id="0x01" name="CancelBoost" direction="commandToServer" response="Y">
@@ -182,4 +176,18 @@
       <mandatoryConform/>
     </command>
   </commands>
+  <events>
+    <event id="0x00" name="BoostStarted" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+      <field id="0" name="BoostInfo" type="WaterHeaterBoostInfoStruct">
+        <mandatoryConform/>
+        <constraint type="desc"/>
+      </field>
+    </event>
+    <event id="0x01" name="BoostEnded" priority="info">
+      <access readPrivilege="view"/>
+      <mandatoryConform/>
+    </event>
+  </events>
 </cluster>
\ No newline at end of file
diff --git a/data_model/master/clusters/cluster_ids.json b/data_model/master/clusters/cluster_ids.json
index e04a90b..5896dc1 100644
--- a/data_model/master/clusters/cluster_ids.json
+++ b/data_model/master/clusters/cluster_ids.json
@@ -120,5 +120,6 @@
     "1295": "Content Control",
     "1296": "Content App Observer",
     "1872": "Ecosystem Information",
-    "1873": "Commissioner Control"
+    "1873": "Commissioner Control",
+    "2822": "Meter Identification"
 }
diff --git a/data_model/master/device_types/Cooktop.xml b/data_model/master/device_types/Cooktop.xml
index 2c7795d..9164641 100644
--- a/data_model/master/device_types/Cooktop.xml
+++ b/data_model/master/device_types/Cooktop.xml
@@ -68,7 +68,7 @@
     <cluster id="0x0006" name="On/Off" side="server">
       <mandatoryConform/>
       <features>
-        <feature code="" name="OFFONLY">
+        <feature code="" name="OffOnly">
           <mandatoryConform/>
         </feature>
       </features>
diff --git a/data_model/master/device_types/DeviceEnergyManagement.xml b/data_model/master/device_types/DeviceEnergyManagement.xml
index 85f7c5d..86efccc 100644
--- a/data_model/master/device_types/DeviceEnergyManagement.xml
+++ b/data_model/master/device_types/DeviceEnergyManagement.xml
@@ -55,9 +55,10 @@
 508 Second Street, Suite 206

 Davis, CA 95616, USA

 -->
-<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050D" name="Device Energy Management" revision="1">
+<deviceType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd devicetype devicetype.xsd" id="0x050D" name="Device Energy Management" revision="2">
   <revisionHistory>
     <revision revision="1" summary="Initial revision"/>
+    <revision revision="2" summary="Updated description of when DEM Mode is to be included"/>
   </revisionHistory>
   <classification class="utility" scope="endpoint"/>
   <clusters>
@@ -66,11 +67,21 @@
         <provisionalConform/>
         <mandatoryConform/>
       </otherwiseConform>
+      <features>
+        <feature code="" name="PowerAdjustment"/>
+        <feature code="" name="StartTimeAdjustment"/>
+        <feature code="" name="Pausable"/>
+        <feature code="" name="ForecastAdjustment"/>
+        <feature code="" name="ConstraintBasedAdjustment"/>
+      </features>
     </cluster>
     <cluster id="0x009F" name="Device Energy Management Mode" side="server">
       <otherwiseConform>
         <provisionalConform/>
-        <mandatoryConform/>
+        <mandatoryConform>
+          <attribute name="ControllableESA"/>
+        </mandatoryConform>
+        <optionalConform/>
       </otherwiseConform>
     </cluster>
   </clusters>
diff --git a/data_model/master/device_types/DoorLock.xml b/data_model/master/device_types/DoorLock.xml
index 121ea17..e2eb1e9 100644
--- a/data_model/master/device_types/DoorLock.xml
+++ b/data_model/master/device_types/DoorLock.xml
@@ -70,7 +70,7 @@
     <cluster id="0x0004" name="Groups" side="server">
       <disallowConform/>
     </cluster>
-    <cluster id="0x0005" name="Scenes Management" side="server">
+    <cluster id="0x0062" name="Scenes Management" side="server">
       <disallowConform/>
     </cluster>
     <cluster id="0x0101" name="Door Lock" side="server">
@@ -95,49 +95,14 @@
             <optionalConform/>
           </otherwiseConform>
         </feature>
-        <feature code="" name="Logging">
-          <disallowConform/>
-        </feature>
-        <feature code="" name="Notification">
-          <disallowConform/>
-        </feature>
       </features>
       <attributes>
-        <attribute code="" name="KeypadOperationEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="RemoteOperationEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="ManualOperationEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="RFIDOperationEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="KeypadProgrammingEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="RemoteProgrammingEventMask">
-          <disallowConform/>
-        </attribute>
-        <attribute code="" name="RFIDProgrammingEventMask">
-          <disallowConform/>
-        </attribute>
         <attribute code="" name="AlarmMask">
           <optionalConform>
             <attribute name="Alarms"/>
           </optionalConform>
         </attribute>
       </attributes>
-      <commands>
-        <command id="" name="OperatingEventNotification">
-          <disallowConform/>
-        </command>
-        <command id="" name="ProgrammingEventNotification">
-          <disallowConform/>
-        </command>
-      </commands>
     </cluster>
   </clusters>
 </deviceType>
\ No newline at end of file
diff --git a/data_model/master/device_types/DoorLockController.xml b/data_model/master/device_types/DoorLockController.xml
index 101dc46..40749d7 100644
--- a/data_model/master/device_types/DoorLockController.xml
+++ b/data_model/master/device_types/DoorLockController.xml
@@ -67,15 +67,15 @@
     <cluster id="0x0004" name="Groups" side="client">
       <optionalConform/>
     </cluster>
-    <cluster id="0x0005" name="Scenes Management" side="client">
+    <cluster id="0x0038" name="Time Synchronization" side="server">
+      <optionalConform/>
+    </cluster>
+    <cluster id="0x0062" name="Scenes Management" side="client">
       <otherwiseConform>
         <provisionalConform/>
         <optionalConform/>
       </otherwiseConform>
     </cluster>
-    <cluster id="0x0038" name="Time Synchronization" side="server">
-      <optionalConform/>
-    </cluster>
     <cluster id="0x0101" name="Door Lock" side="client">
       <mandatoryConform/>
     </cluster>
diff --git a/data_model/master/device_types/WindowCovering.xml b/data_model/master/device_types/WindowCovering.xml
index a2e16be..0e90704 100644
--- a/data_model/master/device_types/WindowCovering.xml
+++ b/data_model/master/device_types/WindowCovering.xml
@@ -78,7 +78,7 @@
     <cluster id="0x0102" name="Window Covering" side="server">
       <mandatoryConform/>
       <features>
-        <feature code="" name="Absolute">
+        <feature code="" name="AbsolutePosition">
           <mandatoryConform>
             <condition name="Zigbee"/>
           </mandatoryConform>
diff --git a/data_model/master/spec_sha b/data_model/master/spec_sha
index 16b2cbb..8f90729 100644
--- a/data_model/master/spec_sha
+++ b/data_model/master/spec_sha
@@ -1 +1 @@
-12e2fa3014b316b202eed892cb50dec7b6851d8e
+3432866fff8e0c21e1189a10d4ee66b9eb004844
diff --git a/scripts/spec_xml/generate_spec_xml.py b/scripts/spec_xml/generate_spec_xml.py
index 7f9ea4c..0d41b3f 100755
--- a/scripts/spec_xml/generate_spec_xml.py
+++ b/scripts/spec_xml/generate_spec_xml.py
@@ -29,21 +29,34 @@
     os.path.join(os.path.dirname(__file__), '..', '..'))
 DEFAULT_OUTPUT_DIR_1_3 = os.path.abspath(
     os.path.join(DEFAULT_CHIP_ROOT, 'data_model', '1.3'))
+DEFAULT_OUTPUT_DIR_IN_PROGRESS = os.path.abspath(
+    os.path.join(DEFAULT_CHIP_ROOT, 'data_model', 'in_progress'))
 DEFAULT_OUTPUT_DIR_TOT = os.path.abspath(
     os.path.join(DEFAULT_CHIP_ROOT, 'data_model', 'master'))
 DEFAULT_DOCUMENTATION_FILE = os.path.abspath(
     os.path.join(DEFAULT_CHIP_ROOT, 'docs', 'spec_clusters.md'))
 
+# questions
+# is energy-calendar still in?
+# is heat-pump out? wasn't in 0.7
+# location-cluster - is this define gone now?
+# queuedpreset - is this define gone now?
+CURRENT_IN_PROGRESS_DEFINES = ['aliro', 'atomicwrites', 'battery-storage', 'device-location', 'e2e-jf', 'energy-calendar', 'energy-drlc',
+                               'energy-management', 'heat-pump', 'hrap-1', 'hvac', 'matter-fabric-synchronization', 'metering', 'secondary-net',
+                               'service-area-cluster', 'solar-power', 'tcp', 'water-heater', 'wifiSetup']
+
 
 def get_xml_path(filename, output_dir):
     xml = os.path.basename(filename).replace('.adoc', '.xml')
     return os.path.abspath(os.path.join(output_dir, xml))
 
 
-def make_asciidoc(target: str, include_in_progress: bool, spec_dir: str, dry_run: bool) -> str:
+def make_asciidoc(target: str, include_in_progress: str, spec_dir: str, dry_run: bool) -> str:
     cmd = ['make', 'PRINT_FILENAMES=1']
-    if include_in_progress:
+    if include_in_progress == 'All':
         cmd.append('INCLUDE_IN_PROGRESS=1')
+    elif include_in_progress == 'Current':
+        cmd.append(f'INCLUDE_IN_PROGRESS={" ".join(CURRENT_IN_PROGRESS_DEFINES)}')
     cmd.append(target)
     if dry_run:
         print(cmd)
@@ -75,13 +88,12 @@
     help='Flag for dry run')
 @click.option(
     '--include-in-progress',
-    default=True,
-    type=bool,
-    help='Include in-progress items from spec')
+    type=click.Choice(['All', 'None', 'Current']), default='All')
 def main(scraper, spec_root, output_dir, dry_run, include_in_progress):
     # Clusters need to be scraped first because the cluster directory is passed to the device type directory
     if not output_dir:
-        output_dir = DEFAULT_OUTPUT_DIR_TOT if include_in_progress else DEFAULT_OUTPUT_DIR_1_3
+        output_dir_map = {'All': DEFAULT_OUTPUT_DIR_TOT, 'None': DEFAULT_OUTPUT_DIR_1_3, 'Current': DEFAULT_OUTPUT_DIR_IN_PROGRESS}
+        output_dir = output_dir_map[include_in_progress]
     scrape_clusters(scraper, spec_root, output_dir, dry_run, include_in_progress)
     scrape_device_types(scraper, spec_root, output_dir, dry_run, include_in_progress)
     if not dry_run:
@@ -115,8 +127,11 @@
         xml_path = get_xml_path(filename, clusters_output_dir)
         cmd = [scraper, 'cluster', '-i', filename, '-o',
                xml_path, '-nd']
-        if include_in_progress:
+        if include_in_progress == 'All':
             cmd.extend(['--define', 'in-progress'])
+        elif include_in_progress == 'Current':
+            cmd.extend(['--define'])
+            cmd.extend(CURRENT_IN_PROGRESS_DEFINES)
         if dry_run:
             print(cmd)
         else:
diff --git a/src/python_testing/TestSpecParsingSupport.py b/src/python_testing/TestSpecParsingSupport.py
index 0523ebb..1741f8d 100644
--- a/src/python_testing/TestSpecParsingSupport.py
+++ b/src/python_testing/TestSpecParsingSupport.py
@@ -236,11 +236,18 @@
         # checks that the 1.3 spec (default) does not contain in-progress clusters and the TOT does
         tot_xml_clusters, problems = build_xml_clusters(PrebuiltDataModelDirectory.kMaster)
         one_three_clusters, problems = build_xml_clusters(PrebuiltDataModelDirectory.k1_3)
+        in_progress, problems = build_xml_clusters(PrebuiltDataModelDirectory.kInProgress)
         asserts.assert_greater(len(set(tot_xml_clusters.keys()) - set(one_three_clusters.keys())),
-                               0, "In progress dir does not contain any clusters not in 1.3")
+                               0, "Master dir does not contain any clusters not in 1.3")
+        asserts.assert_greater(len(set(tot_xml_clusters.keys()) - set(in_progress.keys())),
+                               0, "Master dir does not contain any clusters not in in_progress")
+        asserts.assert_greater(len(set(in_progress.keys()) - set(one_three_clusters.keys())),
+                               0, "in_progress dir does not contain any clusters not in 1.3")
         # only the pulse width modulation cluster was removed post 1.3
         asserts.assert_equal(set(one_three_clusters.keys()) - set(tot_xml_clusters.keys()),
                              set([Clusters.PulseWidthModulation.id]), "There are some 1.3 clusters that are not included in the TOT spec")
+        asserts.assert_equal(set(in_progress.keys())-set(tot_xml_clusters.keys()),
+                             set(), "There are some in_progress clusters that are not included in the TOT spec")
 
         str_path = str(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'master', 'clusters'))
         string_override_check, problems = build_xml_clusters(str_path)
diff --git a/src/python_testing/spec_parsing_support.py b/src/python_testing/spec_parsing_support.py
index 1b8e29c..867c8a9 100644
--- a/src/python_testing/spec_parsing_support.py
+++ b/src/python_testing/spec_parsing_support.py
@@ -500,6 +500,7 @@
 
 class PrebuiltDataModelDirectory(Enum):
     k1_3 = auto()
+    kInProgress = auto()
     kMaster = auto()
 
 
@@ -511,6 +512,8 @@
 def _get_data_model_directory(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str], data_model_level: DataModelLevel) -> str:
     if data_model_directory == PrebuiltDataModelDirectory.k1_3:
         return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.3', data_model_level)
+    elif data_model_directory == PrebuiltDataModelDirectory.kInProgress:
+        return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'in_progress', data_model_level)
     elif data_model_directory == PrebuiltDataModelDirectory.kMaster:
         return os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'master', data_model_level)
     else:
@@ -743,7 +746,7 @@
     return device_types, problems
 
 
-def build_xml_device_types(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str] = PrebuiltDataModelDirectory.kMaster) -> tuple[dict[int, XmlDeviceType], list[ProblemNotice]]:
+def build_xml_device_types(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str] = PrebuiltDataModelDirectory.kInProgress) -> tuple[dict[int, XmlDeviceType], list[ProblemNotice]]:
     dir = _get_data_model_directory(data_model_directory, DataModelLevel.kDeviceType)
     device_types: dict[int, XmlDeviceType] = {}
     problems = []