@matter/model 0.17.4 → 0.17.5-alpha.0-20260702-a2cd6f764

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/dist/cjs/aspects/Quality.d.ts +1 -1
  2. package/dist/cjs/common/DeviceClassification.d.ts +6 -6
  3. package/dist/cjs/common/Specification.d.ts +2 -2
  4. package/dist/cjs/common/Specification.js +2 -2
  5. package/dist/cjs/dts/Specifications.d.ts +17 -0
  6. package/dist/cjs/logic/cluster-variance/InferredComponents.js +32 -2
  7. package/dist/cjs/logic/cluster-variance/InferredComponents.js.map +1 -1
  8. package/dist/cjs/models/Globals.d.ts +7 -0
  9. package/dist/cjs/models/Globals.d.ts.map +1 -1
  10. package/dist/cjs/standard/elements/access-control.element.d.ts.map +1 -1
  11. package/dist/cjs/standard/elements/access-control.element.js +26 -2
  12. package/dist/cjs/standard/elements/access-control.element.js.map +1 -1
  13. package/dist/cjs/standard/elements/ambient-context-sensing.element.d.ts +8 -0
  14. package/dist/cjs/standard/elements/ambient-context-sensing.element.d.ts.map +1 -0
  15. package/dist/cjs/standard/elements/ambient-context-sensing.element.js +186 -0
  16. package/dist/cjs/standard/elements/ambient-context-sensing.element.js.map +6 -0
  17. package/dist/cjs/standard/elements/base.element.js +1 -1
  18. package/dist/cjs/standard/elements/base.element.js.map +1 -1
  19. package/dist/cjs/standard/elements/basic-information.element.d.ts.map +1 -1
  20. package/dist/cjs/standard/elements/basic-information.element.js +24 -2
  21. package/dist/cjs/standard/elements/basic-information.element.js.map +1 -1
  22. package/dist/cjs/standard/elements/boolean-state-configuration.element.d.ts.map +1 -1
  23. package/dist/cjs/standard/elements/boolean-state-configuration.element.js +4 -3
  24. package/dist/cjs/standard/elements/boolean-state-configuration.element.js.map +1 -1
  25. package/dist/cjs/standard/elements/boolean-state.element.d.ts.map +1 -1
  26. package/dist/cjs/standard/elements/boolean-state.element.js +6 -2
  27. package/dist/cjs/standard/elements/boolean-state.element.js.map +2 -2
  28. package/dist/cjs/standard/elements/bridged-device-basic-information.element.js +2 -2
  29. package/dist/cjs/standard/elements/bridged-device-basic-information.element.js.map +1 -1
  30. package/dist/cjs/standard/elements/camera-av-stream-management.element.d.ts.map +1 -1
  31. package/dist/cjs/standard/elements/camera-av-stream-management.element.js +13 -3
  32. package/dist/cjs/standard/elements/camera-av-stream-management.element.js.map +1 -1
  33. package/dist/cjs/standard/elements/certification-type-enum.element.d.ts +8 -0
  34. package/dist/cjs/standard/elements/certification-type-enum.element.d.ts.map +1 -0
  35. package/dist/cjs/standard/elements/certification-type-enum.element.js +38 -0
  36. package/dist/cjs/standard/elements/certification-type-enum.element.js.map +6 -0
  37. package/dist/cjs/standard/elements/chime-cluster.element.js +2 -2
  38. package/dist/cjs/standard/elements/chime-cluster.element.js.map +1 -1
  39. package/dist/cjs/standard/elements/closure-controller.element.d.ts.map +1 -1
  40. package/dist/cjs/standard/elements/closure-controller.element.js +0 -1
  41. package/dist/cjs/standard/elements/closure-controller.element.js.map +1 -1
  42. package/dist/cjs/standard/elements/concentration-measurement.element.d.ts.map +1 -1
  43. package/dist/cjs/standard/elements/concentration-measurement.element.js +12 -4
  44. package/dist/cjs/standard/elements/concentration-measurement.element.js.map +1 -1
  45. package/dist/cjs/standard/elements/content-launcher.element.js +7 -7
  46. package/dist/cjs/standard/elements/content-launcher.element.js.map +1 -1
  47. package/dist/cjs/standard/elements/definitions.d.ts +7 -0
  48. package/dist/cjs/standard/elements/definitions.d.ts.map +1 -1
  49. package/dist/cjs/standard/elements/definitions.js +7 -0
  50. package/dist/cjs/standard/elements/definitions.js.map +1 -1
  51. package/dist/cjs/standard/elements/flow-measurement.element.d.ts.map +1 -1
  52. package/dist/cjs/standard/elements/flow-measurement.element.js +13 -4
  53. package/dist/cjs/standard/elements/flow-measurement.element.js.map +1 -1
  54. package/dist/cjs/standard/elements/general-commissioning.element.d.ts.map +1 -1
  55. package/dist/cjs/standard/elements/general-commissioning.element.js +6 -4
  56. package/dist/cjs/standard/elements/general-commissioning.element.js.map +1 -1
  57. package/dist/cjs/standard/elements/general-diagnostics.element.d.ts.map +1 -1
  58. package/dist/cjs/standard/elements/general-diagnostics.element.js +17 -1
  59. package/dist/cjs/standard/elements/general-diagnostics.element.js.map +1 -1
  60. package/dist/cjs/standard/elements/group-key-management.element.d.ts.map +1 -1
  61. package/dist/cjs/standard/elements/group-key-management.element.js +21 -3
  62. package/dist/cjs/standard/elements/group-key-management.element.js.map +1 -1
  63. package/dist/cjs/standard/elements/groupcast.element.d.ts +8 -0
  64. package/dist/cjs/standard/elements/groupcast.element.d.ts.map +1 -0
  65. package/dist/cjs/standard/elements/groupcast.element.js +198 -0
  66. package/dist/cjs/standard/elements/groupcast.element.js.map +6 -0
  67. package/dist/cjs/standard/elements/identified-human-activity.element.d.ts +8 -0
  68. package/dist/cjs/standard/elements/identified-human-activity.element.d.ts.map +1 -0
  69. package/dist/cjs/standard/elements/identified-human-activity.element.js +45 -0
  70. package/dist/cjs/standard/elements/identified-human-activity.element.js.map +6 -0
  71. package/dist/cjs/standard/elements/identified-object.element.d.ts +8 -0
  72. package/dist/cjs/standard/elements/identified-object.element.d.ts.map +1 -0
  73. package/dist/cjs/standard/elements/identified-object.element.js +48 -0
  74. package/dist/cjs/standard/elements/identified-object.element.js.map +6 -0
  75. package/dist/cjs/standard/elements/identified-sound.element.d.ts +8 -0
  76. package/dist/cjs/standard/elements/identified-sound.element.d.ts.map +1 -0
  77. package/dist/cjs/standard/elements/identified-sound.element.js +57 -0
  78. package/dist/cjs/standard/elements/identified-sound.element.js.map +6 -0
  79. package/dist/cjs/standard/elements/illuminance-measurement.element.d.ts.map +1 -1
  80. package/dist/cjs/standard/elements/illuminance-measurement.element.js +13 -5
  81. package/dist/cjs/standard/elements/illuminance-measurement.element.js.map +1 -1
  82. package/dist/cjs/standard/elements/joint-fabric-administrator-cluster.element.d.ts.map +1 -1
  83. package/dist/cjs/standard/elements/joint-fabric-administrator-cluster.element.js +20 -18
  84. package/dist/cjs/standard/elements/joint-fabric-administrator-cluster.element.js.map +1 -1
  85. package/dist/cjs/standard/elements/joint-fabric-datastore.element.d.ts.map +1 -1
  86. package/dist/cjs/standard/elements/joint-fabric-datastore.element.js +143 -62
  87. package/dist/cjs/standard/elements/joint-fabric-datastore.element.js.map +1 -1
  88. package/dist/cjs/standard/elements/mode-base.element.js +1 -1
  89. package/dist/cjs/standard/elements/mode-base.element.js.map +1 -1
  90. package/dist/cjs/standard/elements/models.d.ts +7 -0
  91. package/dist/cjs/standard/elements/models.d.ts.map +1 -1
  92. package/dist/cjs/standard/elements/models.js +14 -0
  93. package/dist/cjs/standard/elements/models.js.map +1 -1
  94. package/dist/cjs/standard/elements/namespace.element.d.ts.map +1 -1
  95. package/dist/cjs/standard/elements/namespace.element.js +4 -1
  96. package/dist/cjs/standard/elements/namespace.element.js.map +1 -1
  97. package/dist/cjs/standard/elements/network-commissioning.element.js +14 -14
  98. package/dist/cjs/standard/elements/network-commissioning.element.js.map +1 -1
  99. package/dist/cjs/standard/elements/network-infrastructure-manager.element.d.ts.map +1 -1
  100. package/dist/cjs/standard/elements/network-infrastructure-manager.element.js +6 -0
  101. package/dist/cjs/standard/elements/network-infrastructure-manager.element.js.map +1 -1
  102. package/dist/cjs/standard/elements/occupancy-sensing.element.d.ts.map +1 -1
  103. package/dist/cjs/standard/elements/occupancy-sensing.element.js +4 -3
  104. package/dist/cjs/standard/elements/occupancy-sensing.element.js.map +1 -1
  105. package/dist/cjs/standard/elements/power-topology.element.d.ts.map +1 -1
  106. package/dist/cjs/standard/elements/power-topology.element.js +0 -7
  107. package/dist/cjs/standard/elements/power-topology.element.js.map +2 -2
  108. package/dist/cjs/standard/elements/pressure-measurement.element.d.ts.map +1 -1
  109. package/dist/cjs/standard/elements/pressure-measurement.element.js +18 -8
  110. package/dist/cjs/standard/elements/pressure-measurement.element.js.map +1 -1
  111. package/dist/cjs/standard/elements/push-av-stream-transport.element.d.ts.map +1 -1
  112. package/dist/cjs/standard/elements/push-av-stream-transport.element.js +1 -3
  113. package/dist/cjs/standard/elements/push-av-stream-transport.element.js.map +1 -1
  114. package/dist/cjs/standard/elements/rain-sensor.element.d.ts.map +1 -1
  115. package/dist/cjs/standard/elements/rain-sensor.element.js +3 -2
  116. package/dist/cjs/standard/elements/rain-sensor.element.js.map +1 -1
  117. package/dist/cjs/standard/elements/refrigerator-device.element.d.ts.map +1 -1
  118. package/dist/cjs/standard/elements/refrigerator-device.element.js +4 -1
  119. package/dist/cjs/standard/elements/refrigerator-device.element.js.map +1 -1
  120. package/dist/cjs/standard/elements/relative-humidity-measurement.element.d.ts.map +1 -1
  121. package/dist/cjs/standard/elements/relative-humidity-measurement.element.js +12 -4
  122. package/dist/cjs/standard/elements/relative-humidity-measurement.element.js.map +1 -1
  123. package/dist/cjs/standard/elements/root-node.element.js +1 -1
  124. package/dist/cjs/standard/elements/root-node.element.js.map +1 -1
  125. package/dist/cjs/standard/elements/smoke-co-alarm-cluster.element.d.ts.map +1 -1
  126. package/dist/cjs/standard/elements/smoke-co-alarm-cluster.element.js +4 -2
  127. package/dist/cjs/standard/elements/smoke-co-alarm-cluster.element.js.map +1 -1
  128. package/dist/cjs/standard/elements/software-diagnostics.element.d.ts.map +1 -1
  129. package/dist/cjs/standard/elements/software-diagnostics.element.js +12 -4
  130. package/dist/cjs/standard/elements/software-diagnostics.element.js.map +1 -1
  131. package/dist/cjs/standard/elements/temperature-alarm.element.d.ts +8 -0
  132. package/dist/cjs/standard/elements/temperature-alarm.element.d.ts.map +1 -0
  133. package/dist/cjs/standard/elements/temperature-alarm.element.js +160 -0
  134. package/dist/cjs/standard/elements/temperature-alarm.element.js.map +6 -0
  135. package/dist/cjs/standard/elements/temperature-controlled-cabinet.element.d.ts.map +1 -1
  136. package/dist/cjs/standard/elements/temperature-controlled-cabinet.element.js +2 -1
  137. package/dist/cjs/standard/elements/temperature-controlled-cabinet.element.js.map +1 -1
  138. package/dist/cjs/standard/elements/temperature-measurement.element.d.ts.map +1 -1
  139. package/dist/cjs/standard/elements/temperature-measurement.element.js +13 -4
  140. package/dist/cjs/standard/elements/temperature-measurement.element.js.map +1 -1
  141. package/dist/cjs/standard/elements/thermostat-cluster.element.d.ts.map +1 -1
  142. package/dist/cjs/standard/elements/thermostat-cluster.element.js +143 -3
  143. package/dist/cjs/standard/elements/thermostat-cluster.element.js.map +2 -2
  144. package/dist/cjs/standard/elements/thermostat-device.element.d.ts.map +1 -1
  145. package/dist/cjs/standard/elements/thermostat-device.element.js +3 -2
  146. package/dist/cjs/standard/elements/thermostat-device.element.js.map +1 -1
  147. package/dist/cjs/standard/elements/water-freeze-detector.element.d.ts.map +1 -1
  148. package/dist/cjs/standard/elements/water-freeze-detector.element.js +3 -2
  149. package/dist/cjs/standard/elements/water-freeze-detector.element.js.map +1 -1
  150. package/dist/cjs/standard/elements/water-leak-detector.element.d.ts.map +1 -1
  151. package/dist/cjs/standard/elements/water-leak-detector.element.js +3 -2
  152. package/dist/cjs/standard/elements/water-leak-detector.element.js.map +1 -1
  153. package/dist/cjs/standard/elements/web-rtc-transport-provider.element.d.ts.map +1 -1
  154. package/dist/cjs/standard/elements/web-rtc-transport-provider.element.js +0 -8
  155. package/dist/cjs/standard/elements/web-rtc-transport-provider.element.js.map +2 -2
  156. package/dist/cjs/standard/resources/access-control.resource.js +68 -21
  157. package/dist/cjs/standard/resources/access-control.resource.js.map +1 -1
  158. package/dist/cjs/standard/resources/account-login.resource.js +3 -3
  159. package/dist/cjs/standard/resources/ambient-context-sensing.resource.d.ts +7 -0
  160. package/dist/cjs/standard/resources/ambient-context-sensing.resource.d.ts.map +1 -0
  161. package/dist/cjs/standard/resources/ambient-context-sensing.resource.js +241 -0
  162. package/dist/cjs/standard/resources/ambient-context-sensing.resource.js.map +6 -0
  163. package/dist/cjs/standard/resources/base.resource.js +38 -8
  164. package/dist/cjs/standard/resources/base.resource.js.map +1 -1
  165. package/dist/cjs/standard/resources/basic-information.resource.js +24 -0
  166. package/dist/cjs/standard/resources/basic-information.resource.js.map +1 -1
  167. package/dist/cjs/standard/resources/boolean-state-configuration.resource.js +7 -1
  168. package/dist/cjs/standard/resources/boolean-state-configuration.resource.js.map +1 -1
  169. package/dist/cjs/standard/resources/boolean-state.resource.js +14 -3
  170. package/dist/cjs/standard/resources/boolean-state.resource.js.map +1 -1
  171. package/dist/cjs/standard/resources/camera-av-stream-management.resource.js +7 -1
  172. package/dist/cjs/standard/resources/camera-av-stream-management.resource.js.map +1 -1
  173. package/dist/cjs/standard/resources/certification-type-enum.resource.d.ts +7 -0
  174. package/dist/cjs/standard/resources/certification-type-enum.resource.d.ts.map +1 -0
  175. package/dist/cjs/standard/resources/certification-type-enum.resource.js +22 -0
  176. package/dist/cjs/standard/resources/certification-type-enum.resource.js.map +6 -0
  177. package/dist/cjs/standard/resources/closure-controller.resource.js +0 -1
  178. package/dist/cjs/standard/resources/closure-controller.resource.js.map +1 -1
  179. package/dist/cjs/standard/resources/color-control.resource.js +12 -12
  180. package/dist/cjs/standard/resources/color-control.resource.js.map +1 -1
  181. package/dist/cjs/standard/resources/energy-preference.resource.js +1 -1
  182. package/dist/cjs/standard/resources/energy-preference.resource.js.map +1 -1
  183. package/dist/cjs/standard/resources/general-commissioning.resource.js +2 -2
  184. package/dist/cjs/standard/resources/general-diagnostics.resource.js +44 -0
  185. package/dist/cjs/standard/resources/general-diagnostics.resource.js.map +1 -1
  186. package/dist/cjs/standard/resources/group-key-management.resource.js +37 -15
  187. package/dist/cjs/standard/resources/group-key-management.resource.js.map +1 -1
  188. package/dist/cjs/standard/resources/groupcast.resource.d.ts +7 -0
  189. package/dist/cjs/standard/resources/groupcast.resource.d.ts.map +1 -0
  190. package/dist/cjs/standard/resources/groupcast.resource.js +375 -0
  191. package/dist/cjs/standard/resources/groupcast.resource.js.map +6 -0
  192. package/dist/cjs/standard/resources/groups.resource.js +1 -1
  193. package/dist/cjs/standard/resources/groups.resource.js.map +1 -1
  194. package/dist/cjs/standard/resources/icd-management.resource.js +1 -1
  195. package/dist/cjs/standard/resources/icd-management.resource.js.map +1 -1
  196. package/dist/cjs/standard/resources/identified-human-activity.resource.d.ts +7 -0
  197. package/dist/cjs/standard/resources/identified-human-activity.resource.d.ts.map +1 -0
  198. package/dist/cjs/standard/resources/identified-human-activity.resource.js +26 -0
  199. package/dist/cjs/standard/resources/identified-human-activity.resource.js.map +6 -0
  200. package/dist/cjs/standard/resources/identified-object.resource.d.ts +7 -0
  201. package/dist/cjs/standard/resources/identified-object.resource.d.ts.map +1 -0
  202. package/dist/cjs/standard/resources/identified-object.resource.js +29 -0
  203. package/dist/cjs/standard/resources/identified-object.resource.js.map +6 -0
  204. package/dist/cjs/standard/resources/identified-sound.resource.d.ts +7 -0
  205. package/dist/cjs/standard/resources/identified-sound.resource.d.ts.map +1 -0
  206. package/dist/cjs/standard/resources/identified-sound.resource.js +42 -0
  207. package/dist/cjs/standard/resources/identified-sound.resource.js.map +6 -0
  208. package/dist/cjs/standard/resources/index.d.ts +7 -0
  209. package/dist/cjs/standard/resources/index.d.ts.map +1 -1
  210. package/dist/cjs/standard/resources/index.js +7 -0
  211. package/dist/cjs/standard/resources/index.js.map +1 -1
  212. package/dist/cjs/standard/resources/joint-fabric-administrator-cluster.resource.js +23 -18
  213. package/dist/cjs/standard/resources/joint-fabric-administrator-cluster.resource.js.map +1 -1
  214. package/dist/cjs/standard/resources/joint-fabric-datastore.resource.js +353 -39
  215. package/dist/cjs/standard/resources/joint-fabric-datastore.resource.js.map +1 -1
  216. package/dist/cjs/standard/resources/mode-base.resource.js +1 -1
  217. package/dist/cjs/standard/resources/namespace.resource.js +15 -0
  218. package/dist/cjs/standard/resources/namespace.resource.js.map +1 -1
  219. package/dist/cjs/standard/resources/network-commissioning.resource.js +13 -13
  220. package/dist/cjs/standard/resources/network-commissioning.resource.js.map +1 -1
  221. package/dist/cjs/standard/resources/network-infrastructure-manager.resource.js +12 -6
  222. package/dist/cjs/standard/resources/network-infrastructure-manager.resource.js.map +1 -1
  223. package/dist/cjs/standard/resources/occupancy-sensing.resource.js +2 -1
  224. package/dist/cjs/standard/resources/occupancy-sensing.resource.js.map +1 -1
  225. package/dist/cjs/standard/resources/on-off.resource.js +2 -2
  226. package/dist/cjs/standard/resources/on-off.resource.js.map +1 -1
  227. package/dist/cjs/standard/resources/oven-mode.resource.js +1 -1
  228. package/dist/cjs/standard/resources/oven-mode.resource.js.map +1 -1
  229. package/dist/cjs/standard/resources/power-topology.resource.js +2 -28
  230. package/dist/cjs/standard/resources/power-topology.resource.js.map +1 -1
  231. package/dist/cjs/standard/resources/push-av-stream-transport.resource.js +3 -15
  232. package/dist/cjs/standard/resources/push-av-stream-transport.resource.js.map +1 -1
  233. package/dist/cjs/standard/resources/refrigerator-device.resource.js +1 -0
  234. package/dist/cjs/standard/resources/refrigerator-device.resource.js.map +1 -1
  235. package/dist/cjs/standard/resources/smoke-co-alarm-cluster.resource.js +10 -2
  236. package/dist/cjs/standard/resources/smoke-co-alarm-cluster.resource.js.map +1 -1
  237. package/dist/cjs/standard/resources/temperature-alarm.resource.d.ts +7 -0
  238. package/dist/cjs/standard/resources/temperature-alarm.resource.d.ts.map +1 -0
  239. package/dist/cjs/standard/resources/temperature-alarm.resource.js +183 -0
  240. package/dist/cjs/standard/resources/temperature-alarm.resource.js.map +6 -0
  241. package/dist/cjs/standard/resources/temperature-controlled-cabinet.resource.js +1 -0
  242. package/dist/cjs/standard/resources/temperature-controlled-cabinet.resource.js.map +1 -1
  243. package/dist/cjs/standard/resources/thermostat-cluster.resource.js +459 -135
  244. package/dist/cjs/standard/resources/thermostat-cluster.resource.js.map +1 -1
  245. package/dist/cjs/standard/resources/thermostat-device.resource.js +2 -1
  246. package/dist/cjs/standard/resources/thermostat-device.resource.js.map +1 -1
  247. package/dist/cjs/standard/resources/web-rtc-transport-definitions.resource.js +21 -21
  248. package/dist/cjs/standard/resources/web-rtc-transport-provider.resource.js +42 -80
  249. package/dist/cjs/standard/resources/web-rtc-transport-provider.resource.js.map +1 -1
  250. package/dist/cjs/standard/resources/window-covering-cluster.resource.js +14 -14
  251. package/dist/esm/aspects/Quality.d.ts +1 -1
  252. package/dist/esm/common/DeviceClassification.d.ts +6 -6
  253. package/dist/esm/common/Specification.d.ts +2 -2
  254. package/dist/esm/common/Specification.js +2 -2
  255. package/dist/esm/dts/Specifications.d.ts +17 -0
  256. package/dist/esm/logic/cluster-variance/InferredComponents.js +32 -2
  257. package/dist/esm/logic/cluster-variance/InferredComponents.js.map +1 -1
  258. package/dist/esm/models/Globals.d.ts +7 -0
  259. package/dist/esm/models/Globals.d.ts.map +1 -1
  260. package/dist/esm/standard/elements/access-control.element.d.ts.map +1 -1
  261. package/dist/esm/standard/elements/access-control.element.js +26 -2
  262. package/dist/esm/standard/elements/access-control.element.js.map +1 -1
  263. package/dist/esm/standard/elements/ambient-context-sensing.element.d.ts +8 -0
  264. package/dist/esm/standard/elements/ambient-context-sensing.element.d.ts.map +1 -0
  265. package/dist/esm/standard/elements/ambient-context-sensing.element.js +172 -0
  266. package/dist/esm/standard/elements/ambient-context-sensing.element.js.map +6 -0
  267. package/dist/esm/standard/elements/base.element.js +1 -1
  268. package/dist/esm/standard/elements/base.element.js.map +1 -1
  269. package/dist/esm/standard/elements/basic-information.element.d.ts.map +1 -1
  270. package/dist/esm/standard/elements/basic-information.element.js +24 -2
  271. package/dist/esm/standard/elements/basic-information.element.js.map +1 -1
  272. package/dist/esm/standard/elements/boolean-state-configuration.element.d.ts.map +1 -1
  273. package/dist/esm/standard/elements/boolean-state-configuration.element.js +4 -3
  274. package/dist/esm/standard/elements/boolean-state-configuration.element.js.map +1 -1
  275. package/dist/esm/standard/elements/boolean-state.element.d.ts.map +1 -1
  276. package/dist/esm/standard/elements/boolean-state.element.js +8 -4
  277. package/dist/esm/standard/elements/boolean-state.element.js.map +1 -1
  278. package/dist/esm/standard/elements/bridged-device-basic-information.element.js +2 -2
  279. package/dist/esm/standard/elements/bridged-device-basic-information.element.js.map +1 -1
  280. package/dist/esm/standard/elements/camera-av-stream-management.element.d.ts.map +1 -1
  281. package/dist/esm/standard/elements/camera-av-stream-management.element.js +13 -3
  282. package/dist/esm/standard/elements/camera-av-stream-management.element.js.map +1 -1
  283. package/dist/esm/standard/elements/certification-type-enum.element.d.ts +8 -0
  284. package/dist/esm/standard/elements/certification-type-enum.element.d.ts.map +1 -0
  285. package/dist/esm/standard/elements/certification-type-enum.element.js +18 -0
  286. package/dist/esm/standard/elements/certification-type-enum.element.js.map +6 -0
  287. package/dist/esm/standard/elements/chime-cluster.element.js +2 -2
  288. package/dist/esm/standard/elements/chime-cluster.element.js.map +1 -1
  289. package/dist/esm/standard/elements/closure-controller.element.d.ts.map +1 -1
  290. package/dist/esm/standard/elements/closure-controller.element.js +0 -1
  291. package/dist/esm/standard/elements/closure-controller.element.js.map +1 -1
  292. package/dist/esm/standard/elements/concentration-measurement.element.d.ts.map +1 -1
  293. package/dist/esm/standard/elements/concentration-measurement.element.js +12 -4
  294. package/dist/esm/standard/elements/concentration-measurement.element.js.map +1 -1
  295. package/dist/esm/standard/elements/content-launcher.element.js +7 -7
  296. package/dist/esm/standard/elements/content-launcher.element.js.map +1 -1
  297. package/dist/esm/standard/elements/definitions.d.ts +7 -0
  298. package/dist/esm/standard/elements/definitions.d.ts.map +1 -1
  299. package/dist/esm/standard/elements/definitions.js +7 -0
  300. package/dist/esm/standard/elements/definitions.js.map +1 -1
  301. package/dist/esm/standard/elements/flow-measurement.element.d.ts.map +1 -1
  302. package/dist/esm/standard/elements/flow-measurement.element.js +13 -4
  303. package/dist/esm/standard/elements/flow-measurement.element.js.map +1 -1
  304. package/dist/esm/standard/elements/general-commissioning.element.d.ts.map +1 -1
  305. package/dist/esm/standard/elements/general-commissioning.element.js +6 -4
  306. package/dist/esm/standard/elements/general-commissioning.element.js.map +1 -1
  307. package/dist/esm/standard/elements/general-diagnostics.element.d.ts.map +1 -1
  308. package/dist/esm/standard/elements/general-diagnostics.element.js +17 -1
  309. package/dist/esm/standard/elements/general-diagnostics.element.js.map +1 -1
  310. package/dist/esm/standard/elements/group-key-management.element.d.ts.map +1 -1
  311. package/dist/esm/standard/elements/group-key-management.element.js +21 -3
  312. package/dist/esm/standard/elements/group-key-management.element.js.map +1 -1
  313. package/dist/esm/standard/elements/groupcast.element.d.ts +8 -0
  314. package/dist/esm/standard/elements/groupcast.element.d.ts.map +1 -0
  315. package/dist/esm/standard/elements/groupcast.element.js +185 -0
  316. package/dist/esm/standard/elements/groupcast.element.js.map +6 -0
  317. package/dist/esm/standard/elements/identified-human-activity.element.d.ts +8 -0
  318. package/dist/esm/standard/elements/identified-human-activity.element.d.ts.map +1 -0
  319. package/dist/esm/standard/elements/identified-human-activity.element.js +28 -0
  320. package/dist/esm/standard/elements/identified-human-activity.element.js.map +6 -0
  321. package/dist/esm/standard/elements/identified-object.element.d.ts +8 -0
  322. package/dist/esm/standard/elements/identified-object.element.d.ts.map +1 -0
  323. package/dist/esm/standard/elements/identified-object.element.js +31 -0
  324. package/dist/esm/standard/elements/identified-object.element.js.map +6 -0
  325. package/dist/esm/standard/elements/identified-sound.element.d.ts +8 -0
  326. package/dist/esm/standard/elements/identified-sound.element.d.ts.map +1 -0
  327. package/dist/esm/standard/elements/identified-sound.element.js +40 -0
  328. package/dist/esm/standard/elements/identified-sound.element.js.map +6 -0
  329. package/dist/esm/standard/elements/illuminance-measurement.element.d.ts.map +1 -1
  330. package/dist/esm/standard/elements/illuminance-measurement.element.js +13 -5
  331. package/dist/esm/standard/elements/illuminance-measurement.element.js.map +1 -1
  332. package/dist/esm/standard/elements/joint-fabric-administrator-cluster.element.d.ts.map +1 -1
  333. package/dist/esm/standard/elements/joint-fabric-administrator-cluster.element.js +20 -18
  334. package/dist/esm/standard/elements/joint-fabric-administrator-cluster.element.js.map +1 -1
  335. package/dist/esm/standard/elements/joint-fabric-datastore.element.d.ts.map +1 -1
  336. package/dist/esm/standard/elements/joint-fabric-datastore.element.js +143 -62
  337. package/dist/esm/standard/elements/joint-fabric-datastore.element.js.map +1 -1
  338. package/dist/esm/standard/elements/mode-base.element.js +1 -1
  339. package/dist/esm/standard/elements/mode-base.element.js.map +1 -1
  340. package/dist/esm/standard/elements/models.d.ts +7 -0
  341. package/dist/esm/standard/elements/models.d.ts.map +1 -1
  342. package/dist/esm/standard/elements/models.js +14 -0
  343. package/dist/esm/standard/elements/models.js.map +1 -1
  344. package/dist/esm/standard/elements/namespace.element.d.ts.map +1 -1
  345. package/dist/esm/standard/elements/namespace.element.js +4 -1
  346. package/dist/esm/standard/elements/namespace.element.js.map +1 -1
  347. package/dist/esm/standard/elements/network-commissioning.element.js +14 -14
  348. package/dist/esm/standard/elements/network-commissioning.element.js.map +1 -1
  349. package/dist/esm/standard/elements/network-infrastructure-manager.element.d.ts.map +1 -1
  350. package/dist/esm/standard/elements/network-infrastructure-manager.element.js +6 -0
  351. package/dist/esm/standard/elements/network-infrastructure-manager.element.js.map +1 -1
  352. package/dist/esm/standard/elements/occupancy-sensing.element.d.ts.map +1 -1
  353. package/dist/esm/standard/elements/occupancy-sensing.element.js +4 -3
  354. package/dist/esm/standard/elements/occupancy-sensing.element.js.map +1 -1
  355. package/dist/esm/standard/elements/power-topology.element.d.ts.map +1 -1
  356. package/dist/esm/standard/elements/power-topology.element.js +1 -9
  357. package/dist/esm/standard/elements/power-topology.element.js.map +1 -1
  358. package/dist/esm/standard/elements/pressure-measurement.element.d.ts.map +1 -1
  359. package/dist/esm/standard/elements/pressure-measurement.element.js +18 -8
  360. package/dist/esm/standard/elements/pressure-measurement.element.js.map +1 -1
  361. package/dist/esm/standard/elements/push-av-stream-transport.element.d.ts.map +1 -1
  362. package/dist/esm/standard/elements/push-av-stream-transport.element.js +1 -3
  363. package/dist/esm/standard/elements/push-av-stream-transport.element.js.map +1 -1
  364. package/dist/esm/standard/elements/rain-sensor.element.d.ts.map +1 -1
  365. package/dist/esm/standard/elements/rain-sensor.element.js +3 -2
  366. package/dist/esm/standard/elements/rain-sensor.element.js.map +1 -1
  367. package/dist/esm/standard/elements/refrigerator-device.element.d.ts.map +1 -1
  368. package/dist/esm/standard/elements/refrigerator-device.element.js +4 -1
  369. package/dist/esm/standard/elements/refrigerator-device.element.js.map +1 -1
  370. package/dist/esm/standard/elements/relative-humidity-measurement.element.d.ts.map +1 -1
  371. package/dist/esm/standard/elements/relative-humidity-measurement.element.js +12 -4
  372. package/dist/esm/standard/elements/relative-humidity-measurement.element.js.map +1 -1
  373. package/dist/esm/standard/elements/root-node.element.js +1 -1
  374. package/dist/esm/standard/elements/root-node.element.js.map +1 -1
  375. package/dist/esm/standard/elements/smoke-co-alarm-cluster.element.d.ts.map +1 -1
  376. package/dist/esm/standard/elements/smoke-co-alarm-cluster.element.js +4 -2
  377. package/dist/esm/standard/elements/smoke-co-alarm-cluster.element.js.map +1 -1
  378. package/dist/esm/standard/elements/software-diagnostics.element.d.ts.map +1 -1
  379. package/dist/esm/standard/elements/software-diagnostics.element.js +12 -4
  380. package/dist/esm/standard/elements/software-diagnostics.element.js.map +1 -1
  381. package/dist/esm/standard/elements/temperature-alarm.element.d.ts +8 -0
  382. package/dist/esm/standard/elements/temperature-alarm.element.d.ts.map +1 -0
  383. package/dist/esm/standard/elements/temperature-alarm.element.js +146 -0
  384. package/dist/esm/standard/elements/temperature-alarm.element.js.map +6 -0
  385. package/dist/esm/standard/elements/temperature-controlled-cabinet.element.d.ts.map +1 -1
  386. package/dist/esm/standard/elements/temperature-controlled-cabinet.element.js +2 -1
  387. package/dist/esm/standard/elements/temperature-controlled-cabinet.element.js.map +1 -1
  388. package/dist/esm/standard/elements/temperature-measurement.element.d.ts.map +1 -1
  389. package/dist/esm/standard/elements/temperature-measurement.element.js +13 -4
  390. package/dist/esm/standard/elements/temperature-measurement.element.js.map +1 -1
  391. package/dist/esm/standard/elements/thermostat-cluster.element.d.ts.map +1 -1
  392. package/dist/esm/standard/elements/thermostat-cluster.element.js +144 -3
  393. package/dist/esm/standard/elements/thermostat-cluster.element.js.map +1 -1
  394. package/dist/esm/standard/elements/thermostat-device.element.d.ts.map +1 -1
  395. package/dist/esm/standard/elements/thermostat-device.element.js +3 -2
  396. package/dist/esm/standard/elements/thermostat-device.element.js.map +1 -1
  397. package/dist/esm/standard/elements/water-freeze-detector.element.d.ts.map +1 -1
  398. package/dist/esm/standard/elements/water-freeze-detector.element.js +3 -2
  399. package/dist/esm/standard/elements/water-freeze-detector.element.js.map +1 -1
  400. package/dist/esm/standard/elements/water-leak-detector.element.d.ts.map +1 -1
  401. package/dist/esm/standard/elements/water-leak-detector.element.js +3 -2
  402. package/dist/esm/standard/elements/water-leak-detector.element.js.map +1 -1
  403. package/dist/esm/standard/elements/web-rtc-transport-provider.element.d.ts.map +1 -1
  404. package/dist/esm/standard/elements/web-rtc-transport-provider.element.js +1 -10
  405. package/dist/esm/standard/elements/web-rtc-transport-provider.element.js.map +1 -1
  406. package/dist/esm/standard/resources/access-control.resource.js +68 -21
  407. package/dist/esm/standard/resources/access-control.resource.js.map +1 -1
  408. package/dist/esm/standard/resources/account-login.resource.js +3 -3
  409. package/dist/esm/standard/resources/ambient-context-sensing.resource.d.ts +7 -0
  410. package/dist/esm/standard/resources/ambient-context-sensing.resource.d.ts.map +1 -0
  411. package/dist/esm/standard/resources/ambient-context-sensing.resource.js +240 -0
  412. package/dist/esm/standard/resources/ambient-context-sensing.resource.js.map +6 -0
  413. package/dist/esm/standard/resources/base.resource.js +38 -8
  414. package/dist/esm/standard/resources/base.resource.js.map +1 -1
  415. package/dist/esm/standard/resources/basic-information.resource.js +24 -0
  416. package/dist/esm/standard/resources/basic-information.resource.js.map +1 -1
  417. package/dist/esm/standard/resources/boolean-state-configuration.resource.js +7 -1
  418. package/dist/esm/standard/resources/boolean-state-configuration.resource.js.map +1 -1
  419. package/dist/esm/standard/resources/boolean-state.resource.js +14 -3
  420. package/dist/esm/standard/resources/boolean-state.resource.js.map +1 -1
  421. package/dist/esm/standard/resources/camera-av-stream-management.resource.js +7 -1
  422. package/dist/esm/standard/resources/camera-av-stream-management.resource.js.map +1 -1
  423. package/dist/esm/standard/resources/certification-type-enum.resource.d.ts +7 -0
  424. package/dist/esm/standard/resources/certification-type-enum.resource.d.ts.map +1 -0
  425. package/dist/esm/standard/resources/certification-type-enum.resource.js +21 -0
  426. package/dist/esm/standard/resources/certification-type-enum.resource.js.map +6 -0
  427. package/dist/esm/standard/resources/closure-controller.resource.js +0 -1
  428. package/dist/esm/standard/resources/closure-controller.resource.js.map +1 -1
  429. package/dist/esm/standard/resources/color-control.resource.js +12 -12
  430. package/dist/esm/standard/resources/color-control.resource.js.map +1 -1
  431. package/dist/esm/standard/resources/energy-preference.resource.js +1 -1
  432. package/dist/esm/standard/resources/energy-preference.resource.js.map +1 -1
  433. package/dist/esm/standard/resources/general-commissioning.resource.js +2 -2
  434. package/dist/esm/standard/resources/general-diagnostics.resource.js +44 -0
  435. package/dist/esm/standard/resources/general-diagnostics.resource.js.map +1 -1
  436. package/dist/esm/standard/resources/group-key-management.resource.js +37 -15
  437. package/dist/esm/standard/resources/group-key-management.resource.js.map +1 -1
  438. package/dist/esm/standard/resources/groupcast.resource.d.ts +7 -0
  439. package/dist/esm/standard/resources/groupcast.resource.d.ts.map +1 -0
  440. package/dist/esm/standard/resources/groupcast.resource.js +374 -0
  441. package/dist/esm/standard/resources/groupcast.resource.js.map +6 -0
  442. package/dist/esm/standard/resources/groups.resource.js +1 -1
  443. package/dist/esm/standard/resources/groups.resource.js.map +1 -1
  444. package/dist/esm/standard/resources/icd-management.resource.js +1 -1
  445. package/dist/esm/standard/resources/icd-management.resource.js.map +1 -1
  446. package/dist/esm/standard/resources/identified-human-activity.resource.d.ts +7 -0
  447. package/dist/esm/standard/resources/identified-human-activity.resource.d.ts.map +1 -0
  448. package/dist/esm/standard/resources/identified-human-activity.resource.js +25 -0
  449. package/dist/esm/standard/resources/identified-human-activity.resource.js.map +6 -0
  450. package/dist/esm/standard/resources/identified-object.resource.d.ts +7 -0
  451. package/dist/esm/standard/resources/identified-object.resource.d.ts.map +1 -0
  452. package/dist/esm/standard/resources/identified-object.resource.js +28 -0
  453. package/dist/esm/standard/resources/identified-object.resource.js.map +6 -0
  454. package/dist/esm/standard/resources/identified-sound.resource.d.ts +7 -0
  455. package/dist/esm/standard/resources/identified-sound.resource.d.ts.map +1 -0
  456. package/dist/esm/standard/resources/identified-sound.resource.js +41 -0
  457. package/dist/esm/standard/resources/identified-sound.resource.js.map +6 -0
  458. package/dist/esm/standard/resources/index.d.ts +7 -0
  459. package/dist/esm/standard/resources/index.d.ts.map +1 -1
  460. package/dist/esm/standard/resources/index.js +7 -0
  461. package/dist/esm/standard/resources/index.js.map +1 -1
  462. package/dist/esm/standard/resources/joint-fabric-administrator-cluster.resource.js +23 -18
  463. package/dist/esm/standard/resources/joint-fabric-administrator-cluster.resource.js.map +1 -1
  464. package/dist/esm/standard/resources/joint-fabric-datastore.resource.js +353 -39
  465. package/dist/esm/standard/resources/joint-fabric-datastore.resource.js.map +1 -1
  466. package/dist/esm/standard/resources/mode-base.resource.js +1 -1
  467. package/dist/esm/standard/resources/namespace.resource.js +15 -0
  468. package/dist/esm/standard/resources/namespace.resource.js.map +1 -1
  469. package/dist/esm/standard/resources/network-commissioning.resource.js +13 -13
  470. package/dist/esm/standard/resources/network-commissioning.resource.js.map +1 -1
  471. package/dist/esm/standard/resources/network-infrastructure-manager.resource.js +12 -6
  472. package/dist/esm/standard/resources/network-infrastructure-manager.resource.js.map +1 -1
  473. package/dist/esm/standard/resources/occupancy-sensing.resource.js +2 -1
  474. package/dist/esm/standard/resources/occupancy-sensing.resource.js.map +1 -1
  475. package/dist/esm/standard/resources/on-off.resource.js +2 -2
  476. package/dist/esm/standard/resources/on-off.resource.js.map +1 -1
  477. package/dist/esm/standard/resources/oven-mode.resource.js +1 -1
  478. package/dist/esm/standard/resources/oven-mode.resource.js.map +1 -1
  479. package/dist/esm/standard/resources/power-topology.resource.js +2 -28
  480. package/dist/esm/standard/resources/power-topology.resource.js.map +1 -1
  481. package/dist/esm/standard/resources/push-av-stream-transport.resource.js +3 -15
  482. package/dist/esm/standard/resources/push-av-stream-transport.resource.js.map +1 -1
  483. package/dist/esm/standard/resources/refrigerator-device.resource.js +1 -0
  484. package/dist/esm/standard/resources/refrigerator-device.resource.js.map +1 -1
  485. package/dist/esm/standard/resources/smoke-co-alarm-cluster.resource.js +10 -2
  486. package/dist/esm/standard/resources/smoke-co-alarm-cluster.resource.js.map +1 -1
  487. package/dist/esm/standard/resources/temperature-alarm.resource.d.ts +7 -0
  488. package/dist/esm/standard/resources/temperature-alarm.resource.d.ts.map +1 -0
  489. package/dist/esm/standard/resources/temperature-alarm.resource.js +182 -0
  490. package/dist/esm/standard/resources/temperature-alarm.resource.js.map +6 -0
  491. package/dist/esm/standard/resources/temperature-controlled-cabinet.resource.js +1 -0
  492. package/dist/esm/standard/resources/temperature-controlled-cabinet.resource.js.map +1 -1
  493. package/dist/esm/standard/resources/thermostat-cluster.resource.js +459 -135
  494. package/dist/esm/standard/resources/thermostat-cluster.resource.js.map +1 -1
  495. package/dist/esm/standard/resources/thermostat-device.resource.js +2 -1
  496. package/dist/esm/standard/resources/thermostat-device.resource.js.map +1 -1
  497. package/dist/esm/standard/resources/web-rtc-transport-definitions.resource.js +21 -21
  498. package/dist/esm/standard/resources/web-rtc-transport-provider.resource.js +42 -80
  499. package/dist/esm/standard/resources/web-rtc-transport-provider.resource.js.map +1 -1
  500. package/dist/esm/standard/resources/window-covering-cluster.resource.js +14 -14
  501. package/package.json +3 -3
  502. package/src/aspects/Quality.ts +1 -1
  503. package/src/common/DeviceClassification.ts +6 -6
  504. package/src/common/Specification.ts +2 -2
  505. package/src/dts/Specifications.d.ts +17 -0
  506. package/src/logic/cluster-variance/InferredComponents.ts +43 -3
  507. package/src/standard/elements/access-control.element.ts +26 -2
  508. package/src/standard/elements/ambient-context-sensing.element.ts +140 -0
  509. package/src/standard/elements/base.element.ts +1 -1
  510. package/src/standard/elements/basic-information.element.ts +15 -2
  511. package/src/standard/elements/boolean-state-configuration.element.ts +4 -3
  512. package/src/standard/elements/boolean-state.element.ts +8 -4
  513. package/src/standard/elements/bridged-device-basic-information.element.ts +2 -2
  514. package/src/standard/elements/camera-av-stream-management.element.ts +8 -3
  515. package/src/standard/elements/certification-type-enum.element.ts +19 -0
  516. package/src/standard/elements/chime-cluster.element.ts +2 -2
  517. package/src/standard/elements/closure-controller.element.ts +0 -1
  518. package/src/standard/elements/concentration-measurement.element.ts +7 -4
  519. package/src/standard/elements/content-launcher.element.ts +7 -7
  520. package/src/standard/elements/definitions.ts +7 -0
  521. package/src/standard/elements/flow-measurement.element.ts +7 -4
  522. package/src/standard/elements/general-commissioning.element.ts +6 -4
  523. package/src/standard/elements/general-diagnostics.element.ts +14 -1
  524. package/src/standard/elements/group-key-management.element.ts +19 -3
  525. package/src/standard/elements/groupcast.element.ts +165 -0
  526. package/src/standard/elements/identified-human-activity.element.ts +29 -0
  527. package/src/standard/elements/identified-object.element.ts +32 -0
  528. package/src/standard/elements/identified-sound.element.ts +41 -0
  529. package/src/standard/elements/illuminance-measurement.element.ts +8 -5
  530. package/src/standard/elements/joint-fabric-administrator-cluster.element.ts +21 -19
  531. package/src/standard/elements/joint-fabric-datastore.element.ts +101 -60
  532. package/src/standard/elements/mode-base.element.ts +1 -1
  533. package/src/standard/elements/models.ts +7 -0
  534. package/src/standard/elements/namespace.element.ts +4 -1
  535. package/src/standard/elements/network-commissioning.element.ts +14 -14
  536. package/src/standard/elements/network-infrastructure-manager.element.ts +6 -0
  537. package/src/standard/elements/occupancy-sensing.element.ts +4 -3
  538. package/src/standard/elements/power-topology.element.ts +1 -10
  539. package/src/standard/elements/pressure-measurement.element.ts +11 -8
  540. package/src/standard/elements/push-av-stream-transport.element.ts +1 -3
  541. package/src/standard/elements/rain-sensor.element.ts +3 -2
  542. package/src/standard/elements/refrigerator-device.element.ts +4 -1
  543. package/src/standard/elements/relative-humidity-measurement.element.ts +7 -4
  544. package/src/standard/elements/root-node.element.ts +1 -1
  545. package/src/standard/elements/smoke-co-alarm-cluster.element.ts +4 -2
  546. package/src/standard/elements/software-diagnostics.element.ts +9 -4
  547. package/src/standard/elements/temperature-alarm.element.ts +109 -0
  548. package/src/standard/elements/temperature-controlled-cabinet.element.ts +2 -1
  549. package/src/standard/elements/temperature-measurement.element.ts +7 -4
  550. package/src/standard/elements/thermostat-cluster.element.ts +123 -3
  551. package/src/standard/elements/thermostat-device.element.ts +3 -2
  552. package/src/standard/elements/water-freeze-detector.element.ts +3 -2
  553. package/src/standard/elements/water-leak-detector.element.ts +3 -2
  554. package/src/standard/elements/web-rtc-transport-provider.element.ts +1 -11
  555. package/src/standard/resources/access-control.resource.ts +111 -21
  556. package/src/standard/resources/account-login.resource.ts +3 -3
  557. package/src/standard/resources/ambient-context-sensing.resource.ts +288 -0
  558. package/src/standard/resources/base.resource.ts +26 -8
  559. package/src/standard/resources/basic-information.resource.ts +29 -0
  560. package/src/standard/resources/boolean-state-configuration.resource.ts +6 -1
  561. package/src/standard/resources/boolean-state.resource.ts +12 -3
  562. package/src/standard/resources/camera-av-stream-management.resource.ts +17 -1
  563. package/src/standard/resources/certification-type-enum.resource.ts +22 -0
  564. package/src/standard/resources/closure-controller.resource.ts +0 -2
  565. package/src/standard/resources/color-control.resource.ts +12 -13
  566. package/src/standard/resources/energy-preference.resource.ts +1 -5
  567. package/src/standard/resources/general-commissioning.resource.ts +4 -4
  568. package/src/standard/resources/general-diagnostics.resource.ts +48 -0
  569. package/src/standard/resources/group-key-management.resource.ts +106 -41
  570. package/src/standard/resources/groupcast.resource.ts +568 -0
  571. package/src/standard/resources/groups.resource.ts +10 -1
  572. package/src/standard/resources/icd-management.resource.ts +2 -1
  573. package/src/standard/resources/identified-human-activity.resource.ts +28 -0
  574. package/src/standard/resources/identified-object.resource.ts +47 -0
  575. package/src/standard/resources/identified-sound.resource.ts +46 -0
  576. package/src/standard/resources/index.ts +7 -0
  577. package/src/standard/resources/joint-fabric-administrator-cluster.resource.ts +21 -22
  578. package/src/standard/resources/joint-fabric-datastore.resource.ts +814 -581
  579. package/src/standard/resources/mode-base.resource.ts +1 -1
  580. package/src/standard/resources/namespace.resource.ts +37 -0
  581. package/src/standard/resources/network-commissioning.resource.ts +28 -22
  582. package/src/standard/resources/network-infrastructure-manager.resource.ts +12 -6
  583. package/src/standard/resources/occupancy-sensing.resource.ts +2 -1
  584. package/src/standard/resources/on-off.resource.ts +15 -5
  585. package/src/standard/resources/oven-mode.resource.ts +6 -4
  586. package/src/standard/resources/power-topology.resource.ts +2 -25
  587. package/src/standard/resources/push-av-stream-transport.resource.ts +4 -18
  588. package/src/standard/resources/refrigerator-device.resource.ts +1 -0
  589. package/src/standard/resources/smoke-co-alarm-cluster.resource.ts +27 -2
  590. package/src/standard/resources/temperature-alarm.resource.ts +165 -0
  591. package/src/standard/resources/temperature-controlled-cabinet.resource.ts +1 -0
  592. package/src/standard/resources/thermostat-cluster.resource.ts +492 -135
  593. package/src/standard/resources/thermostat-device.resource.ts +2 -1
  594. package/src/standard/resources/web-rtc-transport-definitions.resource.ts +21 -21
  595. package/src/standard/resources/web-rtc-transport-provider.resource.ts +42 -80
  596. package/src/standard/resources/window-covering-cluster.resource.ts +14 -14
@@ -9,7 +9,7 @@ Resource.add({
9
9
  name: "JointFabricDatastore",
10
10
  pics: "JFDS",
11
11
  xref: "core\xA711.24",
12
- details: "The Joint Fabric Datastore Cluster is a cluster that provides a mechanism for the Joint Fabric Administrators to manage the set of Nodes, Groups, and Group membership among Nodes in the Joint Fabric.\nWhen an Ecosystem Administrator Node is commissioned onto the Joint Fabric, the Ecosystem Administrator Node has no knowledge of what Nodes and Groups are present, or what set-up information related to the Joint Fabric is provided by the user. To address lack of knowledge, the Joint Fabric Datastore provides the information required for all Ecosystem Administrators to maintain a consistent view of the Joint Fabric including Nodes, Groups, settings and privileges.\nThe Joint Fabric Datastore contains the access control configuration for the Joint Fabric - the groups, the group keys, the group membership (expressed in terms of binding and ACL entries), as well as the CAT value and version for each group. This section describes how all changes to the Joint Fabric access control configuration are made via the Joint Fabric Datastore: a change is first made to the Datastore where the impacted configuration of individual nodes is marked as pending; the Datastore is then responsible for propagating the change to all impacted nodes and then updating its per-node (and sometimes per-endpoint) pending state to committed.\nThe Joint Fabric Datastore cluster server shall only be accessible on a Node which is acting as the Joint Fabric Anchor Administrator. When not acting as the Joint Fabric Anchor Administrator, the Joint Fabric Datastore cluster shall NOT be accessible.\nThe Admin level of access to the Joint Fabric Datastore cluster server shall be limited to JF Administrator Nodes identified using the Administrator CAT.\n> [!NOTE]\n> NOTE: Support for Joint Fabric Datastore cluster is provisional.",
12
+ details: "The Joint Fabric Datastore Cluster is a cluster that provides a mechanism for the Joint Fabric Administrators to manage the set of Nodes, Groups, and Group membership among Nodes in the Joint Fabric.\nWhen an Ecosystem Administrator Node is commissioned onto the Joint Fabric, the Ecosystem Administrator Node has no knowledge of what Nodes and Groups are present, or what set-up information related to the Joint Fabric is provided by the user. To address lack of knowledge, the Joint Fabric Datastore provides the information required for all Ecosystem Administrators to maintain a consistent view of the Joint Fabric including Nodes, Groups, settings and privileges.\nThe Joint Fabric Datastore contains the access control configuration for the Joint Fabric - the groups, the group keys, the group membership (expressed in terms of binding and ACL entries), as well as the CAT value and version for each group. This section describes how all changes to the Joint Fabric access control configuration are made via the Joint Fabric Datastore: a change is first made to the Datastore where the impacted configuration of individual nodes is marked as pending; the Datastore is then responsible for propagating the change to all impacted nodes and then updating its per-node (and sometimes per-endpoint) pending state to committed.\nThe Joint Fabric Datastore cluster server shall only be accessible on a Node which is acting as the Joint Fabric Anchor Administrator. When not acting as the Joint Fabric Anchor Administrator, the Joint Fabric Datastore cluster shall NOT be accessible.\nThe Admin level of access to the Joint Fabric Datastore cluster server shall be limited to JF Administrator Nodes identified using the Administrator CAT.",
13
13
  children: [
14
14
  {
15
15
  tag: "attribute",
@@ -33,7 +33,7 @@ Resource.add({
33
33
  tag: "attribute",
34
34
  name: "FriendlyName",
35
35
  xref: "core\xA711.24.6.4",
36
- details: "Friendly name for the accessing fabric which can be propagated to nodes."
36
+ details: "Friendly name for the accessing fabric."
37
37
  },
38
38
  {
39
39
  tag: "attribute",
@@ -45,7 +45,7 @@ Resource.add({
45
45
  tag: "attribute",
46
46
  name: "GroupList",
47
47
  xref: "core\xA711.24.6.6",
48
- details: "This shall indicate the list of groups in the Joint Fabric for the accessing fabric.\nThis list must include, at a minimum, one group with GroupCAT value set to Administrator CAT and one group with GroupCAT value set to Anchor CAT."
48
+ details: "This shall indicate the list of groups in the Joint Fabric for the accessing fabric.\nThis list shall include, at a minimum, one group with GroupCAT value set to Administrator CAT and one group with GroupCAT value set to Anchor CAT."
49
49
  },
50
50
  {
51
51
  tag: "attribute",
@@ -57,163 +57,483 @@ Resource.add({
57
57
  tag: "attribute",
58
58
  name: "AdminList",
59
59
  xref: "core\xA711.24.6.8",
60
- details: "This shall indicate the list of administrators in the Joint Fabric for the accessing fabric.\nOnly one Administrator may serve as the Anchor Root CA and Anchor Fabric Administrator and shall have index value 0. All other Joint Fabric Administrators shall be referenced at index 1 or greater.\nA null value or empty list indicates that the Joint Fabric is not yet formed."
60
+ details: "This shall indicate the list of administrators in the Joint Fabric for the accessing fabric.\nOnly one Administrator may serve as the Anchor Root CA and Anchor Fabric Administrator and shall have index value 0. All other Joint Fabric Administrators shall be referenced at index 1 or greater.\nAn empty list indicates that the Joint Fabric is not yet formed."
61
61
  },
62
62
  {
63
63
  tag: "attribute",
64
64
  name: "Status",
65
65
  xref: "core\xA711.24.6.9",
66
- details: "This shall indicate the current state of the Joint Fabric Datastore Cluster for the accessing fabric.\nThe Committed status indicates the DataStore is ready for use. The Pending status indicates that the DataStore is not yet ready for use. The DeletePending status indicates that the DataStore is in the process of being transferred to another Joint Fabric Anchor Administrator."
66
+ details: "This shall indicate the current state of the Joint Fabric Datastore Cluster for the accessing fabric.\nThe value shall be one of the following states:\n - Committed - indicates the DataStore is ready for use.\n - Pending - indicates that the DataStore is not yet ready for use.\n - DeletePending - indicates that the DataStore is in the process of being transferred to another Joint Fabric Anchor Administrator."
67
67
  },
68
68
  {
69
69
  tag: "attribute",
70
70
  name: "EndpointGroupIdList",
71
71
  xref: "core\xA711.24.6.10",
72
- details: "This shall indicate the group membership of endpoints in the accessing fabric.\nAny changes to this List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
72
+ details: "This shall indicate the group membership of endpoints in the accessing fabric."
73
73
  },
74
74
  {
75
75
  tag: "attribute",
76
76
  name: "EndpointBindingList",
77
77
  xref: "core\xA711.24.6.11",
78
- details: "This shall indicate the binding list for endpoints in the accessing fabric.\nAny changes to this List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
78
+ details: "This shall indicate the binding list for endpoints in the accessing fabric."
79
79
  },
80
80
  {
81
81
  tag: "attribute",
82
82
  name: "NodeKeySetList",
83
83
  xref: "core\xA711.24.6.12",
84
- details: "This shall indicate the KeySet entries for nodes in the accessing fabric.\nAny changes to this List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
84
+ details: "This shall indicate the KeySet entries for nodes in the accessing fabric."
85
85
  },
86
86
  {
87
87
  tag: "attribute",
88
88
  name: "NodeAclList",
89
89
  xref: "core\xA711.24.6.13",
90
- details: "This shall indicate the ACL entries for nodes in the accessing fabric.\nAny changes to this List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
90
+ details: "This shall indicate the ACL entries for nodes in the accessing fabric."
91
91
  },
92
92
  {
93
93
  tag: "attribute",
94
94
  name: "NodeEndpointList",
95
95
  xref: "core\xA711.24.6.14",
96
- details: "This shall indicate the Endpoint entries for nodes in the accessing fabric.\nAny changes to this List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
96
+ details: "This shall indicate the Endpoint entries for nodes in the accessing fabric."
97
97
  },
98
98
  {
99
99
  tag: "command",
100
100
  name: "AddKeySet",
101
101
  xref: "core\xA711.24.7.1",
102
- details: "This command shall be used to add a KeySet to the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupKeySet represents the KeySet to be added to the Joint Fabric Datastore Cluster.\nUpon receipt of this command, the Datastore shall:\n 1. Ensure there are no KeySets in the KeySetList attribute with the given GroupKeySetID.\n 2. If a match is found, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Add the Epoch Key Entry for the KeySet to the KeySetList attribute."
102
+ details: "Upon receipt, this shall add a KeySet to the Joint Fabric Datastore Cluster of the accessing fabric.",
103
+ children: [{
104
+ tag: "field",
105
+ name: "GroupKeySet",
106
+ xref: "core\xA711.24.7.1.1",
107
+ details: "This field shall indicate the KeySet to be added to the Joint Fabric Datastore Cluster.\nThe Datastore shall:\n 1. Ensure there are no KeySets in the KeySetList attribute with the given GroupKeySetID.\n 2. If a match is found, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Add the Epoch Key Entry for the KeySet to the KeySetList attribute."
108
+ }]
103
109
  },
104
110
  {
105
111
  tag: "command",
106
112
  name: "UpdateKeySet",
107
113
  xref: "core\xA711.24.7.2",
108
- details: "This command shall be used to update a KeySet in the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupKeySet represents the KeySet to be updated in the Joint Fabric Datastore Cluster.\nUpon receipt of this command, the Datastore shall:\n 1. Find the Epoch Key Entry for the KeySet in the KeySetList attribute with the given GroupKeySetID, and update any changed fields.\n 2. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 3. If any fields are changed as a result of this command:\n 1. Iterate through each Node Information Entry:\n 1. If the NodeKeySetList contains an entry with the given GroupKeySetID:\n 1. Update the Status on the given DatastoreNodeKeySetEntryStruct tp Pending.\n 2. Update the GroupKeySet on the given Node with the new values.\n 1. If successful, update the Status on this DatastoreNodeKeySetEntryStruct to Committed.\n 2. If not successful, update the State field of the StatusEntry on this DatastoreNodeKeySetEntryStruct to CommitFailed and FailureCode code to the returned error. The pending change shall be applied in a subsequent Node Refresh."
114
+ details: "Upon receipt, this shall update a KeySet in the Joint Fabric Datastore Cluster of the accessing fabric.",
115
+ children: [{
116
+ tag: "field",
117
+ name: "GroupKeySet",
118
+ xref: "core\xA711.24.7.2.1",
119
+ details: "This field shall indicate the KeySet to be updated in the Joint Fabric Datastore Cluster.\nThe Datastore shall:\n 1. Find the Epoch Key Entry for the KeySet in the KeySetList attribute with the given GroupKeySetID, and update any changed fields.\n 2. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 3. If any fields are changed as a result of this command:\n 1. Iterate through each DatastoreNodeInformationEntryStruct:\n 1. If the NodeKeySetList contains an entry with the given GroupKeySetID:\n 1. Update the Status on the given DatastoreNodeKeySetEntryStruct tp Pending.\n 2. Update the GroupKeySet on the given Node with the new values.\n 1. If successful, update the Status on this DatastoreNodeKeySetEntryStruct to Committed.\n 2. If not successful, update the State field of the StatusEntry on this DatastoreNodeKeySetEntryStruct to CommitFailed and FailureCode code to the returned error. The pending change shall be applied in a subsequent Node Refresh."
120
+ }]
109
121
  },
110
122
  {
111
123
  tag: "command",
112
124
  name: "RemoveKeySet",
113
125
  xref: "core\xA711.24.7.3",
114
- details: "This command shall be used to remove a KeySet from the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupKeySetID represents the unique identifier for the KeySet to be removed from the Joint Fabric Datastore Cluster.\nAttempt to remove the IPK, which has GroupKeySetID of 0, shall fail with response CONSTRAINT_ERROR.\nUpon receipt of this command, the Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure there are no Nodes using this KeySet. To do this:\n 1. Iterate through each Node Information Entry:\n 1. If the NodeKeySetList list contains an entry with the given GroupKeySetID, and the entry does NOT have Status DeletePending, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Remove the DatastoreGroupKeySetStruct for the given GroupKeySetID from the GroupKeySetList attribute."
126
+ details: "Upon receipt, this shall remove a KeySet from the Joint Fabric Datastore Cluster of the accessing fabric.",
127
+ children: [{
128
+ tag: "field",
129
+ name: "GroupKeySetId",
130
+ xref: "core\xA711.24.7.3.1",
131
+ details: "This field shall indicate the unique identifier for the KeySet to be removed from the Joint Fabric Datastore Cluster.\nAttempt to remove the IPK, which has GroupKeySetID of 0, shall fail with response CONSTRAINT_ERROR.\nThe Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure there are no Nodes using this KeySet. To do this:\n 1. Iterate through each DatastoreNodeInformationEntryStruct:\n 1. If the NodeKeySetList list contains an entry with the given GroupKeySetID, and the entry does NOT have Status DeletePending, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Remove the DatastoreGroupKeySetStruct for the given GroupKeySetID from the GroupKeySetList attribute."
132
+ }]
115
133
  },
116
134
  {
117
135
  tag: "command",
118
136
  name: "AddGroup",
119
137
  xref: "core\xA711.24.7.4",
120
- details: "This command shall be used to add a group to the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupInformationEntry represents the group to be added to the Joint Fabric Datastore Cluster.\nGroupCAT values shall fall within the range 1 to 65534. Attempts to add a group with a GroupCAT value of Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nUpon receipt of this command, the Datastore shall:\n 1. Ensure there are no Groups in the GroupList attribute with the given GroupID. If a match is found, then this command shall fail with a CONSTRAINT_ERROR status code.\n 2. Add the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to the GroupList attribute."
138
+ details: "Upon receipt, this shall add a group to the Joint Fabric Datastore Cluster of the accessing fabric.",
139
+ children: [
140
+ {
141
+ tag: "field",
142
+ name: "GroupId",
143
+ xref: "core\xA711.24.7.4.1",
144
+ details: "This field shall indicate the unique identifier for the group to be added to the Joint Fabric Datastore Cluster."
145
+ },
146
+ {
147
+ tag: "field",
148
+ name: "FriendlyName",
149
+ xref: "core\xA711.24.7.4.2",
150
+ details: "This field shall indicate the friendly name for the group."
151
+ },
152
+ {
153
+ tag: "field",
154
+ name: "GroupKeySetId",
155
+ xref: "core\xA711.24.7.4.3",
156
+ details: "This field shall indicate the unique identifier for the group key set."
157
+ },
158
+ {
159
+ tag: "field",
160
+ name: "GroupCat",
161
+ xref: "core\xA711.24.7.4.4",
162
+ details: "This field shall indicate the CAT value for this group.\nGroupCAT values shall fall within the range 1 to 65534. Attempts to add a group with a GroupCAT value of Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR."
163
+ },
164
+ {
165
+ tag: "field",
166
+ name: "GroupCatVersion",
167
+ xref: "core\xA711.24.7.4.5",
168
+ details: "This field shall indicate the current version number for this CAT."
169
+ },
170
+ {
171
+ tag: "field",
172
+ name: "GroupPermission",
173
+ xref: "core\xA711.24.7.4.6",
174
+ details: "This field shall indicate the permission level associated with ACL entries for this group.\nThe Datastore shall:\n 1. Ensure there are no Groups in the GroupList attribute with the given GroupID. If a match is found, then this command shall fail with a CONSTRAINT_ERROR status code.\n 2. Add the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to the GroupList attribute."
175
+ }
176
+ ]
121
177
  },
122
178
  {
123
179
  tag: "command",
124
180
  name: "UpdateGroup",
125
181
  xref: "core\xA711.24.7.5",
126
- details: "This command shall be used to update a group in the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupID represents the group to be updated in the Joint Fabric Datastore Cluster. NULL values for the additional parameters will be ignored (not updated).\nGroupCAT values shall fall within the range 1 to 65534. Attempts to update the GroupCAT on an existing group which has a GroupCAT value of Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nAttempts to set the GroupCAT to Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nUpon receipt of this command, the Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Update the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to match the non-NULL fields passed in.\n 3. If any fields are changed as a result of this command:\n 1. Iterate through each Node Information Entry:\n 1. If the GroupKeySetID changed:\n 1. Add a DatastoreNodeKeySetEntryStruct with the new GroupKeySetID, and Status set to Pending.\n 2. Add this KeySet to the Node.\n 1. If successful, Set the Status to Committed for this entry in the NodeKeySetList.\n 2. If not successful, Set the Status to CommitFailed and the FailureCode to the returned error. The pending change shall be applied in a subsequent Node Refresh.\n 1. If the NodeKeySetList list contains an entry with the previous GroupKeySetID:\n 3. Set the Status set to DeletePending.\n 4. Remove this KeySet from the Node.\n 1. If successful, Remove this entry from the NodeKeySetList.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 2. If the GroupCAT, GroupCATVersion or GroupPermission changed:\n 1. If the ACLList contains an entry for this Group, update the ACL List Entry in the Datastore with the new values and Status Pending, update the ACL attribute on the given Node with the new values. If the update succeeds, set the Status to Committed on the ACLList Entry in the Datastore.\n 3. If the FriendlyName changed:\n 1. Iterate through each Endpoint Information Entry:\n 1. If the GroupIDList contains an entry with the given GroupID:\n 1. Update the GroupIDList Entry in the Datastore with the new values and Status Pending\n 2. Update the Groups on the given Node with the new values.\n 1. If the update succeeds, set the Status to Committed on the GroupIDList Entry in the Datastore.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh."
182
+ details: "Upon receipt, this shall update a group in the Joint Fabric Datastore Cluster of the accessing fabric.",
183
+ children: [
184
+ {
185
+ tag: "field",
186
+ name: "GroupId",
187
+ xref: "core\xA711.24.7.5.1",
188
+ details: "This field shall indicate the group to be updated in the Joint Fabric Datastore Cluster."
189
+ },
190
+ {
191
+ tag: "field",
192
+ name: "FriendlyName",
193
+ xref: "core\xA711.24.7.5.2",
194
+ details: "This field shall indicate the friendly name for the group. NULL values will be ignored (not updated)."
195
+ },
196
+ {
197
+ tag: "field",
198
+ name: "GroupKeySetId",
199
+ xref: "core\xA711.24.7.5.3",
200
+ details: "This field shall indicate the unique identifier for the group key set. NULL values will be ignored (not updated)."
201
+ },
202
+ {
203
+ tag: "field",
204
+ name: "GroupCat",
205
+ xref: "core\xA711.24.7.5.4",
206
+ details: "This field shall indicate the CAT value for this group. NULL values will be ignored (not updated).\nGroupCAT values shall fall within the range 1 to 65534. Attempts to update the GroupCAT on an existing group which has a GroupCAT value of Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nAttempts to set the GroupCAT to Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR."
207
+ },
208
+ {
209
+ tag: "field",
210
+ name: "GroupCatVersion",
211
+ xref: "core\xA711.24.7.5.5",
212
+ details: "This field shall indicate the current version number for this CAT. NULL values will be ignored (not updated)."
213
+ },
214
+ {
215
+ tag: "field",
216
+ name: "GroupPermission",
217
+ xref: "core\xA711.24.7.5.6",
218
+ details: "This field shall indicate the permission level associated with ACL entries for this group. NULL values will be ignored (not updated).\nThe Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Update the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to match the non-NULL fields passed in.\n 3. If any fields are changed as a result of this command:\n 1. Iterate through each DatastoreNodeInformationEntryStruct:\n 1. If the GroupKeySetID changed:\n 1. Add a DatastoreNodeKeySetEntryStruct with the new GroupKeySetID, and Status set to Pending.\n 2. Add this KeySet to the Node.\n 1. If successful, Set the Status to Committed for this entry in the NodeKeySetList.\n 2. If not successful, Set the Status to CommitFailed and the FailureCode to the returned error. The pending change shall be applied in a subsequent Node Refresh.\n 1. If the NodeKeySetList list contains an entry with the previous GroupKeySetID:\n 3. Set the Status set to DeletePending.\n 4. Remove this KeySet from the Node.\n 1. If successful, Remove this entry from the NodeKeySetList.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 2. If the GroupCAT, GroupCATVersion or GroupPermission changed:\n 1. If the ACLList contains an entry for this Group, update the ACL List Entry in the Datastore with the new values and Status Pending, update the ACL attribute on the given Node with the new values. If the update succeeds, set the Status to Committed on the ACLList Entry in the Datastore.\n 3. If the FriendlyName changed:\n 1. Iterate through each DatastoreEndpointGroupIDEntryStruct in the EndpointGroupIDList attribute:\n 1. If the DatastoreEndpointGroupIDEntryStruct contains an entry with the given GroupID:\n 1. Update the DatastoreEndpointGroupIDEntryStruct Entry in the Datastore with the new values and Status Pending\n 2. Update the Groups on the given Node with the new values.\n 1. If the update succeeds, set the Status to Committed on the GroupIDList Entry in the Datastore.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh."
219
+ }
220
+ ]
127
221
  },
128
222
  {
129
223
  tag: "command",
130
224
  name: "RemoveGroup",
131
225
  xref: "core\xA711.24.7.6",
132
- details: "This command shall be used to remove a group from the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupID represents the unique identifier for the group to be removed from the Joint Fabric Datastore Cluster.\nAttempts to remove a group with GroupCAT value set to Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nUpon receipt of this command, the Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure there are no Nodes in this group. To do this:\n 1. Iterate through each Node Information Entry:\n 1. If the GroupIDList contains an entry with the given GroupID, and the entry does NOT have Status DeletePending, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Remove the DatastoreGroupInformationEntryStruct for the Group with the given GroupID from the GroupList attribute."
226
+ details: "Upon receipt, this shall remove a group from the Joint Fabric Datastore Cluster of the accessing fabric.",
227
+ children: [{
228
+ tag: "field",
229
+ name: "GroupId",
230
+ xref: "core\xA711.24.7.6.1",
231
+ details: "This field shall indicate the unique identifier for the group to be removed from the Joint Fabric Datastore Cluster.\nAttempts to remove a group with GroupCAT value set to Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.\nThe Datastore shall:\n 1. If entry is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure there are no Nodes in this group. To do this:\n 1. Iterate through each DatastoreNodeInformationEntryStruct:\n 1. If the GroupIDList contains an entry with the given GroupID, and the entry does NOT have Status DeletePending, then this command shall fail with a CONSTRAINT_ERROR status code.\n 3. Remove the DatastoreGroupInformationEntryStruct for the Group with the given GroupID from the GroupList attribute."
232
+ }]
133
233
  },
134
234
  {
135
235
  tag: "command",
136
236
  name: "AddAdmin",
137
237
  xref: "core\xA711.24.7.7",
138
- details: "This command shall be used to add an admin to the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID, FriendlyName, VendorID and ICAC represent the admin to be added to the Joint Fabric Datastore Cluster."
238
+ details: "Upon receipt, this shall add an admin to the Joint Fabric Datastore Cluster of the accessing fabric.",
239
+ children: [
240
+ {
241
+ tag: "field",
242
+ name: "NodeId",
243
+ xref: "core\xA711.24.7.7.1",
244
+ details: "This field shall indicate the unique identifier for the admin node."
245
+ },
246
+ {
247
+ tag: "field",
248
+ name: "FriendlyName",
249
+ xref: "core\xA711.24.7.7.2",
250
+ details: "This field shall indicate the friendly name for the admin node."
251
+ },
252
+ {
253
+ tag: "field",
254
+ name: "VendorId",
255
+ xref: "core\xA711.24.7.7.3",
256
+ details: "This field shall indicate the Vendor ID for the admin node."
257
+ },
258
+ {
259
+ tag: "field",
260
+ name: "Icac",
261
+ xref: "core\xA711.24.7.7.4",
262
+ details: "This field shall indicate the ICAC used to issue the NOC.\nThe Datastore shall:\n 1. Ensure there are no Admins in the AdminList attribute with the given NodeID. If a match is found, then this command shall fail with a CONSTRAINT_ERROR status code.\n 2. Add the DatastoreAdministratorInformationEntryStruct for the Admin with the given NodeID to the AdminList attribute."
263
+ }
264
+ ]
139
265
  },
140
266
  {
141
267
  tag: "command",
142
268
  name: "UpdateAdmin",
143
269
  xref: "core\xA711.24.7.8",
144
- details: "This command shall be used to update an admin in the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the admin to be updated in the Joint Fabric Datastore Cluster. NULL values for the additional parameters will be ignored (not updated).\nIf entry is not found, then this command shall fail with a NOT_FOUND status code."
270
+ details: "Upon receipt, this shall update an admin entry in the AdminList attribute.",
271
+ children: [
272
+ {
273
+ tag: "field",
274
+ name: "NodeId",
275
+ xref: "core\xA711.24.7.8.1",
276
+ details: "This field shall indicate the admin to be updated in the Joint Fabric Datastore Cluster."
277
+ },
278
+ {
279
+ tag: "field",
280
+ name: "FriendlyName",
281
+ xref: "core\xA711.24.7.8.2",
282
+ details: "This field shall indicate the friendly name for the admin node."
283
+ },
284
+ {
285
+ tag: "field",
286
+ name: "Icac",
287
+ xref: "core\xA711.24.7.8.3",
288
+ details: "This field shall indicate the ICAC used to issue the NOC.\nThe Datastore shall:\n 1. Find the entry in the AdminList attribute with the given NodeID, and update any changed fields.\n 2. If entry is not found, then this command shall fail with a NOT_FOUND status code."
289
+ }
290
+ ]
145
291
  },
146
292
  {
147
293
  tag: "command",
148
294
  name: "RemoveAdmin",
149
295
  xref: "core\xA711.24.7.9",
150
- details: "This command shall be used to remove an admin from the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the unique identifier for the admin to be removed from the Joint Fabric Datastore Cluster.\nIf entry is not found, then this command shall fail with a NOT_FOUND status code."
296
+ details: "Upon receipt, this shall remove an admin from the Joint Fabric Datastore Cluster of the accessing fabric.",
297
+ children: [{
298
+ tag: "field",
299
+ name: "NodeId",
300
+ xref: "core\xA711.24.7.9.1",
301
+ details: "This field shall indicate the unique identifier for the admin to be removed from the Joint Fabric Datastore Cluster.\nThe Datastore shall:\n 1. If an entry in the AdminList attribute with the given NodeID is not found, then this command shall fail with a NOT_FOUND status code.\n 2. Remove the DatastoreAdministratorInformationEntryStruct for the Admin with the given NodeID from the AdminList attribute."
302
+ }]
151
303
  },
152
304
  {
153
305
  tag: "command",
154
306
  name: "AddPendingNode",
155
307
  xref: "core\xA711.24.7.10",
156
- details: "The command shall be used to add a node to the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the node to be added to the Joint Fabric Datastore Cluster.\nUpon receipt of this command, the Datastore shall:\n 1. Update CommissioningStatusEntry of the Node Information Entry with the given NodeID to Pending.\nIf a Node Information Entry exists for the given NodeID, then this command shall fail with a INVALID_CONSTRAINT status code."
308
+ details: "Upon receipt, this shall add a node to the Joint Fabric Datastore Cluster of the accessing fabric.",
309
+ children: [
310
+ {
311
+ tag: "field",
312
+ name: "NodeId",
313
+ xref: "core\xA711.24.7.10.1",
314
+ details: "This field shall indicate the node to be added to the Joint Fabric Datastore Cluster."
315
+ },
316
+ {
317
+ tag: "field",
318
+ name: "FriendlyName",
319
+ xref: "core\xA711.24.7.10.2",
320
+ details: "This field shall indicate the friendly name for the node.\nIf a DatastoreNodeInformationEntryStruct exists for the given NodeID, then this command shall fail with a INVALID_CONSTRAINT status code.\nThe Datastore shall:\n 1. Add an entry for the given NodeID to the NodeList attribute and set the status for the DatastoreNodeInformationEntryStruct to Pending."
321
+ }
322
+ ]
157
323
  },
158
324
  {
159
325
  tag: "command",
160
326
  name: "RefreshNode",
161
327
  xref: "core\xA711.24.7.11",
162
- details: "The command shall be used to request that Datastore information relating to a Node of the accessing fabric is refreshed.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Update the CommissioningStatusEntry for the Node Information Entry to Pending.\n 3. Ensure the Endpoint List for the Node Information Entry with the given NodeID matches Endpoint list on the given Node. This involves the following steps:\n 1. Read the PartsList of the Descriptor cluster from the Node.\n 2. For each Endpoint Information Entry in the Endpoint List of the Node Information Entry that does not match an Endpoint ID in the PartsList, remove the Endpoint Information Entry.\n 3. For each Endpoint Information Entry in the Endpoint List of the Node Information Entry that matches an Endpoint ID in the PartsList:\n 1. Check that each entry in Node's Group List occurs in the GroupIDList of the Endpoint Information Entry.\n 1. Add any missing entries to the GroupIDList of the Endpoint Information Entry.\n 2. For any entries in the GroupIDList with Status of Pending:\n 1. Add the corresponding change to the Node's Group List.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For any entries in the GroupIDList with Status of DeletePending:\n 1. If successful, remove the corresponding entry from the Node's Group List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 4. For any entries in the GroupIDList with Status of CommitFailure:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the GroupIDList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 2. Check that each entry in Node's Binding List occurs in the BindingList of the Endpoint Information Entry.\n 1. Add any missing entries to the BindingList of the Endpoint Information Entry.\n 2. For any entries in the BindingList with Status of Pending:\n 1. Add the corresponding change to the Node's Binding List.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For any entries in the BindingList with Status of DeletePending:\n 1. If successful, remove the corresponding entry from the Node's BindingList.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 4. For any entries in the BindingList with Status of CommitFailure:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the BindingList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. Ensure the GroupKeySetList for the Node Information Entry with the given NodeID matches the Group Keys on the given Node. This involves the following steps:\n 1. Read the Group Keys from the Node.\n 2. For each GroupKeySetEntry in the GroupKeySetList of the Node Information Entry with a Pending Status:\n 1. Add the corresponding DatastoreGroupKeySetStruct to the Node's Group Key list.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For each GroupKeySetEntry in the GroupKeySetList of the Node Information Entry with a CommitFailure Status:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the GroupKeySetList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. All remaining entries in the GroupKeySetList should be replaced by the remaining entries on the Node.\n 5. Ensure the ACLList for the Node Information Entry with the given NodeID matches the ACL attribute on the given Node. This involves the following steps:\n 1. Read the ACL attribute on the Node.\n 2. For each DatastoreACLEntryStruct in the ACLList of the Node Information Entry with a Pending Status:\n 1. Add the corresponding DatastoreACLEntryStruct to the Node's ACL attribute.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For each DatastoreACLEntryStruct in the ACLList of the Node Information Entry with a CommitFailure Status:\n 1. A CommitFailure with an unrecoverable FailureCode (i.e. RESOURCE_EXHAUSTED, CONSTRAINT_ERROR) shall be handled by removing the entry from the ACLList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. All remaining entries in the ACLList should be replaced by the remaining entries on the Node.\n 6. Update the CommissioningStatusEntry for the Node Information Entry to Committed."
328
+ details: "Upon receipt, this shall request that Datastore information relating to a Node of the accessing fabric is refreshed.",
329
+ children: [{
330
+ tag: "field",
331
+ name: "NodeId",
332
+ xref: "core\xA711.24.7.11.1",
333
+ details: "This field shall indicate the node for which Datastore information should be refreshed.\nThe Datastore shall:\n 1. Confirm that a DatastoreNodeInformationEntryStruct exists in the NodeList attribute for the given NodeID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Update the CommissioningStatusEntry for the DatastoreNodeInformationEntryStruct to Pending.\n 3. Ensure the Endpoint List for the DatastoreNodeInformationEntryStruct with the given NodeID matches Endpoint list on the given Node. This involves the following steps:\n 1. Read the PartsList of the Descriptor cluster from the Node.\n 2. For each DatastoreEndpointEntryStruct in the NodeEndpointList attribute with the given NodeID that does not match an Endpoint ID in the PartsList, remove the DatastoreEndpointEntryStruct.\n 3. For each DatastoreEndpointEntryStruct in the NodeEndpointList attribute with the given NodeID that matches an Endpoint ID in the PartsList:\n 1. Check that each entry in Node's Group List occurs in the EndpointGroupIDList attribute.\n 1. Add any missing entries to the EndpointGroupIDList.\n 2. For any entries in the EndpointGroupIDList attribute with the given NodeId and EndpointId with Status of Pending:\n 1. Add the corresponding change to the Node's Group List.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For any entries in the EndpointGroupIDList attribute with the given NodeID and EndpointID with Status of DeletePending:\n 1. If successful, remove the corresponding entry from the Node's Group List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 4. For any entries in the EndpointGroupIDList attribute with the given NodeID and EndpointID with Status of CommitFailure:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the GroupIDList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 2. Check that each entry in Node's Binding List occurs in the EndpointBindingList attribute with the given NodeId and EndpointId.\n 1. Add any missing entries to the EndpointBindingList attribute.\n 2. For any entries in the EndpointBindingList attribute with the given NodeID and EndpointID with Status of Pending:\n 1. Add the corresponding change to the Node's Binding List.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For any entries in the EndpointBindingList attribute with the given NodeID and EndpointID with Status of DeletePending:\n 1. If successful, remove the corresponding entry from the Node's BindingList.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 4. For any entries in the EndpointBindingList attribute with the given NodeID and EndpointID with Status of CommitFailure:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the BindingList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. Ensure the GroupKeySetList entries with the given NodeID match the Group Keys on the given Node. This involves the following steps:\n 1. Read the Group Keys from the Node.\n 2. For each DatastoreGroupKeySetStruct in the GroupKeySetList attribute for the given NodeID with a Pending Status:\n 1. Add the corresponding DatastoreGroupKeySetStruct to the Node's Group Key list.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For each DatastoreGroupKeySetStruct in the GroupKeySetList attribute for the given NodeID with a CommitFailure Status:\n 1. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the GroupKeySetList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. All remaining entries in the GroupKeySetList attribute for the given NodeId should be replaced by the remaining entries on the Node.\n 5. Ensure the NodeACLList attribute for the given NodeID matches the ACL attribute on the given Node. This involves the following steps:\n 1. Read the ACL attribute on the Node.\n 2. For each DatastoreACLEntryStruct in the ACLList attribute with the given NodeID with a Pending Status:\n 1. Add the corresponding DatastoreACLEntryStruct to the Node's ACL attribute.\n 1. If successful, mark the Status to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh.\n 3. For each DatastoreACLEntryStruct in the ACLList attribute with the given NodeID with a CommitFailure Status:\n 1. A CommitFailure with an unrecoverable FailureCode (i.e. RESOURCE_EXHAUSTED, CONSTRAINT_ERROR) shall be handled by removing the entry from the ACLList.\n 2. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent Node Refresh.\n 4. All remaining entries in the ACLList should be replaced by the remaining entries on the Node.\n 6. Update the CommissioningStatusEntry for the DatastoreNodeInformationEntryStruct to Committed."
334
+ }]
163
335
  },
164
336
  {
165
337
  tag: "command",
166
338
  name: "UpdateNode",
167
339
  xref: "core\xA711.24.7.12",
168
- details: "The command shall be used to update the friendly name for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the node to be updated in the Joint Fabric Datastore Cluster.\nIf a Node Information Entry does not exist for the given NodeID, then this command shall fail with a NOT_FOUND status code."
340
+ details: "Upon receipt, this shall update the friendly name for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
341
+ children: [
342
+ {
343
+ tag: "field",
344
+ name: "NodeId",
345
+ xref: "core\xA711.24.7.12.1",
346
+ details: "This field shall indicate the node to be updated in the Joint Fabric Datastore Cluster."
347
+ },
348
+ {
349
+ tag: "field",
350
+ name: "FriendlyName",
351
+ xref: "core\xA711.24.7.12.2",
352
+ details: "This field shall indicate the friendly name for the node.\nThe Datastore shall:\n 1. If a DatastoreNodeInformationEntryStruct does not exist for the given NodeID in the NodeList attribute, then this command shall fail with a NOT_FOUND status code.\n 2. Update the FriendlyName field of the DatastoreNodeInformationEntryStruct with the given NodeID."
353
+ }
354
+ ]
169
355
  },
170
356
  {
171
357
  tag: "command",
172
358
  name: "RemoveNode",
173
359
  xref: "core\xA711.24.7.13",
174
- details: "This command shall be used to remove a node from the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the unique identifier for the node to be removed from the Joint Fabric Datastore Cluster.\nIf a Node Information Entry does not exist for the given NodeID, then this command shall fail with a NOT_FOUND status code."
360
+ details: "Upon receipt, this shall remove a node from the Joint Fabric Datastore Cluster of the accessing fabric.",
361
+ children: [{
362
+ tag: "field",
363
+ name: "NodeId",
364
+ xref: "core\xA711.24.7.13.1",
365
+ details: "This field shall indicate the unique identifier for the node to be removed from the Joint Fabric Datastore Cluster.\nThe Datastore shall:\n 1. If a DatastoreNodeInformationEntryStruct does not exist for the given NodeID in the NodeList attribute, then this command shall fail with a NOT_FOUND status code.\n 2. Remove the DatastoreNodeInformationEntryStruct with the given NodeID from the NodeList attribute."
366
+ }]
175
367
  },
176
368
  {
177
369
  tag: "command",
178
370
  name: "UpdateEndpointForNode",
179
371
  xref: "core\xA711.24.7.14",
180
- details: "This command shall be used to update the state of an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nEndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster.\nNodeID represents the unique identifier for the node to which the endpoint belongs.\nIf an Endpoint Information Entry does not exist for the given NodeID and EndpointID, then this command shall fail with a NOT_FOUND status code."
372
+ details: "Upon receipt, this shall update the state of an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
373
+ children: [
374
+ {
375
+ tag: "field",
376
+ name: "EndpointId",
377
+ xref: "core\xA711.24.7.14.1",
378
+ details: "This field shall indicate the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster."
379
+ },
380
+ {
381
+ tag: "field",
382
+ name: "NodeId",
383
+ xref: "core\xA711.24.7.14.2",
384
+ details: "This field shall indicate the unique identifier for the node to which the endpoint belongs."
385
+ },
386
+ {
387
+ tag: "field",
388
+ name: "FriendlyName",
389
+ xref: "core\xA711.24.7.14.3",
390
+ details: "This field shall indicate the friendly name for the endpoint.\nThe Datastore shall:\n 1. If an DatastoreNodeInformationEntryStruct does not exist for the given NodeID and EndpointID in the NodeEndpointList attribute, then this command shall fail with a NOT_FOUND status code.\n 2. Update the FriendlyName field of the DatastoreNodeInformationEntryStruct with the given NodeID and EndpointID."
391
+ }
392
+ ]
181
393
  },
182
394
  {
183
395
  tag: "command",
184
396
  name: "AddGroupIdToEndpointForNode",
185
397
  xref: "core\xA711.24.7.15",
186
- details: "This command shall be used to add a Group ID to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupID represents the unique identifier for the group to be added to the endpoint.\nEndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster.\nNodeID represents the unique identifier for the node to which the endpoint belongs.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Group Key List for the Node Information Entry with the given NodeID includes the KeySet for the given Group ID. If it does not:\n 1. Add an entry for the KeySet of the given Group ID to the Group Key List for the Node. The new entry's status shall be set to Pending.\n 2. Add a Group Key Entry for this KeySet to the given Node ID.\n 1. If this succeeds, update the new KeySet entry in the Datastore to Committed.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 3. Ensure the Group List for the Endpoint Information Entry with the given NodeID and EndpointID includes an entry for the given Group. If it does not:\n 1. Add a Group entry for the given Group ID to the Group List for the Endpoint and Node. The new entry's status shall be set to Pending.\n 2. Add this Group entry to the given Endpoint ID on the given Node ID.\n 1. If this succeeds, update the new Group entry in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
398
+ details: "Upon receipt, this shall add a Group ID to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
399
+ children: [
400
+ {
401
+ tag: "field",
402
+ name: "NodeId",
403
+ xref: "core\xA711.24.7.15.1",
404
+ details: "This field shall indicate the unique identifier for the node to which the endpoint belongs."
405
+ },
406
+ {
407
+ tag: "field",
408
+ name: "EndpointId",
409
+ xref: "core\xA711.24.7.15.2",
410
+ details: "This field shall indicate the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster."
411
+ },
412
+ {
413
+ tag: "field",
414
+ name: "GroupId",
415
+ xref: "core\xA711.24.7.15.3",
416
+ details: "This field shall indicate the unique identifier for the group to be added to the endpoint.\nThe Datastore shall:\n 1. Confirm that an DatastoreNodeInformationEntryStruct exists for the given NodeID and EndpointID in the NodeEndpointList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Group Key List for the DatastoreNodeInformationEntryStruct with the given NodeID includes the KeySet for the given Group ID. If it does not:\n 1. Add an entry for the KeySet of the given Group ID to the Group Key List for the Node. The new entry's status shall be set to Pending.\n 2. Add a Group Key Entry for this KeySet to the given Node ID.\n 1. If this succeeds, update the new KeySet entry in the Datastore to Committed.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 3. Ensure the Group List for the DatastoreNodeInformationEntryStruct with the given NodeID and EndpointID includes an entry for the given Group. If it does not:\n 1. Add a Group entry for the given Group ID to the Group List for the Endpoint and Node. The new entry's status shall be set to Pending.\n 2. Add this Group entry to the given Endpoint ID on the given Node ID.\n 1. If this succeeds, update the new Group entry in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
417
+ }
418
+ ]
187
419
  },
188
420
  {
189
421
  tag: "command",
190
422
  name: "RemoveGroupIdFromEndpointForNode",
191
423
  xref: "core\xA711.24.7.16",
192
- details: "This command shall be used to remove a Group ID from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nGroupID represents the unique identifier for the group to be removed from the endpoint.\nEndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster.\nNodeID represents the unique identifier for the node to which the endpoint belongs.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Group List for the Endpoint Information Entry with the given NodeID and EndpointID does not include an entry for the given Group. If it does:\n 1. Update the status to DeletePending of the Group entry for the given Group ID in the Group List.\n 2. Remove this Group entry for the given Endpoint ID on the given Node ID.\n 1. If this succeeds, remove the Group entry for the given Group ID in the Group List for this NodeID and EndpointID in the Datastore.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 3. Ensure the Group Key List for the Node Information Entry with the given NodeID does not include the KeySet for the given Group ID. If it does:\n 1. Update the status to DeletePending for the entry for the KeySet of the given Group ID in the Node Group Key List.\n 2. Remove the Group Key Entry for this KeySet from the given Node ID.\n 1. If this succeeds, remove the KeySet entry for the given Node ID.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
424
+ details: "Upon receipt, this shall remove a Group ID from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
425
+ children: [
426
+ {
427
+ tag: "field",
428
+ name: "NodeId",
429
+ xref: "core\xA711.24.7.16.1",
430
+ details: "This field shall indicate the unique identifier for the node to which the endpoint belongs."
431
+ },
432
+ {
433
+ tag: "field",
434
+ name: "EndpointId",
435
+ xref: "core\xA711.24.7.16.2",
436
+ details: "This field shall indicate the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster."
437
+ },
438
+ {
439
+ tag: "field",
440
+ name: "GroupId",
441
+ xref: "core\xA711.24.7.16.3",
442
+ details: "This field shall indicate the unique identifier for the group to be removed from the endpoint.\nThe Datastore shall:\n 1. Confirm that an DatastoreNodeInformationEntryStruct exists for the given NodeID and EndpointID in the NodeEndpointList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the EndpointGroupIDList entries with the given NodeID and EndpointID does not include an entry for the given Group. If it does:\n 1. Update the status to DeletePending of the Group entry for the given Group ID in the Group List.\n 2. Remove this Group entry for the given Endpoint ID on the given Node ID.\n 1. If this succeeds, remove the Group entry for the given Group ID in the Group List for this NodeID and EndpointID in the Datastore.\n 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.\n 3. Ensure the Group Key List for the DatastoreNodeInformationEntryStruct with the given NodeID does not include the KeySet for the given Group ID. If it does:\n 1. Update the status to DeletePending for the entry for the KeySet of the given Group ID in the Node Group Key List.\n 2. Remove the Group Key Entry for this KeySet from the given Node ID.\n 1. If this succeeds, remove the KeySet entry for the given Node ID.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
443
+ }
444
+ ]
193
445
  },
194
446
  {
195
447
  tag: "command",
196
448
  name: "AddBindingToEndpointForNode",
197
449
  xref: "core\xA711.24.7.17",
198
- details: "This command shall be used to add a binding to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nBinding represents the binding to be added to the endpoint.\nEndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster.\nNodeID represents the unique identifier for the node to which the endpoint belongs.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Binding List for the Node Information Entry with the given NodeID includes the given Binding. If it does not:\n 1. Add the Binding to the Binding List for the Node Information Entry for the given NodeID. The new entry's status shall be set to Pending.\n 2. Add this Binding to the given Node ID.\n 1. If this succeeds, update the new Binding in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
450
+ details: "Upon receipt, this shall add a binding to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
451
+ children: [
452
+ {
453
+ tag: "field",
454
+ name: "NodeId",
455
+ xref: "core\xA711.24.7.17.1",
456
+ details: "This field shall indicate the unique identifier for the node to which the endpoint belongs."
457
+ },
458
+ {
459
+ tag: "field",
460
+ name: "EndpointId",
461
+ xref: "core\xA711.24.7.17.2",
462
+ details: "This field shall indicate the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster."
463
+ },
464
+ {
465
+ tag: "field",
466
+ name: "Binding",
467
+ xref: "core\xA711.24.7.17.3",
468
+ details: "This field shall indicate the binding to be added to the endpoint.\nThe Datastore shall:\n 1. Confirm that an DatastoreNodeInformationEntryStruct exists for the given NodeID and EndpointID in the NodeEndpointList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Binding List for the DatastoreNodeInformationEntryStruct with the given NodeID includes the given Binding. If it does not:\n 1. Add the DatastoreEndpointBindingEntryStruct entry to the EndpointBindingList attribute for the given NodeID and EndpointID. The new entry's status shall be set to Pending.\n 2. Add this Binding to the given Node ID.\n 1. If this succeeds, update the new Binding in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
469
+ }
470
+ ]
199
471
  },
200
472
  {
201
473
  tag: "command",
202
474
  name: "RemoveBindingFromEndpointForNode",
203
475
  xref: "core\xA711.24.7.18",
204
- details: "This command shall be used to remove a binding from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nListID represents the unique identifier for the binding entry in the Datastore's EndpointBindingList attribute to be removed from the endpoint.\nEndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster.\nNodeID represents the unique identifier for the node to which the endpoint belongs.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the Binding List for the Node Information Entry with the given NodeID does not include an entry with the given ListID. If it does:\n 1. Update the status to DeletePending for the given Binding in the Binding List.\n 2. Remove this Binding from the given Node ID.\n 1. If this succeeds, remove the given Binding from the Binding List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
476
+ details: "Upon receipt, this shall remove a binding from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
477
+ children: [
478
+ {
479
+ tag: "field",
480
+ name: "ListId",
481
+ xref: "core\xA711.24.7.18.1",
482
+ details: "This field shall indicate the unique identifier for the binding entry in the Datastore's EndpointBindingList attribute to be removed from the endpoint."
483
+ },
484
+ {
485
+ tag: "field",
486
+ name: "EndpointId",
487
+ xref: "core\xA711.24.7.18.2",
488
+ details: "This field shall indicate the unique identifier for the endpoint to be updated in the Joint Fabric Datastore Cluster."
489
+ },
490
+ {
491
+ tag: "field",
492
+ name: "NodeId",
493
+ xref: "core\xA711.24.7.18.3",
494
+ details: "This field shall indicate the unique identifier for the node to which the endpoint belongs.\nThe Datastore shall:\n 1. Confirm that an DatastoreNodeInformationEntryStruct exists for the given NodeID and EndpointID in the EndpointBindingList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the EndpointBindingList entries with the given NodeID does not include an entry with the given ListID. If it does:\n 1. Update the status to DeletePending for the given Binding in the Binding List.\n 2. Remove this Binding from the given Node ID.\n 1. If this succeeds, remove the given Binding from the Binding List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
495
+ }
496
+ ]
205
497
  },
206
498
  {
207
499
  tag: "command",
208
500
  name: "AddAclToNode",
209
501
  xref: "core\xA711.24.7.19",
210
- details: "This command shall be used to add an ACL to a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nNodeID represents the unique identifier for the node to which the ACL is to be added.\nACLEntry represents the ACL to be added to the Joint Fabric Datastore Cluster.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the ACL List for the given NodeID includes the given ACLEntry. If it does not:\n 1. Add the ACLEntry to the ACL List for the given NodeID. The new entry's status shall be set to Pending.\n 2. Add this ACLEntry to the given Node ID.\n 1. If this succeeds, update the new ACLEntry in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
502
+ details: "Upon receipt, this shall add an ACL to a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
503
+ children: [
504
+ {
505
+ tag: "field",
506
+ name: "NodeId",
507
+ xref: "core\xA711.24.7.19.1",
508
+ details: "This field shall indicate the unique identifier for the node to which the ACL is to be added."
509
+ },
510
+ {
511
+ tag: "field",
512
+ name: "AclEntry",
513
+ xref: "core\xA711.24.7.19.2",
514
+ details: "This field shall indicate the ACL to be added to the Joint Fabric Datastore Cluster.\nThe Datastore shall:\n 1. Confirm that a DatastoreNodeInformationEntryStruct exists for the given NodeID in the NodeList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the ACL List for the given NodeID includes the given ACLEntry. If it does not:\n 1. Add the ACLEntry to the ACL List for the given NodeID. The new entry's status shall be set to Pending.\n 2. Add this ACLEntry to the given Node ID.\n 1. If this succeeds, update the new ACLEntry in the Datastore to Committed.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
515
+ }
516
+ ]
211
517
  },
212
518
  {
213
519
  tag: "command",
214
520
  name: "RemoveAclFromNode",
215
521
  xref: "core\xA711.24.7.20",
216
- details: "This command shall be used to remove an ACL from a node in the Joint Fabric Datastore Cluster of the accessing fabric.\nListID represents the unique identifier for the DatastoreACLEntryStruct to be removed from the Datastore's list of DatastoreACLEntry.\nNodeID represents the unique identifier for the node from which the ACL is to be removed.\nUpon receipt of this command, the Datastore shall:\n 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the ACL List for the given NodeID does not include the given ACLEntry. If it does:\n 1. Update the status to DeletePending for the given ACLEntry in the ACL List.\n 2. Remove this ACLEntry from the given Node ID.\n 1. If this succeeds, remove the given ACLEntry from the Node ACL List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
522
+ details: "Upon receipt, this shall remove an ACL from a node in the Joint Fabric Datastore Cluster of the accessing fabric.",
523
+ children: [
524
+ {
525
+ tag: "field",
526
+ name: "ListId",
527
+ xref: "core\xA711.24.7.20.1",
528
+ details: "This field shall indicate the unique identifier for the DatastoreACLEntryStruct to be removed from the Datastore's list of DatastoreACLEntry."
529
+ },
530
+ {
531
+ tag: "field",
532
+ name: "NodeId",
533
+ xref: "core\xA711.24.7.20.2",
534
+ details: "This field shall indicate the unique identifier for the node from which the ACL is to be removed.\nThe Datastore shall:\n 1. Confirm that a DatastoreNodeInformationEntryStruct exists for the given NodeID in the NodeList attribute, and if not, then this command shall fail with a NOT_FOUND status code.\n 2. Ensure the ACL List for the given NodeID does not include the given ACLEntry. If it does:\n 1. Update the status to DeletePending for the given ACLEntry in the ACL List.\n 2. Remove this ACLEntry from the given Node ID.\n 1. If this succeeds, remove the given ACLEntry from the Node ACL List.\n 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The error shall be handled in a subsequent Node Refresh."
535
+ }
536
+ ]
217
537
  },
218
538
  {
219
539
  tag: "datatype",
@@ -247,7 +567,7 @@ Resource.add({
247
567
  tag: "field",
248
568
  name: "FailureCode",
249
569
  xref: "core\xA711.24.5.2.3",
250
- details: "This field shall contain the StatusCode of the last failed operation where the State field is set to CommitFailure."
570
+ details: "This field shall contain the Status Code of the last failed operation where the State field is set to CommitFailure."
251
571
  }
252
572
  ]
253
573
  },
@@ -453,13 +773,7 @@ Resource.add({
453
773
  tag: "field",
454
774
  name: "FriendlyName",
455
775
  xref: "core\xA711.24.5.9.3",
456
- details: "Friendly name for this endpoint which is propagated to nodes. Any changes to Friendly Name or Group Id List (add/remove entry) must follow the pending->committed workflow with current state reflected in the Status Entry."
457
- },
458
- {
459
- tag: "field",
460
- name: "StatusEntry",
461
- xref: "core\xA711.24.5.9.4",
462
- details: "Indicates whether changes to Friendly Name are pending, committed, or commit-failed."
776
+ details: "This field shall indicate a user-assigned label for this endpoint, as captured by a Joint Fabric Administrator's user interface. By maintaining this value in the Joint Fabric Datastore, all Joint Fabric Administrators can keep these values synchronized. This is particularly useful for complex multi-application endpoint devices (such as appliances) and for endpoints exposed via a Bridge, where individual endpoints might have custom names assigned by the user. For basic devices, only the node-level FriendlyName might be used.\nAdministrators may keep this field in sync with the NodeLabel field from the Basic Information or Bridged Basic Information clusters."
463
777
  }
464
778
  ]
465
779
  },
@@ -527,7 +841,7 @@ Resource.add({
527
841
  tag: "field",
528
842
  name: "FriendlyName",
529
843
  xref: "core\xA711.24.5.14.2",
530
- details: "Friendly name for this node which is not propagated to nodes."
844
+ details: "This field shall contain a user-assigned label for this node, as captured by a Joint Fabric Administrator's user interface. By maintaining this value in the Joint Fabric Datastore, all Joint Fabric Administrators can keep these values synchronized. This value is not propagated to the node itself.\nAdministrators may keep this field in sync with the NodeLabel field from the Basic Information or Bridged Basic Information clusters."
531
845
  },
532
846
  {
533
847
  tag: "field",