@matter/types 0.16.0-alpha.0-20251022-5a69ce65a → 0.16.0-alpha.0-20251027-17770fb28

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 (888) hide show
  1. package/dist/cjs/cluster/mutation/{ElementModifier.d.ts → ClusterTypeModifier.d.ts} +8 -8
  2. package/dist/cjs/cluster/mutation/ClusterTypeModifier.d.ts.map +1 -0
  3. package/dist/cjs/cluster/mutation/{ElementModifier.js → ClusterTypeModifier.js} +6 -6
  4. package/dist/cjs/cluster/mutation/{ElementModifier.js.map → ClusterTypeModifier.js.map} +2 -2
  5. package/dist/cjs/cluster/mutation/MutableCluster.d.ts +7 -7
  6. package/dist/cjs/cluster/mutation/MutableCluster.d.ts.map +1 -1
  7. package/dist/cjs/cluster/mutation/MutableCluster.js +4 -4
  8. package/dist/cjs/cluster/mutation/MutableCluster.js.map +1 -1
  9. package/dist/cjs/cluster/mutation/index.d.ts +1 -1
  10. package/dist/cjs/cluster/mutation/index.d.ts.map +1 -1
  11. package/dist/cjs/cluster/mutation/index.js +1 -1
  12. package/dist/cjs/cluster/mutation/index.js.map +1 -1
  13. package/dist/cjs/clusters/access-control.d.ts +96 -47
  14. package/dist/cjs/clusters/access-control.d.ts.map +1 -1
  15. package/dist/cjs/clusters/access-control.js +16 -8
  16. package/dist/cjs/clusters/access-control.js.map +1 -1
  17. package/dist/cjs/clusters/account-login.d.ts +20 -20
  18. package/dist/cjs/clusters/account-login.js +12 -12
  19. package/dist/cjs/clusters/actions.d.ts +36 -5
  20. package/dist/cjs/clusters/actions.d.ts.map +1 -1
  21. package/dist/cjs/clusters/actions.js +26 -1
  22. package/dist/cjs/clusters/actions.js.map +1 -1
  23. package/dist/cjs/clusters/administrator-commissioning.d.ts +29 -25
  24. package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
  25. package/dist/cjs/clusters/administrator-commissioning.js +7 -6
  26. package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
  27. package/dist/cjs/clusters/air-quality.js +1 -1
  28. package/dist/cjs/clusters/air-quality.js.map +1 -1
  29. package/dist/cjs/clusters/alarm-base.d.ts +4 -4
  30. package/dist/cjs/clusters/alarm-base.js +2 -2
  31. package/dist/cjs/clusters/application-launcher.d.ts +49 -23
  32. package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
  33. package/dist/cjs/clusters/application-launcher.js +7 -3
  34. package/dist/cjs/clusters/application-launcher.js.map +1 -1
  35. package/dist/cjs/clusters/basic-information.d.ts +22 -19
  36. package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
  37. package/dist/cjs/clusters/basic-information.js +21 -18
  38. package/dist/cjs/clusters/basic-information.js.map +1 -1
  39. package/dist/cjs/clusters/boolean-state-configuration.d.ts +15 -15
  40. package/dist/cjs/clusters/boolean-state-configuration.js +3 -3
  41. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +56 -12
  42. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  43. package/dist/cjs/clusters/bridged-device-basic-information.js +18 -4
  44. package/dist/cjs/clusters/bridged-device-basic-information.js.map +1 -1
  45. package/dist/cjs/clusters/channel.d.ts +12 -0
  46. package/dist/cjs/clusters/channel.d.ts.map +1 -1
  47. package/dist/cjs/clusters/channel.js +4 -0
  48. package/dist/cjs/clusters/channel.js.map +1 -1
  49. package/dist/cjs/clusters/color-control.d.ts +128 -119
  50. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  51. package/dist/cjs/clusters/color-control.js +52 -68
  52. package/dist/cjs/clusters/color-control.js.map +1 -1
  53. package/dist/cjs/clusters/commissioner-control.d.ts +8 -4
  54. package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -1
  55. package/dist/cjs/clusters/commissioner-control.js +5 -1
  56. package/dist/cjs/clusters/commissioner-control.js.map +1 -1
  57. package/dist/cjs/clusters/concentration-measurement.d.ts +7 -9
  58. package/dist/cjs/clusters/concentration-measurement.d.ts.map +1 -1
  59. package/dist/cjs/clusters/concentration-measurement.js +11 -12
  60. package/dist/cjs/clusters/concentration-measurement.js.map +1 -1
  61. package/dist/cjs/clusters/content-control.d.ts +44 -30
  62. package/dist/cjs/clusters/content-control.d.ts.map +1 -1
  63. package/dist/cjs/clusters/content-control.js +6 -6
  64. package/dist/cjs/clusters/content-control.js.map +1 -1
  65. package/dist/cjs/clusters/content-launcher.d.ts +32 -32
  66. package/dist/cjs/clusters/content-launcher.js +1 -1
  67. package/dist/cjs/clusters/descriptor.d.ts +43 -10
  68. package/dist/cjs/clusters/descriptor.d.ts.map +1 -1
  69. package/dist/cjs/clusters/descriptor.js +21 -4
  70. package/dist/cjs/clusters/descriptor.js.map +1 -1
  71. package/dist/cjs/clusters/device-energy-management-mode.d.ts +9 -0
  72. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  73. package/dist/cjs/clusters/device-energy-management-mode.js +3 -0
  74. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  75. package/dist/cjs/clusters/device-energy-management.d.ts +133 -24
  76. package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
  77. package/dist/cjs/clusters/device-energy-management.js +38 -12
  78. package/dist/cjs/clusters/device-energy-management.js.map +1 -1
  79. package/dist/cjs/clusters/dishwasher-alarm.d.ts +3 -3
  80. package/dist/cjs/clusters/dishwasher-alarm.js +1 -1
  81. package/dist/cjs/clusters/dishwasher-mode.d.ts +9 -0
  82. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  83. package/dist/cjs/clusters/dishwasher-mode.js +3 -0
  84. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  85. package/dist/cjs/clusters/door-lock.d.ts +182 -266
  86. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  87. package/dist/cjs/clusters/door-lock.js +80 -111
  88. package/dist/cjs/clusters/door-lock.js.map +1 -1
  89. package/dist/cjs/clusters/ecosystem-information.d.ts +93 -49
  90. package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -1
  91. package/dist/cjs/clusters/ecosystem-information.js +36 -24
  92. package/dist/cjs/clusters/ecosystem-information.js.map +1 -1
  93. package/dist/cjs/clusters/electrical-energy-measurement.d.ts +285 -209
  94. package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
  95. package/dist/cjs/clusters/electrical-energy-measurement.js +33 -13
  96. package/dist/cjs/clusters/electrical-energy-measurement.js.map +2 -2
  97. package/dist/cjs/clusters/electrical-power-measurement.d.ts +201 -126
  98. package/dist/cjs/clusters/electrical-power-measurement.d.ts.map +1 -1
  99. package/dist/cjs/clusters/electrical-power-measurement.js +45 -23
  100. package/dist/cjs/clusters/electrical-power-measurement.js.map +2 -2
  101. package/dist/cjs/clusters/energy-evse-mode.d.ts +9 -0
  102. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  103. package/dist/cjs/clusters/energy-evse-mode.js +3 -0
  104. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  105. package/dist/cjs/clusters/energy-evse.d.ts +61 -45
  106. package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
  107. package/dist/cjs/clusters/energy-evse.js +28 -33
  108. package/dist/cjs/clusters/energy-evse.js.map +1 -1
  109. package/dist/cjs/clusters/energy-preference.d.ts +5 -9
  110. package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
  111. package/dist/cjs/clusters/energy-preference.js +1 -3
  112. package/dist/cjs/clusters/energy-preference.js.map +1 -1
  113. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +59 -69
  114. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  115. package/dist/cjs/clusters/ethernet-network-diagnostics.js +21 -25
  116. package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
  117. package/dist/cjs/clusters/fan-control.d.ts +334 -148
  118. package/dist/cjs/clusters/fan-control.d.ts.map +1 -1
  119. package/dist/cjs/clusters/fan-control.js +107 -56
  120. package/dist/cjs/clusters/fan-control.js.map +1 -1
  121. package/dist/cjs/clusters/flow-measurement.js +1 -1
  122. package/dist/cjs/clusters/flow-measurement.js.map +1 -1
  123. package/dist/cjs/clusters/general-commissioning.d.ts +90 -69
  124. package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
  125. package/dist/cjs/clusters/general-commissioning.js +26 -23
  126. package/dist/cjs/clusters/general-commissioning.js.map +1 -1
  127. package/dist/cjs/clusters/general-diagnostics.d.ts +51 -52
  128. package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
  129. package/dist/cjs/clusters/general-diagnostics.js +13 -13
  130. package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
  131. package/dist/cjs/clusters/group-key-management.d.ts +28 -22
  132. package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
  133. package/dist/cjs/clusters/group-key-management.js +13 -10
  134. package/dist/cjs/clusters/group-key-management.js.map +1 -1
  135. package/dist/cjs/clusters/groups.d.ts +0 -12
  136. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  137. package/dist/cjs/clusters/groups.js +1 -7
  138. package/dist/cjs/clusters/groups.js.map +1 -1
  139. package/dist/cjs/clusters/icd-management.d.ts +809 -145
  140. package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
  141. package/dist/cjs/clusters/icd-management.js +182 -34
  142. package/dist/cjs/clusters/icd-management.js.map +1 -1
  143. package/dist/cjs/clusters/identify.d.ts +12 -1
  144. package/dist/cjs/clusters/identify.d.ts.map +1 -1
  145. package/dist/cjs/clusters/identify.js +13 -2
  146. package/dist/cjs/clusters/identify.js.map +1 -1
  147. package/dist/cjs/clusters/illuminance-measurement.js +1 -1
  148. package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
  149. package/dist/cjs/clusters/index.d.ts +1 -5
  150. package/dist/cjs/clusters/index.d.ts.map +1 -1
  151. package/dist/cjs/clusters/index.js +3 -15
  152. package/dist/cjs/clusters/index.js.map +1 -1
  153. package/dist/cjs/clusters/joint-fabric-administrator.d.ts +424 -0
  154. package/dist/cjs/clusters/joint-fabric-administrator.d.ts.map +1 -0
  155. package/dist/cjs/clusters/joint-fabric-administrator.js +285 -0
  156. package/dist/cjs/clusters/joint-fabric-administrator.js.map +6 -0
  157. package/dist/cjs/clusters/joint-fabric-datastore.d.ts +1960 -805
  158. package/dist/cjs/clusters/joint-fabric-datastore.d.ts.map +1 -1
  159. package/dist/cjs/clusters/joint-fabric-datastore.js +990 -172
  160. package/dist/cjs/clusters/joint-fabric-datastore.js.map +2 -2
  161. package/dist/cjs/clusters/label.d.ts +9 -6
  162. package/dist/cjs/clusters/label.d.ts.map +1 -1
  163. package/dist/cjs/clusters/label.js +3 -2
  164. package/dist/cjs/clusters/label.js.map +1 -1
  165. package/dist/cjs/clusters/laundry-washer-controls.d.ts +9 -9
  166. package/dist/cjs/clusters/laundry-washer-controls.js +4 -4
  167. package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
  168. package/dist/cjs/clusters/laundry-washer-mode.d.ts +2 -2
  169. package/dist/cjs/clusters/level-control.d.ts +11 -15
  170. package/dist/cjs/clusters/level-control.d.ts.map +1 -1
  171. package/dist/cjs/clusters/level-control.js +8 -9
  172. package/dist/cjs/clusters/level-control.js.map +1 -1
  173. package/dist/cjs/clusters/media-playback.d.ts +138 -12
  174. package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
  175. package/dist/cjs/clusters/media-playback.js +41 -4
  176. package/dist/cjs/clusters/media-playback.js.map +1 -1
  177. package/dist/cjs/clusters/messages.d.ts +7 -7
  178. package/dist/cjs/clusters/messages.js +3 -3
  179. package/dist/cjs/clusters/microwave-oven-control.js +4 -4
  180. package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
  181. package/dist/cjs/clusters/microwave-oven-mode.d.ts +9 -0
  182. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  183. package/dist/cjs/clusters/microwave-oven-mode.js +3 -0
  184. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  185. package/dist/cjs/clusters/mode-base.d.ts +31 -2
  186. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  187. package/dist/cjs/clusters/mode-base.js +15 -2
  188. package/dist/cjs/clusters/mode-base.js.map +1 -1
  189. package/dist/cjs/clusters/mode-select.d.ts +7 -7
  190. package/dist/cjs/clusters/mode-select.js +2 -2
  191. package/dist/cjs/clusters/network-commissioning.d.ts +259 -201
  192. package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
  193. package/dist/cjs/clusters/network-commissioning.js +41 -27
  194. package/dist/cjs/clusters/network-commissioning.js.map +1 -1
  195. package/dist/cjs/clusters/occupancy-sensing.d.ts +14 -20
  196. package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
  197. package/dist/cjs/clusters/occupancy-sensing.js +4 -6
  198. package/dist/cjs/clusters/occupancy-sensing.js.map +1 -1
  199. package/dist/cjs/clusters/on-off.js +4 -4
  200. package/dist/cjs/clusters/on-off.js.map +1 -1
  201. package/dist/cjs/clusters/operational-credentials.d.ts +367 -77
  202. package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
  203. package/dist/cjs/clusters/operational-credentials.js +182 -38
  204. package/dist/cjs/clusters/operational-credentials.js.map +1 -1
  205. package/dist/cjs/clusters/operational-state.d.ts +29 -49
  206. package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
  207. package/dist/cjs/clusters/operational-state.js +7 -10
  208. package/dist/cjs/clusters/operational-state.js.map +1 -1
  209. package/dist/cjs/clusters/ota-software-update-provider.d.ts +54 -22
  210. package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
  211. package/dist/cjs/clusters/ota-software-update-provider.js +27 -11
  212. package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
  213. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +12 -10
  214. package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
  215. package/dist/cjs/clusters/ota-software-update-requestor.js +6 -5
  216. package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
  217. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +5 -5
  218. package/dist/cjs/clusters/oven-cavity-operational-state.js +3 -3
  219. package/dist/cjs/clusters/oven-mode.d.ts +150 -0
  220. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  221. package/dist/cjs/clusters/oven-mode.js +51 -1
  222. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  223. package/dist/cjs/clusters/power-source.d.ts +18 -6
  224. package/dist/cjs/clusters/power-source.d.ts.map +1 -1
  225. package/dist/cjs/clusters/power-source.js +6 -2
  226. package/dist/cjs/clusters/power-source.js.map +1 -1
  227. package/dist/cjs/clusters/pressure-measurement.d.ts +18 -9
  228. package/dist/cjs/clusters/pressure-measurement.d.ts.map +1 -1
  229. package/dist/cjs/clusters/pressure-measurement.js +10 -7
  230. package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
  231. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +46 -37
  232. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  233. package/dist/cjs/clusters/pump-configuration-and-control.js +15 -12
  234. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  235. package/dist/cjs/clusters/refrigerator-alarm.d.ts +3 -3
  236. package/dist/cjs/clusters/refrigerator-alarm.js +1 -1
  237. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +9 -0
  238. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  239. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +3 -0
  240. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  241. package/dist/cjs/clusters/resource-monitoring.js +1 -1
  242. package/dist/cjs/clusters/resource-monitoring.js.map +1 -1
  243. package/dist/cjs/clusters/rvc-clean-mode.d.ts +16 -3
  244. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  245. package/dist/cjs/clusters/rvc-clean-mode.js +5 -1
  246. package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
  247. package/dist/cjs/clusters/rvc-operational-state.d.ts +78 -49
  248. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  249. package/dist/cjs/clusters/rvc-operational-state.js +19 -11
  250. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  251. package/dist/cjs/clusters/rvc-run-mode.d.ts +9 -0
  252. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  253. package/dist/cjs/clusters/rvc-run-mode.js +3 -0
  254. package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
  255. package/dist/cjs/clusters/scenes-management.d.ts +14 -45
  256. package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
  257. package/dist/cjs/clusters/scenes-management.js +7 -22
  258. package/dist/cjs/clusters/scenes-management.js.map +1 -1
  259. package/dist/cjs/clusters/service-area.d.ts +36 -40
  260. package/dist/cjs/clusters/service-area.d.ts.map +1 -1
  261. package/dist/cjs/clusters/service-area.js +10 -12
  262. package/dist/cjs/clusters/service-area.js.map +1 -1
  263. package/dist/cjs/clusters/smoke-co-alarm.d.ts +4 -9
  264. package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
  265. package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
  266. package/dist/cjs/clusters/software-diagnostics.d.ts +52 -51
  267. package/dist/cjs/clusters/software-diagnostics.d.ts.map +1 -1
  268. package/dist/cjs/clusters/software-diagnostics.js +17 -17
  269. package/dist/cjs/clusters/software-diagnostics.js.map +1 -1
  270. package/dist/cjs/clusters/switch.d.ts +20 -17
  271. package/dist/cjs/clusters/switch.d.ts.map +1 -1
  272. package/dist/cjs/clusters/switch.js +9 -8
  273. package/dist/cjs/clusters/switch.js.map +1 -1
  274. package/dist/cjs/clusters/temperature-control.d.ts +18 -9
  275. package/dist/cjs/clusters/temperature-control.d.ts.map +1 -1
  276. package/dist/cjs/clusters/temperature-control.js +7 -4
  277. package/dist/cjs/clusters/temperature-control.js.map +1 -1
  278. package/dist/cjs/clusters/thermostat-user-interface-configuration.d.ts.map +1 -1
  279. package/dist/cjs/clusters/thermostat-user-interface-configuration.js +2 -10
  280. package/dist/cjs/clusters/thermostat-user-interface-configuration.js.map +1 -1
  281. package/dist/cjs/clusters/thermostat.d.ts +406 -420
  282. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  283. package/dist/cjs/clusters/thermostat.js +89 -101
  284. package/dist/cjs/clusters/thermostat.js.map +1 -1
  285. package/dist/cjs/clusters/thread-border-router-management.d.ts +9 -9
  286. package/dist/cjs/clusters/thread-border-router-management.js +5 -5
  287. package/dist/cjs/clusters/thread-border-router-management.js.map +1 -1
  288. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +479 -504
  289. package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
  290. package/dist/cjs/clusters/thread-network-diagnostics.js +171 -181
  291. package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
  292. package/dist/cjs/clusters/thread-network-directory.d.ts +3 -3
  293. package/dist/cjs/clusters/thread-network-directory.js +5 -5
  294. package/dist/cjs/clusters/thread-network-directory.js.map +1 -1
  295. package/dist/cjs/clusters/time-synchronization.d.ts +159 -127
  296. package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
  297. package/dist/cjs/clusters/time-synchronization.js +52 -42
  298. package/dist/cjs/clusters/time-synchronization.js.map +1 -1
  299. package/dist/cjs/clusters/unit-localization.d.ts +51 -13
  300. package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
  301. package/dist/cjs/clusters/unit-localization.js +22 -4
  302. package/dist/cjs/clusters/unit-localization.js.map +1 -1
  303. package/dist/cjs/clusters/valve-configuration-and-control.d.ts.map +1 -1
  304. package/dist/cjs/clusters/valve-configuration-and-control.js +8 -12
  305. package/dist/cjs/clusters/valve-configuration-and-control.js.map +1 -1
  306. package/dist/cjs/clusters/water-heater-management.d.ts +2 -14
  307. package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -1
  308. package/dist/cjs/clusters/water-heater-management.js +5 -9
  309. package/dist/cjs/clusters/water-heater-management.js.map +1 -1
  310. package/dist/cjs/clusters/water-heater-mode.d.ts +9 -0
  311. package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -1
  312. package/dist/cjs/clusters/water-heater-mode.js +3 -0
  313. package/dist/cjs/clusters/water-heater-mode.js.map +1 -1
  314. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +57 -72
  315. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  316. package/dist/cjs/clusters/wi-fi-network-diagnostics.js +20 -26
  317. package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
  318. package/dist/cjs/clusters/wi-fi-network-management.d.ts +39 -1
  319. package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -1
  320. package/dist/cjs/clusters/wi-fi-network-management.js +22 -3
  321. package/dist/cjs/clusters/wi-fi-network-management.js.map +1 -1
  322. package/dist/cjs/clusters/window-covering.d.ts +105 -3
  323. package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
  324. package/dist/cjs/clusters/window-covering.js +35 -1
  325. package/dist/cjs/clusters/window-covering.js.map +1 -1
  326. package/dist/cjs/globals/Currency.d.ts +27 -0
  327. package/dist/cjs/globals/Currency.d.ts.map +1 -0
  328. package/dist/cjs/globals/{Tod.js → Currency.js} +8 -22
  329. package/dist/cjs/globals/Currency.js.map +6 -0
  330. package/dist/cjs/globals/Locationdesc.d.ts +7 -7
  331. package/dist/cjs/globals/Locationdesc.js +5 -5
  332. package/dist/cjs/globals/MeasurementAccuracy.d.ts +5 -5
  333. package/dist/cjs/globals/MeasurementAccuracy.js +3 -3
  334. package/dist/cjs/globals/MeasurementAccuracyRange.d.ts +10 -10
  335. package/dist/cjs/globals/MeasurementAccuracyRange.js +8 -8
  336. package/dist/cjs/globals/MeasurementType.d.ts +14 -2
  337. package/dist/cjs/globals/MeasurementType.d.ts.map +1 -1
  338. package/dist/cjs/globals/MeasurementType.js +3 -0
  339. package/dist/cjs/globals/MeasurementType.js.map +1 -1
  340. package/dist/cjs/globals/Namespace.d.ts +13 -3
  341. package/dist/cjs/globals/Namespace.d.ts.map +1 -1
  342. package/dist/cjs/globals/Namespace.js.map +1 -1
  343. package/dist/cjs/globals/Price.d.ts +30 -0
  344. package/dist/cjs/globals/Price.d.ts.map +1 -0
  345. package/dist/cjs/globals/Price.js +33 -0
  346. package/dist/cjs/globals/Price.js.map +6 -0
  347. package/dist/cjs/globals/Priority.d.ts +1 -1
  348. package/dist/cjs/globals/Semtag.d.ts +9 -9
  349. package/dist/cjs/globals/Semtag.js +7 -7
  350. package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  351. package/dist/cjs/globals/Status.d.ts +24 -5
  352. package/dist/cjs/globals/Status.d.ts.map +1 -1
  353. package/dist/cjs/globals/Status.js +3 -0
  354. package/dist/cjs/globals/Status.js.map +1 -1
  355. package/dist/cjs/globals/ThreeLevelAuto.d.ts +33 -0
  356. package/dist/cjs/globals/ThreeLevelAuto.d.ts.map +1 -0
  357. package/dist/cjs/globals/ThreeLevelAuto.js +36 -0
  358. package/dist/cjs/globals/ThreeLevelAuto.js.map +6 -0
  359. package/dist/cjs/globals/WildcardPathFlags.d.ts +2 -2
  360. package/dist/cjs/globals/WildcardPathFlags.js +1 -1
  361. package/dist/cjs/globals/index.d.ts +3 -1
  362. package/dist/cjs/globals/index.d.ts.map +1 -1
  363. package/dist/cjs/globals/index.js +3 -1
  364. package/dist/cjs/globals/index.js.map +1 -1
  365. package/dist/esm/cluster/mutation/{ElementModifier.d.ts → ClusterTypeModifier.d.ts} +8 -8
  366. package/dist/esm/cluster/mutation/ClusterTypeModifier.d.ts.map +1 -0
  367. package/dist/esm/cluster/mutation/{ElementModifier.js → ClusterTypeModifier.js} +3 -3
  368. package/dist/esm/cluster/mutation/{ElementModifier.js.map → ClusterTypeModifier.js.map} +2 -2
  369. package/dist/esm/cluster/mutation/MutableCluster.d.ts +7 -7
  370. package/dist/esm/cluster/mutation/MutableCluster.d.ts.map +1 -1
  371. package/dist/esm/cluster/mutation/MutableCluster.js +4 -4
  372. package/dist/esm/cluster/mutation/MutableCluster.js.map +1 -1
  373. package/dist/esm/cluster/mutation/index.d.ts +1 -1
  374. package/dist/esm/cluster/mutation/index.d.ts.map +1 -1
  375. package/dist/esm/cluster/mutation/index.js +1 -1
  376. package/dist/esm/clusters/access-control.d.ts +96 -47
  377. package/dist/esm/clusters/access-control.d.ts.map +1 -1
  378. package/dist/esm/clusters/access-control.js +16 -8
  379. package/dist/esm/clusters/access-control.js.map +1 -1
  380. package/dist/esm/clusters/account-login.d.ts +20 -20
  381. package/dist/esm/clusters/account-login.js +12 -12
  382. package/dist/esm/clusters/actions.d.ts +36 -5
  383. package/dist/esm/clusters/actions.d.ts.map +1 -1
  384. package/dist/esm/clusters/actions.js +26 -1
  385. package/dist/esm/clusters/actions.js.map +1 -1
  386. package/dist/esm/clusters/administrator-commissioning.d.ts +29 -25
  387. package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
  388. package/dist/esm/clusters/administrator-commissioning.js +7 -6
  389. package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
  390. package/dist/esm/clusters/air-quality.js +1 -1
  391. package/dist/esm/clusters/air-quality.js.map +1 -1
  392. package/dist/esm/clusters/alarm-base.d.ts +4 -4
  393. package/dist/esm/clusters/alarm-base.js +2 -2
  394. package/dist/esm/clusters/application-launcher.d.ts +49 -23
  395. package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
  396. package/dist/esm/clusters/application-launcher.js +7 -3
  397. package/dist/esm/clusters/application-launcher.js.map +1 -1
  398. package/dist/esm/clusters/basic-information.d.ts +22 -19
  399. package/dist/esm/clusters/basic-information.d.ts.map +1 -1
  400. package/dist/esm/clusters/basic-information.js +22 -18
  401. package/dist/esm/clusters/basic-information.js.map +1 -1
  402. package/dist/esm/clusters/boolean-state-configuration.d.ts +15 -15
  403. package/dist/esm/clusters/boolean-state-configuration.js +3 -3
  404. package/dist/esm/clusters/bridged-device-basic-information.d.ts +56 -12
  405. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  406. package/dist/esm/clusters/bridged-device-basic-information.js +19 -4
  407. package/dist/esm/clusters/bridged-device-basic-information.js.map +1 -1
  408. package/dist/esm/clusters/channel.d.ts +12 -0
  409. package/dist/esm/clusters/channel.d.ts.map +1 -1
  410. package/dist/esm/clusters/channel.js +4 -0
  411. package/dist/esm/clusters/channel.js.map +1 -1
  412. package/dist/esm/clusters/color-control.d.ts +128 -119
  413. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  414. package/dist/esm/clusters/color-control.js +52 -68
  415. package/dist/esm/clusters/color-control.js.map +1 -1
  416. package/dist/esm/clusters/commissioner-control.d.ts +8 -4
  417. package/dist/esm/clusters/commissioner-control.d.ts.map +1 -1
  418. package/dist/esm/clusters/commissioner-control.js +5 -1
  419. package/dist/esm/clusters/commissioner-control.js.map +1 -1
  420. package/dist/esm/clusters/concentration-measurement.d.ts +7 -9
  421. package/dist/esm/clusters/concentration-measurement.d.ts.map +1 -1
  422. package/dist/esm/clusters/concentration-measurement.js +11 -12
  423. package/dist/esm/clusters/concentration-measurement.js.map +1 -1
  424. package/dist/esm/clusters/content-control.d.ts +44 -30
  425. package/dist/esm/clusters/content-control.d.ts.map +1 -1
  426. package/dist/esm/clusters/content-control.js +6 -6
  427. package/dist/esm/clusters/content-control.js.map +1 -1
  428. package/dist/esm/clusters/content-launcher.d.ts +32 -32
  429. package/dist/esm/clusters/content-launcher.js +1 -1
  430. package/dist/esm/clusters/descriptor.d.ts +43 -10
  431. package/dist/esm/clusters/descriptor.d.ts.map +1 -1
  432. package/dist/esm/clusters/descriptor.js +22 -5
  433. package/dist/esm/clusters/descriptor.js.map +1 -1
  434. package/dist/esm/clusters/device-energy-management-mode.d.ts +9 -0
  435. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  436. package/dist/esm/clusters/device-energy-management-mode.js +3 -0
  437. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  438. package/dist/esm/clusters/device-energy-management.d.ts +133 -24
  439. package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
  440. package/dist/esm/clusters/device-energy-management.js +38 -12
  441. package/dist/esm/clusters/device-energy-management.js.map +1 -1
  442. package/dist/esm/clusters/dishwasher-alarm.d.ts +3 -3
  443. package/dist/esm/clusters/dishwasher-alarm.js +1 -1
  444. package/dist/esm/clusters/dishwasher-mode.d.ts +9 -0
  445. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  446. package/dist/esm/clusters/dishwasher-mode.js +3 -0
  447. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  448. package/dist/esm/clusters/door-lock.d.ts +182 -266
  449. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  450. package/dist/esm/clusters/door-lock.js +81 -112
  451. package/dist/esm/clusters/door-lock.js.map +1 -1
  452. package/dist/esm/clusters/ecosystem-information.d.ts +93 -49
  453. package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -1
  454. package/dist/esm/clusters/ecosystem-information.js +37 -25
  455. package/dist/esm/clusters/ecosystem-information.js.map +1 -1
  456. package/dist/esm/clusters/electrical-energy-measurement.d.ts +285 -209
  457. package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
  458. package/dist/esm/clusters/electrical-energy-measurement.js +33 -13
  459. package/dist/esm/clusters/electrical-energy-measurement.js.map +2 -2
  460. package/dist/esm/clusters/electrical-power-measurement.d.ts +201 -126
  461. package/dist/esm/clusters/electrical-power-measurement.d.ts.map +1 -1
  462. package/dist/esm/clusters/electrical-power-measurement.js +45 -23
  463. package/dist/esm/clusters/electrical-power-measurement.js.map +2 -2
  464. package/dist/esm/clusters/energy-evse-mode.d.ts +9 -0
  465. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  466. package/dist/esm/clusters/energy-evse-mode.js +3 -0
  467. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  468. package/dist/esm/clusters/energy-evse.d.ts +61 -45
  469. package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
  470. package/dist/esm/clusters/energy-evse.js +28 -33
  471. package/dist/esm/clusters/energy-evse.js.map +1 -1
  472. package/dist/esm/clusters/energy-preference.d.ts +5 -9
  473. package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
  474. package/dist/esm/clusters/energy-preference.js +1 -3
  475. package/dist/esm/clusters/energy-preference.js.map +1 -1
  476. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +59 -69
  477. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  478. package/dist/esm/clusters/ethernet-network-diagnostics.js +21 -25
  479. package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
  480. package/dist/esm/clusters/fan-control.d.ts +334 -148
  481. package/dist/esm/clusters/fan-control.d.ts.map +1 -1
  482. package/dist/esm/clusters/fan-control.js +107 -56
  483. package/dist/esm/clusters/fan-control.js.map +1 -1
  484. package/dist/esm/clusters/flow-measurement.js +1 -1
  485. package/dist/esm/clusters/flow-measurement.js.map +1 -1
  486. package/dist/esm/clusters/general-commissioning.d.ts +90 -69
  487. package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
  488. package/dist/esm/clusters/general-commissioning.js +26 -23
  489. package/dist/esm/clusters/general-commissioning.js.map +1 -1
  490. package/dist/esm/clusters/general-diagnostics.d.ts +51 -52
  491. package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
  492. package/dist/esm/clusters/general-diagnostics.js +13 -13
  493. package/dist/esm/clusters/general-diagnostics.js.map +1 -1
  494. package/dist/esm/clusters/group-key-management.d.ts +28 -22
  495. package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
  496. package/dist/esm/clusters/group-key-management.js +13 -10
  497. package/dist/esm/clusters/group-key-management.js.map +1 -1
  498. package/dist/esm/clusters/groups.d.ts +0 -12
  499. package/dist/esm/clusters/groups.d.ts.map +1 -1
  500. package/dist/esm/clusters/groups.js +1 -7
  501. package/dist/esm/clusters/groups.js.map +1 -1
  502. package/dist/esm/clusters/icd-management.d.ts +809 -145
  503. package/dist/esm/clusters/icd-management.d.ts.map +1 -1
  504. package/dist/esm/clusters/icd-management.js +182 -34
  505. package/dist/esm/clusters/icd-management.js.map +1 -1
  506. package/dist/esm/clusters/identify.d.ts +12 -1
  507. package/dist/esm/clusters/identify.d.ts.map +1 -1
  508. package/dist/esm/clusters/identify.js +13 -2
  509. package/dist/esm/clusters/identify.js.map +1 -1
  510. package/dist/esm/clusters/illuminance-measurement.js +1 -1
  511. package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
  512. package/dist/esm/clusters/index.d.ts +1 -5
  513. package/dist/esm/clusters/index.d.ts.map +1 -1
  514. package/dist/esm/clusters/index.js +3 -15
  515. package/dist/esm/clusters/index.js.map +1 -1
  516. package/dist/esm/clusters/joint-fabric-administrator.d.ts +424 -0
  517. package/dist/esm/clusters/joint-fabric-administrator.d.ts.map +1 -0
  518. package/dist/esm/clusters/joint-fabric-administrator.js +265 -0
  519. package/dist/esm/clusters/joint-fabric-administrator.js.map +6 -0
  520. package/dist/esm/clusters/joint-fabric-datastore.d.ts +1960 -805
  521. package/dist/esm/clusters/joint-fabric-datastore.d.ts.map +1 -1
  522. package/dist/esm/clusters/joint-fabric-datastore.js +993 -175
  523. package/dist/esm/clusters/joint-fabric-datastore.js.map +2 -2
  524. package/dist/esm/clusters/label.d.ts +9 -6
  525. package/dist/esm/clusters/label.d.ts.map +1 -1
  526. package/dist/esm/clusters/label.js +3 -2
  527. package/dist/esm/clusters/label.js.map +1 -1
  528. package/dist/esm/clusters/laundry-washer-controls.d.ts +9 -9
  529. package/dist/esm/clusters/laundry-washer-controls.js +4 -4
  530. package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
  531. package/dist/esm/clusters/laundry-washer-mode.d.ts +2 -2
  532. package/dist/esm/clusters/level-control.d.ts +11 -15
  533. package/dist/esm/clusters/level-control.d.ts.map +1 -1
  534. package/dist/esm/clusters/level-control.js +8 -9
  535. package/dist/esm/clusters/level-control.js.map +1 -1
  536. package/dist/esm/clusters/media-playback.d.ts +138 -12
  537. package/dist/esm/clusters/media-playback.d.ts.map +1 -1
  538. package/dist/esm/clusters/media-playback.js +41 -4
  539. package/dist/esm/clusters/media-playback.js.map +1 -1
  540. package/dist/esm/clusters/messages.d.ts +7 -7
  541. package/dist/esm/clusters/messages.js +3 -3
  542. package/dist/esm/clusters/microwave-oven-control.js +4 -4
  543. package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
  544. package/dist/esm/clusters/microwave-oven-mode.d.ts +9 -0
  545. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  546. package/dist/esm/clusters/microwave-oven-mode.js +3 -0
  547. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  548. package/dist/esm/clusters/mode-base.d.ts +31 -2
  549. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  550. package/dist/esm/clusters/mode-base.js +15 -2
  551. package/dist/esm/clusters/mode-base.js.map +1 -1
  552. package/dist/esm/clusters/mode-select.d.ts +7 -7
  553. package/dist/esm/clusters/mode-select.js +2 -2
  554. package/dist/esm/clusters/network-commissioning.d.ts +259 -201
  555. package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
  556. package/dist/esm/clusters/network-commissioning.js +41 -27
  557. package/dist/esm/clusters/network-commissioning.js.map +1 -1
  558. package/dist/esm/clusters/occupancy-sensing.d.ts +14 -20
  559. package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
  560. package/dist/esm/clusters/occupancy-sensing.js +4 -6
  561. package/dist/esm/clusters/occupancy-sensing.js.map +1 -1
  562. package/dist/esm/clusters/on-off.js +4 -4
  563. package/dist/esm/clusters/on-off.js.map +1 -1
  564. package/dist/esm/clusters/operational-credentials.d.ts +367 -77
  565. package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
  566. package/dist/esm/clusters/operational-credentials.js +183 -39
  567. package/dist/esm/clusters/operational-credentials.js.map +1 -1
  568. package/dist/esm/clusters/operational-state.d.ts +29 -49
  569. package/dist/esm/clusters/operational-state.d.ts.map +1 -1
  570. package/dist/esm/clusters/operational-state.js +7 -10
  571. package/dist/esm/clusters/operational-state.js.map +1 -1
  572. package/dist/esm/clusters/ota-software-update-provider.d.ts +54 -22
  573. package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
  574. package/dist/esm/clusters/ota-software-update-provider.js +27 -11
  575. package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
  576. package/dist/esm/clusters/ota-software-update-requestor.d.ts +12 -10
  577. package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
  578. package/dist/esm/clusters/ota-software-update-requestor.js +6 -5
  579. package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
  580. package/dist/esm/clusters/oven-cavity-operational-state.d.ts +5 -5
  581. package/dist/esm/clusters/oven-cavity-operational-state.js +3 -3
  582. package/dist/esm/clusters/oven-mode.d.ts +150 -0
  583. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  584. package/dist/esm/clusters/oven-mode.js +51 -1
  585. package/dist/esm/clusters/oven-mode.js.map +1 -1
  586. package/dist/esm/clusters/power-source.d.ts +18 -6
  587. package/dist/esm/clusters/power-source.d.ts.map +1 -1
  588. package/dist/esm/clusters/power-source.js +6 -2
  589. package/dist/esm/clusters/power-source.js.map +1 -1
  590. package/dist/esm/clusters/pressure-measurement.d.ts +18 -9
  591. package/dist/esm/clusters/pressure-measurement.d.ts.map +1 -1
  592. package/dist/esm/clusters/pressure-measurement.js +10 -7
  593. package/dist/esm/clusters/pressure-measurement.js.map +1 -1
  594. package/dist/esm/clusters/pump-configuration-and-control.d.ts +46 -37
  595. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  596. package/dist/esm/clusters/pump-configuration-and-control.js +15 -12
  597. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  598. package/dist/esm/clusters/refrigerator-alarm.d.ts +3 -3
  599. package/dist/esm/clusters/refrigerator-alarm.js +1 -1
  600. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +9 -0
  601. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  602. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +3 -0
  603. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  604. package/dist/esm/clusters/resource-monitoring.js +1 -1
  605. package/dist/esm/clusters/resource-monitoring.js.map +1 -1
  606. package/dist/esm/clusters/rvc-clean-mode.d.ts +16 -3
  607. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  608. package/dist/esm/clusters/rvc-clean-mode.js +5 -1
  609. package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
  610. package/dist/esm/clusters/rvc-operational-state.d.ts +78 -49
  611. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  612. package/dist/esm/clusters/rvc-operational-state.js +19 -11
  613. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  614. package/dist/esm/clusters/rvc-run-mode.d.ts +9 -0
  615. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  616. package/dist/esm/clusters/rvc-run-mode.js +3 -0
  617. package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
  618. package/dist/esm/clusters/scenes-management.d.ts +14 -45
  619. package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
  620. package/dist/esm/clusters/scenes-management.js +8 -30
  621. package/dist/esm/clusters/scenes-management.js.map +1 -1
  622. package/dist/esm/clusters/service-area.d.ts +36 -40
  623. package/dist/esm/clusters/service-area.d.ts.map +1 -1
  624. package/dist/esm/clusters/service-area.js +10 -12
  625. package/dist/esm/clusters/service-area.js.map +1 -1
  626. package/dist/esm/clusters/smoke-co-alarm.d.ts +4 -9
  627. package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
  628. package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
  629. package/dist/esm/clusters/software-diagnostics.d.ts +52 -51
  630. package/dist/esm/clusters/software-diagnostics.d.ts.map +1 -1
  631. package/dist/esm/clusters/software-diagnostics.js +17 -17
  632. package/dist/esm/clusters/software-diagnostics.js.map +1 -1
  633. package/dist/esm/clusters/switch.d.ts +20 -17
  634. package/dist/esm/clusters/switch.d.ts.map +1 -1
  635. package/dist/esm/clusters/switch.js +9 -8
  636. package/dist/esm/clusters/switch.js.map +1 -1
  637. package/dist/esm/clusters/temperature-control.d.ts +18 -9
  638. package/dist/esm/clusters/temperature-control.d.ts.map +1 -1
  639. package/dist/esm/clusters/temperature-control.js +7 -4
  640. package/dist/esm/clusters/temperature-control.js.map +1 -1
  641. package/dist/esm/clusters/thermostat-user-interface-configuration.d.ts.map +1 -1
  642. package/dist/esm/clusters/thermostat-user-interface-configuration.js +2 -10
  643. package/dist/esm/clusters/thermostat-user-interface-configuration.js.map +1 -1
  644. package/dist/esm/clusters/thermostat.d.ts +406 -420
  645. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  646. package/dist/esm/clusters/thermostat.js +89 -101
  647. package/dist/esm/clusters/thermostat.js.map +1 -1
  648. package/dist/esm/clusters/thread-border-router-management.d.ts +9 -9
  649. package/dist/esm/clusters/thread-border-router-management.js +5 -5
  650. package/dist/esm/clusters/thread-border-router-management.js.map +1 -1
  651. package/dist/esm/clusters/thread-network-diagnostics.d.ts +479 -504
  652. package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
  653. package/dist/esm/clusters/thread-network-diagnostics.js +171 -181
  654. package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
  655. package/dist/esm/clusters/thread-network-directory.d.ts +3 -3
  656. package/dist/esm/clusters/thread-network-directory.js +5 -5
  657. package/dist/esm/clusters/thread-network-directory.js.map +1 -1
  658. package/dist/esm/clusters/time-synchronization.d.ts +159 -127
  659. package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
  660. package/dist/esm/clusters/time-synchronization.js +52 -42
  661. package/dist/esm/clusters/time-synchronization.js.map +1 -1
  662. package/dist/esm/clusters/unit-localization.d.ts +51 -13
  663. package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
  664. package/dist/esm/clusters/unit-localization.js +23 -5
  665. package/dist/esm/clusters/unit-localization.js.map +1 -1
  666. package/dist/esm/clusters/valve-configuration-and-control.d.ts.map +1 -1
  667. package/dist/esm/clusters/valve-configuration-and-control.js +8 -12
  668. package/dist/esm/clusters/valve-configuration-and-control.js.map +1 -1
  669. package/dist/esm/clusters/water-heater-management.d.ts +2 -14
  670. package/dist/esm/clusters/water-heater-management.d.ts.map +1 -1
  671. package/dist/esm/clusters/water-heater-management.js +5 -9
  672. package/dist/esm/clusters/water-heater-management.js.map +1 -1
  673. package/dist/esm/clusters/water-heater-mode.d.ts +9 -0
  674. package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -1
  675. package/dist/esm/clusters/water-heater-mode.js +3 -0
  676. package/dist/esm/clusters/water-heater-mode.js.map +1 -1
  677. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +57 -72
  678. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  679. package/dist/esm/clusters/wi-fi-network-diagnostics.js +20 -26
  680. package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
  681. package/dist/esm/clusters/wi-fi-network-management.d.ts +39 -1
  682. package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -1
  683. package/dist/esm/clusters/wi-fi-network-management.js +22 -3
  684. package/dist/esm/clusters/wi-fi-network-management.js.map +1 -1
  685. package/dist/esm/clusters/window-covering.d.ts +105 -3
  686. package/dist/esm/clusters/window-covering.d.ts.map +1 -1
  687. package/dist/esm/clusters/window-covering.js +35 -1
  688. package/dist/esm/clusters/window-covering.js.map +1 -1
  689. package/dist/esm/globals/Currency.d.ts +27 -0
  690. package/dist/esm/globals/Currency.d.ts.map +1 -0
  691. package/dist/esm/globals/Currency.js +15 -0
  692. package/dist/esm/globals/Currency.js.map +6 -0
  693. package/dist/esm/globals/Locationdesc.d.ts +7 -7
  694. package/dist/esm/globals/Locationdesc.js +5 -5
  695. package/dist/esm/globals/MeasurementAccuracy.d.ts +5 -5
  696. package/dist/esm/globals/MeasurementAccuracy.js +3 -3
  697. package/dist/esm/globals/MeasurementAccuracyRange.d.ts +10 -10
  698. package/dist/esm/globals/MeasurementAccuracyRange.js +8 -8
  699. package/dist/esm/globals/MeasurementType.d.ts +14 -2
  700. package/dist/esm/globals/MeasurementType.d.ts.map +1 -1
  701. package/dist/esm/globals/MeasurementType.js +3 -0
  702. package/dist/esm/globals/MeasurementType.js.map +1 -1
  703. package/dist/esm/globals/Namespace.d.ts +13 -3
  704. package/dist/esm/globals/Namespace.d.ts.map +1 -1
  705. package/dist/esm/globals/Namespace.js.map +1 -1
  706. package/dist/esm/globals/Price.d.ts +30 -0
  707. package/dist/esm/globals/Price.d.ts.map +1 -0
  708. package/dist/esm/globals/Price.js +13 -0
  709. package/dist/esm/globals/Price.js.map +6 -0
  710. package/dist/esm/globals/Priority.d.ts +1 -1
  711. package/dist/esm/globals/Semtag.d.ts +9 -9
  712. package/dist/esm/globals/Semtag.js +7 -7
  713. package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  714. package/dist/esm/globals/Status.d.ts +24 -5
  715. package/dist/esm/globals/Status.d.ts.map +1 -1
  716. package/dist/esm/globals/Status.js +3 -0
  717. package/dist/esm/globals/Status.js.map +1 -1
  718. package/dist/esm/globals/ThreeLevelAuto.d.ts +33 -0
  719. package/dist/esm/globals/ThreeLevelAuto.d.ts.map +1 -0
  720. package/dist/esm/globals/ThreeLevelAuto.js +16 -0
  721. package/dist/esm/globals/ThreeLevelAuto.js.map +6 -0
  722. package/dist/esm/globals/WildcardPathFlags.d.ts +2 -2
  723. package/dist/esm/globals/WildcardPathFlags.js +1 -1
  724. package/dist/esm/globals/index.d.ts +3 -1
  725. package/dist/esm/globals/index.d.ts.map +1 -1
  726. package/dist/esm/globals/index.js +3 -1
  727. package/dist/esm/globals/index.js.map +1 -1
  728. package/package.json +5 -5
  729. package/src/cluster/mutation/{ElementModifier.ts → ClusterTypeModifier.ts} +9 -9
  730. package/src/cluster/mutation/MutableCluster.ts +14 -14
  731. package/src/cluster/mutation/index.ts +1 -1
  732. package/src/clusters/access-control.ts +26 -21
  733. package/src/clusters/account-login.ts +16 -16
  734. package/src/clusters/actions.ts +36 -5
  735. package/src/clusters/administrator-commissioning.ts +9 -8
  736. package/src/clusters/air-quality.ts +1 -1
  737. package/src/clusters/alarm-base.ts +2 -2
  738. package/src/clusters/application-launcher.ts +7 -3
  739. package/src/clusters/basic-information.ts +23 -18
  740. package/src/clusters/boolean-state-configuration.ts +3 -3
  741. package/src/clusters/bridged-device-basic-information.ts +24 -6
  742. package/src/clusters/channel.ts +4 -0
  743. package/src/clusters/color-control.ts +53 -69
  744. package/src/clusters/commissioner-control.ts +9 -5
  745. package/src/clusters/concentration-measurement.ts +12 -13
  746. package/src/clusters/content-control.ts +8 -6
  747. package/src/clusters/content-launcher.ts +2 -2
  748. package/src/clusters/descriptor.ts +25 -7
  749. package/src/clusters/device-energy-management-mode.ts +3 -0
  750. package/src/clusters/device-energy-management.ts +63 -13
  751. package/src/clusters/dishwasher-alarm.ts +1 -1
  752. package/src/clusters/dishwasher-mode.ts +3 -0
  753. package/src/clusters/door-lock.ts +102 -126
  754. package/src/clusters/ecosystem-information.ts +59 -31
  755. package/src/clusters/electrical-energy-measurement.ts +110 -17
  756. package/src/clusters/electrical-power-measurement.ts +116 -28
  757. package/src/clusters/energy-evse-mode.ts +3 -0
  758. package/src/clusters/energy-evse.ts +33 -38
  759. package/src/clusters/energy-preference.ts +3 -3
  760. package/src/clusters/ethernet-network-diagnostics.ts +21 -25
  761. package/src/clusters/fan-control.ts +109 -71
  762. package/src/clusters/flow-measurement.ts +1 -1
  763. package/src/clusters/general-commissioning.ts +43 -28
  764. package/src/clusters/general-diagnostics.ts +14 -14
  765. package/src/clusters/group-key-management.ts +15 -12
  766. package/src/clusters/groups.ts +1 -8
  767. package/src/clusters/icd-management.ts +213 -55
  768. package/src/clusters/identify.ts +13 -2
  769. package/src/clusters/illuminance-measurement.ts +1 -1
  770. package/src/clusters/index.ts +1 -5
  771. package/src/clusters/joint-fabric-administrator.ts +470 -0
  772. package/src/clusters/joint-fabric-datastore.ts +1433 -223
  773. package/src/clusters/label.ts +3 -2
  774. package/src/clusters/laundry-washer-controls.ts +4 -4
  775. package/src/clusters/laundry-washer-mode.ts +2 -2
  776. package/src/clusters/level-control.ts +9 -10
  777. package/src/clusters/media-playback.ts +45 -4
  778. package/src/clusters/messages.ts +3 -3
  779. package/src/clusters/microwave-oven-control.ts +4 -4
  780. package/src/clusters/microwave-oven-mode.ts +3 -0
  781. package/src/clusters/mode-base.ts +15 -2
  782. package/src/clusters/mode-select.ts +3 -3
  783. package/src/clusters/network-commissioning.ts +57 -31
  784. package/src/clusters/occupancy-sensing.ts +6 -8
  785. package/src/clusters/on-off.ts +4 -4
  786. package/src/clusters/operational-credentials.ts +336 -53
  787. package/src/clusters/operational-state.ts +7 -10
  788. package/src/clusters/ota-software-update-provider.ts +27 -11
  789. package/src/clusters/ota-software-update-requestor.ts +6 -5
  790. package/src/clusters/oven-cavity-operational-state.ts +3 -3
  791. package/src/clusters/oven-mode.ts +53 -1
  792. package/src/clusters/power-source.ts +6 -2
  793. package/src/clusters/pressure-measurement.ts +10 -7
  794. package/src/clusters/pump-configuration-and-control.ts +16 -13
  795. package/src/clusters/refrigerator-alarm.ts +1 -1
  796. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +3 -0
  797. package/src/clusters/resource-monitoring.ts +1 -1
  798. package/src/clusters/rvc-clean-mode.ts +10 -2
  799. package/src/clusters/rvc-operational-state.ts +70 -15
  800. package/src/clusters/rvc-run-mode.ts +3 -0
  801. package/src/clusters/scenes-management.ts +8 -31
  802. package/src/clusters/service-area.ts +10 -12
  803. package/src/clusters/smoke-co-alarm.ts +4 -9
  804. package/src/clusters/software-diagnostics.ts +17 -17
  805. package/src/clusters/switch.ts +11 -10
  806. package/src/clusters/temperature-control.ts +7 -4
  807. package/src/clusters/thermostat-user-interface-configuration.ts +2 -10
  808. package/src/clusters/thermostat.ts +138 -155
  809. package/src/clusters/thread-border-router-management.ts +6 -6
  810. package/src/clusters/thread-network-diagnostics.ts +171 -181
  811. package/src/clusters/thread-network-directory.ts +5 -5
  812. package/src/clusters/time-synchronization.ts +56 -44
  813. package/src/clusters/unit-localization.ts +24 -5
  814. package/src/clusters/valve-configuration-and-control.ts +8 -12
  815. package/src/clusters/water-heater-management.ts +5 -9
  816. package/src/clusters/water-heater-mode.ts +3 -0
  817. package/src/clusters/wi-fi-network-diagnostics.ts +23 -29
  818. package/src/clusters/wi-fi-network-management.ts +22 -3
  819. package/src/clusters/window-covering.ts +35 -1
  820. package/src/globals/Currency.ts +32 -0
  821. package/src/globals/Locationdesc.ts +7 -7
  822. package/src/globals/MeasurementAccuracy.ts +5 -5
  823. package/src/globals/MeasurementAccuracyRange.ts +10 -10
  824. package/src/globals/MeasurementType.ts +17 -2
  825. package/src/globals/Namespace.ts +13 -3
  826. package/src/globals/Price.ts +30 -0
  827. package/src/globals/Priority.ts +1 -1
  828. package/src/globals/Semtag.ts +9 -9
  829. package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
  830. package/src/globals/Status.ts +27 -5
  831. package/src/globals/ThreeLevelAuto.ts +37 -0
  832. package/src/globals/WildcardPathFlags.ts +2 -2
  833. package/src/globals/index.ts +3 -1
  834. package/dist/cjs/cluster/mutation/ElementModifier.d.ts.map +0 -1
  835. package/dist/cjs/clusters/ballast-configuration.d.ts +0 -243
  836. package/dist/cjs/clusters/ballast-configuration.d.ts.map +0 -1
  837. package/dist/cjs/clusters/ballast-configuration.js +0 -253
  838. package/dist/cjs/clusters/ballast-configuration.js.map +0 -6
  839. package/dist/cjs/clusters/joint-fabric-pki.d.ts +0 -172
  840. package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +0 -1
  841. package/dist/cjs/clusters/joint-fabric-pki.js +0 -120
  842. package/dist/cjs/clusters/joint-fabric-pki.js.map +0 -6
  843. package/dist/cjs/clusters/proxy-configuration.d.ts +0 -79
  844. package/dist/cjs/clusters/proxy-configuration.d.ts.map +0 -1
  845. package/dist/cjs/clusters/proxy-configuration.js +0 -73
  846. package/dist/cjs/clusters/proxy-configuration.js.map +0 -6
  847. package/dist/cjs/clusters/proxy-discovery.d.ts +0 -98
  848. package/dist/cjs/clusters/proxy-discovery.d.ts.map +0 -1
  849. package/dist/cjs/clusters/proxy-discovery.js +0 -79
  850. package/dist/cjs/clusters/proxy-discovery.js.map +0 -6
  851. package/dist/cjs/clusters/valid-proxies.d.ts +0 -84
  852. package/dist/cjs/clusters/valid-proxies.d.ts.map +0 -1
  853. package/dist/cjs/clusters/valid-proxies.js +0 -68
  854. package/dist/cjs/clusters/valid-proxies.js.map +0 -6
  855. package/dist/cjs/globals/Tod.d.ts +0 -41
  856. package/dist/cjs/globals/Tod.d.ts.map +0 -1
  857. package/dist/cjs/globals/Tod.js.map +0 -6
  858. package/dist/esm/cluster/mutation/ElementModifier.d.ts.map +0 -1
  859. package/dist/esm/clusters/ballast-configuration.d.ts +0 -243
  860. package/dist/esm/clusters/ballast-configuration.d.ts.map +0 -1
  861. package/dist/esm/clusters/ballast-configuration.js +0 -233
  862. package/dist/esm/clusters/ballast-configuration.js.map +0 -6
  863. package/dist/esm/clusters/joint-fabric-pki.d.ts +0 -172
  864. package/dist/esm/clusters/joint-fabric-pki.d.ts.map +0 -1
  865. package/dist/esm/clusters/joint-fabric-pki.js +0 -100
  866. package/dist/esm/clusters/joint-fabric-pki.js.map +0 -6
  867. package/dist/esm/clusters/proxy-configuration.d.ts +0 -79
  868. package/dist/esm/clusters/proxy-configuration.d.ts.map +0 -1
  869. package/dist/esm/clusters/proxy-configuration.js +0 -53
  870. package/dist/esm/clusters/proxy-configuration.js.map +0 -6
  871. package/dist/esm/clusters/proxy-discovery.d.ts +0 -98
  872. package/dist/esm/clusters/proxy-discovery.d.ts.map +0 -1
  873. package/dist/esm/clusters/proxy-discovery.js +0 -59
  874. package/dist/esm/clusters/proxy-discovery.js.map +0 -6
  875. package/dist/esm/clusters/valid-proxies.d.ts +0 -84
  876. package/dist/esm/clusters/valid-proxies.d.ts.map +0 -1
  877. package/dist/esm/clusters/valid-proxies.js +0 -48
  878. package/dist/esm/clusters/valid-proxies.js.map +0 -6
  879. package/dist/esm/globals/Tod.d.ts +0 -41
  880. package/dist/esm/globals/Tod.d.ts.map +0 -1
  881. package/dist/esm/globals/Tod.js +0 -29
  882. package/dist/esm/globals/Tod.js.map +0 -6
  883. package/src/clusters/ballast-configuration.ts +0 -268
  884. package/src/clusters/joint-fabric-pki.ts +0 -200
  885. package/src/clusters/proxy-configuration.ts +0 -77
  886. package/src/clusters/proxy-discovery.ts +0 -90
  887. package/src/clusters/valid-proxies.ts +0 -90
  888. package/src/globals/Tod.ts +0 -49
@@ -7,78 +7,163 @@
7
7
  /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
8
 
9
9
  import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
10
- import { FabricScopedAttribute, Command, TlvNoResponse } from "../cluster/Cluster.js";
10
+ import { Attribute, Command, TlvNoResponse } from "../cluster/Cluster.js";
11
11
  import { TlvByteString, TlvString } from "../tlv/TlvString.js";
12
12
  import { AccessLevel } from "#model";
13
13
  import { TlvNodeId } from "../datatype/NodeId.js";
14
14
  import { TlvVendorId } from "../datatype/VendorId.js";
15
15
  import { TlvArray } from "../tlv/TlvArray.js";
16
- import { GroupKeyManagement } from "./group-key-management.js";
17
- import { TlvField, TlvObject } from "../tlv/TlvObject.js";
18
- import { TlvUInt64, TlvUInt16, TlvEnum, TlvEpochS } from "../tlv/TlvNumber.js";
19
- import { AccessControl } from "./access-control.js";
20
- import { TlvFabricIndex } from "../datatype/FabricIndex.js";
16
+ import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
17
+ import { TlvUInt16, TlvEnum, TlvEpochUs, TlvUInt64, TlvEpochS } from "../tlv/TlvNumber.js";
18
+ import { TlvNullable } from "../tlv/TlvNullable.js";
21
19
  import { TypeFromSchema } from "../tlv/TlvSchema.js";
20
+ import { Status } from "../globals/Status.js";
22
21
  import { TlvEndpointNumber } from "../datatype/EndpointNumber.js";
23
22
  import { TlvGroupId } from "../datatype/GroupId.js";
24
- import { Binding } from "./binding.js";
25
- import { TlvNoArguments } from "../tlv/TlvNoArguments.js";
23
+ import { TlvClusterId } from "../datatype/ClusterId.js";
24
+ import { TlvSubjectId } from "../datatype/SubjectId.js";
25
+ import { TlvDeviceTypeId } from "../datatype/DeviceTypeId.js";
26
26
  import { Identity } from "#general";
27
27
  import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
28
28
 
29
29
  export namespace JointFabricDatastore {
30
+ /**
31
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.16
32
+ */
33
+ export enum DatastoreGroupKeySecurityPolicy {
34
+ /**
35
+ * Message counter synchronization using trust-first
36
+ */
37
+ TrustFirst = 0
38
+ }
39
+
40
+ /**
41
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.17
42
+ */
43
+ export enum DatastoreGroupKeyMulticastPolicy {
44
+ /**
45
+ * Indicates filtering of multicast messages for a specific Group ID
46
+ */
47
+ PerGroupId = 0,
48
+
49
+ /**
50
+ * Indicates not filtering of multicast messages
51
+ */
52
+ AllNodes = 1
53
+ }
54
+
55
+ /**
56
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.18
57
+ */
58
+ export const TlvDatastoreGroupKeySet = TlvObject({
59
+ groupKeySetId: TlvField(0, TlvUInt16),
60
+ groupKeySecurityPolicy: TlvField(1, TlvEnum<DatastoreGroupKeySecurityPolicy>()),
61
+ epochKey0: TlvField(2, TlvNullable(TlvByteString.bound({ length: 16 }))),
62
+ epochStartTime0: TlvField(3, TlvNullable(TlvEpochUs)),
63
+ epochKey1: TlvField(4, TlvNullable(TlvByteString.bound({ length: 16 }))),
64
+ epochStartTime1: TlvField(5, TlvNullable(TlvEpochUs)),
65
+ epochKey2: TlvField(6, TlvNullable(TlvByteString.bound({ length: 16 }))),
66
+ epochStartTime2: TlvField(7, TlvNullable(TlvEpochUs)),
67
+ groupKeyMulticastPolicy: TlvOptionalField(8, TlvEnum<DatastoreGroupKeyMulticastPolicy>())
68
+ });
69
+
70
+ /**
71
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.18
72
+ */
73
+ export interface DatastoreGroupKeySet extends TypeFromSchema<typeof TlvDatastoreGroupKeySet> {}
74
+
30
75
  /**
31
76
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.4
32
77
  */
78
+ export enum DatastoreAccessControlEntryPrivilege {
79
+ /**
80
+ * Can read and observe all (except Access Control Cluster)
81
+ */
82
+ View = 1,
83
+
84
+ /**
85
+ * @deprecated
86
+ */
87
+ ProxyView = 2,
88
+
89
+ /**
90
+ * View privileges, and can perform the primary function of this Node (except Access Control Cluster)
91
+ */
92
+ Operate = 3,
93
+
94
+ /**
95
+ * Operate privileges, and can modify persistent configuration of this Node (except Access Control Cluster)
96
+ */
97
+ Manage = 4,
98
+
99
+ /**
100
+ * Manage privileges, and can observe and modify the Access Control Cluster
101
+ */
102
+ Administer = 5
103
+ }
104
+
105
+ /**
106
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5
107
+ */
33
108
  export const TlvDatastoreGroupInformationEntry = TlvObject({
34
109
  /**
35
110
  * The unique identifier for the group.
36
111
  *
37
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.1
112
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.1
38
113
  */
39
114
  groupId: TlvField(0, TlvUInt64),
40
115
 
41
116
  /**
42
117
  * The friendly name for the group.
43
118
  *
44
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.2
119
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.2
45
120
  */
46
121
  friendlyName: TlvField(1, TlvString.bound({ maxLength: 32 })),
47
122
 
48
123
  /**
49
124
  * The unique identifier for the group key set.
50
125
  *
51
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.3
126
+ * This value may be null when multicast communication is not used for the group. When GroupPermission is Admin
127
+ * or Manage, this value shall be null.
128
+ *
129
+ * A value of 0 is not allowed since this value is reserved for IPK and the group entry for this value is not
130
+ * managed by the Datastore.
131
+ *
132
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.3
52
133
  */
53
- groupKeySetId: TlvField(2, TlvUInt16.bound({ min: 1 })),
134
+ groupKeySetId: TlvField(2, TlvNullable(TlvUInt16.bound({ min: 1, max: 65534 }))),
54
135
 
55
136
  /**
56
137
  * CAT value for this group. This is used for control of individual members of a group (non-broadcast commands).
57
138
  *
58
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.4
139
+ * Allowable values include the range 0x0000 to 0xEFFF, and the Administrator CAT and Anchor CAT values.
140
+ *
141
+ * This value may be null when unicast communication is not used for the group.
142
+ *
143
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.4
59
144
  */
60
- groupCat: TlvField(3, TlvUInt16.bound({ min: 1 })),
145
+ groupCat: TlvField(3, TlvNullable(TlvUInt16)),
61
146
 
62
147
  /**
63
148
  * Current version number for this CAT.
64
149
  *
65
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.5
150
+ * This value shall be null when GroupCAT value is null.
151
+ *
152
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.5
66
153
  */
67
- groupCatVersion: TlvField(4, TlvUInt16.bound({ min: 1 })),
154
+ groupCatVersion: TlvField(4, TlvNullable(TlvUInt16.bound({ min: 1, max: 65534 }))),
68
155
 
69
156
  /**
70
157
  * The permission level associated with ACL entries for this group. There should be only one Administrator group
71
158
  * per fabric, and at most one Manage group per Ecosystem (Vendor Entry).
72
159
  *
73
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.6
160
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.6
74
161
  */
75
- groupPermission: TlvField(5, TlvEnum<AccessControl.AccessControlEntryPrivilege>()),
76
-
77
- fabricIndex: TlvField(254, TlvFabricIndex)
162
+ groupPermission: TlvField(5, TlvEnum<DatastoreAccessControlEntryPrivilege>())
78
163
  });
79
164
 
80
165
  /**
81
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4
166
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.5
82
167
  */
83
168
  export interface DatastoreGroupInformationEntry extends TypeFromSchema<typeof TlvDatastoreGroupInformationEntry> {}
84
169
 
@@ -99,7 +184,12 @@ export namespace JointFabricDatastore {
99
184
  /**
100
185
  * Target device delete operation is pending
101
186
  */
102
- DeletePending = 2
187
+ DeletePending = 2,
188
+
189
+ /**
190
+ * Target device operation has failed
191
+ */
192
+ CommitFailed = 3
103
193
  }
104
194
 
105
195
  /**
@@ -120,7 +210,13 @@ export namespace JointFabricDatastore {
120
210
  */
121
211
  updateTimestamp: TlvField(1, TlvEpochS),
122
212
 
123
- fabricIndex: TlvField(254, TlvFabricIndex)
213
+ /**
214
+ * This field shall contain the StatusCode of the last failed operation where the State field is set to
215
+ * CommitFailure.
216
+ *
217
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.2.3
218
+ */
219
+ failureCode: TlvField(2, TlvEnum<Status>())
124
220
  });
125
221
 
126
222
  /**
@@ -129,369 +225,824 @@ export namespace JointFabricDatastore {
129
225
  export interface DatastoreStatusEntry extends TypeFromSchema<typeof TlvDatastoreStatusEntry> {}
130
226
 
131
227
  /**
132
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.3
228
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.14
133
229
  */
134
- export const TlvDatastoreNodeKeyEntry = TlvObject({
135
- groupKeySetId: TlvField(0, TlvUInt16),
230
+ export const TlvDatastoreNodeInformationEntry = TlvObject({
231
+ /**
232
+ * The unique identifier for the node.
233
+ *
234
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.14.1
235
+ */
236
+ nodeId: TlvField(1, TlvNodeId),
136
237
 
137
238
  /**
138
- * Indicates whether entry in this list is pending, committed, or delete-pending.
239
+ * Friendly name for this node which is not propagated to nodes.
139
240
  *
140
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.3.2
241
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.14.2
141
242
  */
142
- statusEntry: TlvField(1, TlvDatastoreStatusEntry),
243
+ friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
143
244
 
144
- fabricIndex: TlvField(254, TlvFabricIndex)
245
+ /**
246
+ * Set to Pending prior to completing commissioning, set to Committed after commissioning complete is
247
+ * successful, or set to CommitFailed if commissioning failed with the FailureCode Field set to the error.
248
+ *
249
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.14.3
250
+ */
251
+ commissioningStatusEntry: TlvField(3, TlvDatastoreStatusEntry)
145
252
  });
146
253
 
147
254
  /**
148
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.3
255
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.14
149
256
  */
150
- export interface DatastoreNodeKeyEntry extends TypeFromSchema<typeof TlvDatastoreNodeKeyEntry> {}
257
+ export interface DatastoreNodeInformationEntry extends TypeFromSchema<typeof TlvDatastoreNodeInformationEntry> {}
151
258
 
152
259
  /**
153
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.7
260
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15
154
261
  */
155
- export const TlvDatastoreAclEntry = TlvObject({
262
+ export const TlvDatastoreAdministratorInformationEntry = TlvObject({
156
263
  /**
157
- * The unique identifier for the ACL entry in the Datastore’s list of DatastoreACLEntry.
264
+ * The unique identifier for the node.
158
265
  *
159
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.1
266
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15.1
160
267
  */
161
- listId: TlvField(0, TlvUInt16),
268
+ nodeId: TlvField(1, TlvNodeId),
162
269
 
163
270
  /**
164
- * The Access Control Entry structure.
271
+ * Friendly name for this node which is not propagated to nodes.
165
272
  *
166
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.2
273
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15.2
167
274
  */
168
- aclEntry: TlvField(1, AccessControl.TlvAccessControlEntry),
275
+ friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
169
276
 
170
277
  /**
171
- * Indicates whether entry in this list is pending, committed, or delete-pending.
278
+ * The Vendor ID for the node.
172
279
  *
173
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.3
280
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15.3
174
281
  */
175
- statusEntry: TlvField(2, TlvDatastoreStatusEntry),
282
+ vendorId: TlvField(3, TlvVendorId),
176
283
 
177
- fabricIndex: TlvField(254, TlvFabricIndex)
284
+ /**
285
+ * The ICAC used to issue the NOC.
286
+ *
287
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15.4
288
+ */
289
+ icac: TlvField(4, TlvByteString.bound({ maxLength: 400 }))
178
290
  });
179
291
 
180
292
  /**
181
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.7
293
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.15
182
294
  */
183
- export interface DatastoreAclEntry extends TypeFromSchema<typeof TlvDatastoreAclEntry> {}
295
+ export interface DatastoreAdministratorInformationEntry extends TypeFromSchema<typeof TlvDatastoreAdministratorInformationEntry> {}
184
296
 
185
297
  /**
186
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.5
298
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8
187
299
  */
188
- export const TlvDatastoreGroupIdEntry = TlvObject({
300
+ export const TlvDatastoreEndpointGroupIdEntry = TlvObject({
189
301
  /**
190
- * The unique identifier for the group.
302
+ * The unique identifier for the node.
191
303
  *
192
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.1
304
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.1
193
305
  */
194
- groupId: TlvField(0, TlvGroupId),
306
+ nodeId: TlvField(0, TlvNodeId),
195
307
 
196
308
  /**
197
- * Indicates whether entry in this list is pending, committed, or delete-pending.
309
+ * The unique identifier for the endpoint.
198
310
  *
199
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.5.2
311
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.2
312
+ */
313
+ endpointId: TlvField(1, TlvEndpointNumber),
314
+
315
+ /**
316
+ * The unique identifier for the group.
317
+ *
318
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.3
200
319
  */
201
- statusEntry: TlvField(1, TlvDatastoreStatusEntry),
320
+ groupId: TlvField(2, TlvGroupId),
202
321
 
203
- fabricIndex: TlvField(254, TlvFabricIndex)
322
+ /**
323
+ * Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.
324
+ *
325
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.4
326
+ */
327
+ statusEntry: TlvField(3, TlvDatastoreStatusEntry)
204
328
  });
205
329
 
206
330
  /**
207
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.5
331
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.8
208
332
  */
209
- export interface DatastoreGroupIdEntry extends TypeFromSchema<typeof TlvDatastoreGroupIdEntry> {}
333
+ export interface DatastoreEndpointGroupIdEntry extends TypeFromSchema<typeof TlvDatastoreEndpointGroupIdEntry> {}
210
334
 
211
335
  /**
212
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.7
336
+ * The DatastoreBindingTargetStruct represents a Binding on a specific Node (identified by the
337
+ * DatastoreEndpointBindingEntryStruct) which is managed by the Datastore. Only bindings on a specific Node that are
338
+ * fabric-scoped to the Joint Fabric are managed by the Datastore. As a result, references to nodes and groups are
339
+ * specific to the Joint Fabric.
340
+ *
341
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6
213
342
  */
214
- export const TlvDatastoreBindingEntry = TlvObject({
343
+ export const TlvDatastoreBindingTarget = TlvObject({
215
344
  /**
216
- * The unique identifier for the Binding entry in the Datastore’s list of DatastoreBindingEntry.
345
+ * This field is the binding’s remote target node ID. If the Endpoint field is present, this field shall be
346
+ * present.
217
347
  *
218
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.7.1
348
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.1
219
349
  */
220
- listId: TlvField(0, TlvUInt16),
350
+ node: TlvOptionalField(1, TlvNodeId),
221
351
 
222
352
  /**
223
- * The binding target structure.
353
+ * This field is the binding’s target group ID that represents remote endpoints. If the Endpoint field is
354
+ * present, this field shall NOT be present.
224
355
  *
225
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.7.2
356
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.2
226
357
  */
227
- binding: TlvField(1, Binding.TlvTarget),
358
+ group: TlvOptionalField(2, TlvGroupId),
228
359
 
229
360
  /**
230
- * Indicates whether entry in this list is pending, committed, or delete-pending.
361
+ * This field is the binding’s remote endpoint that the local endpoint is bound to. If the Group field is
362
+ * present, this field shall NOT be present.
231
363
  *
232
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.7.3
364
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.3
233
365
  */
234
- statusEntry: TlvField(2, TlvDatastoreStatusEntry),
366
+ endpoint: TlvOptionalField(3, TlvEndpointNumber),
235
367
 
236
- fabricIndex: TlvField(254, TlvFabricIndex)
368
+ /**
369
+ * This field is the binding’s cluster ID (client & server) on the local and target endpoint(s). If this field
370
+ * is present, the client cluster shall also exist on this endpoint (with this Binding cluster). If this field
371
+ * is present, the target shall be this cluster on the target endpoint(s).
372
+ *
373
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.4
374
+ */
375
+ cluster: TlvOptionalField(4, TlvClusterId)
237
376
  });
238
377
 
239
378
  /**
240
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.4.7
379
+ * The DatastoreBindingTargetStruct represents a Binding on a specific Node (identified by the
380
+ * DatastoreEndpointBindingEntryStruct) which is managed by the Datastore. Only bindings on a specific Node that are
381
+ * fabric-scoped to the Joint Fabric are managed by the Datastore. As a result, references to nodes and groups are
382
+ * specific to the Joint Fabric.
383
+ *
384
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.6
241
385
  */
242
- export interface DatastoreBindingEntry extends TypeFromSchema<typeof TlvDatastoreBindingEntry> {}
386
+ export interface DatastoreBindingTarget extends TypeFromSchema<typeof TlvDatastoreBindingTarget> {}
243
387
 
244
388
  /**
245
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6
389
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7
246
390
  */
247
- export const TlvDatastoreEndpointEntry = TlvObject({
391
+ export const TlvDatastoreEndpointBindingEntry = TlvObject({
248
392
  /**
249
- * The unique identifier for the endpoint.
393
+ * The unique identifier for the node.
250
394
  *
251
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.1
395
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.1
252
396
  */
253
- endpointId: TlvField(0, TlvEndpointNumber),
397
+ nodeId: TlvField(0, TlvNodeId),
254
398
 
255
399
  /**
256
- * The unique identifier for the node.
400
+ * The unique identifier for the endpoint.
257
401
  *
258
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.2
402
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.2
259
403
  */
260
- nodeId: TlvField(1, TlvNodeId),
404
+ endpointId: TlvField(1, TlvEndpointNumber),
261
405
 
262
406
  /**
263
- * Friendly name for this endpoint which is propagated to nodes. Any changes to Friendly Name or Group Id List
264
- * (add/remove entry) must follow the pending→committed workflow with current state reflected in the Status
265
- * Entry.
407
+ * The unique identifier for the entry in the Datastore’s EndpointBindingList attribute, which is a list of
408
+ * DatastoreEndpointBindingEntryStruct.
266
409
  *
267
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.3
410
+ * This field is used to uniquely identify an entry in the EndpointBindingList attribute for the purpose of
411
+ * deletion (RemoveBindingFromEndpointForNode Command).
412
+ *
413
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.3
268
414
  */
269
- friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
415
+ listId: TlvField(2, TlvUInt16),
270
416
 
271
417
  /**
272
- * Indicates whether changes to Friendly Name are pending or committed.
418
+ * The binding target structure.
273
419
  *
274
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.4
420
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.4
275
421
  */
276
- statusEntry: TlvField(3, TlvDatastoreStatusEntry),
422
+ binding: TlvField(3, TlvDatastoreBindingTarget),
277
423
 
278
424
  /**
279
- * List of Group IDs that this endpoint is a member of. Any changes to Group Id List (add/remove entry) must
280
- * follow the pending→committed workflow with current state reflected in the Status Entry.
425
+ * Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.
281
426
  *
282
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.5
427
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7.5
283
428
  */
284
- groupIdList: TlvField(4, TlvArray(TlvDatastoreGroupIdEntry)),
429
+ statusEntry: TlvField(4, TlvDatastoreStatusEntry)
430
+ });
431
+
432
+ /**
433
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.7
434
+ */
435
+ export interface DatastoreEndpointBindingEntry extends TypeFromSchema<typeof TlvDatastoreEndpointBindingEntry> {}
285
436
 
437
+ /**
438
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.3
439
+ */
440
+ export const TlvDatastoreNodeKeySetEntry = TlvObject({
286
441
  /**
287
- * List of Binding Targets for this endpoint. Any changes to Binding List (add/remove entry) must follow the
288
- * pending→committed workflow with current state reflected in the Status Entry.
442
+ * The unique identifier for the node.
289
443
  *
290
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6.6
444
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.3.1
291
445
  */
292
- bindingList: TlvField(5, TlvArray(TlvDatastoreBindingEntry)),
446
+ nodeId: TlvField(0, TlvNodeId),
447
+
448
+ groupKeySetId: TlvField(1, TlvUInt16),
293
449
 
294
- fabricIndex: TlvField(254, TlvFabricIndex)
450
+ /**
451
+ * Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.
452
+ *
453
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.3.3
454
+ */
455
+ statusEntry: TlvField(2, TlvDatastoreStatusEntry)
295
456
  });
296
457
 
297
458
  /**
298
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.6
459
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.3
299
460
  */
300
- export interface DatastoreEndpointEntry extends TypeFromSchema<typeof TlvDatastoreEndpointEntry> {}
461
+ export interface DatastoreNodeKeySetEntry extends TypeFromSchema<typeof TlvDatastoreNodeKeySetEntry> {}
301
462
 
302
463
  /**
303
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8
464
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.10
304
465
  */
305
- export const TlvDatastoreNodeInformationEntry = TlvObject({
466
+ export enum DatastoreAccessControlEntryAuthMode {
306
467
  /**
307
- * The unique identifier for the node.
308
- *
309
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.1
468
+ * Passcode authenticated session
310
469
  */
311
- nodeId: TlvField(1, TlvNodeId),
470
+ Pase = 1,
312
471
 
313
472
  /**
314
- * Friendly name for this node which is not propagated to nodes.
315
- *
316
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.2
473
+ * Certificate authenticated session
317
474
  */
318
- friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
475
+ Case = 2,
319
476
 
320
477
  /**
321
- * Set to pending prior to completing commissioning, and set to completed after commissioning complete is
322
- * successful.
323
- *
324
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.3
478
+ * Group authenticated session
325
479
  */
326
- commissioningStatusEntry: TlvField(3, TlvDatastoreStatusEntry),
480
+ Group = 3
481
+ }
482
+
483
+ /**
484
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.11
485
+ */
486
+ export const TlvDatastoreAccessControlTarget = TlvObject({
487
+ cluster: TlvField(0, TlvNullable(TlvClusterId)),
488
+ endpoint: TlvField(1, TlvNullable(TlvEndpointNumber)),
489
+ deviceType: TlvField(2, TlvNullable(TlvDeviceTypeId))
490
+ });
491
+
492
+ /**
493
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.11
494
+ */
495
+ export interface DatastoreAccessControlTarget extends TypeFromSchema<typeof TlvDatastoreAccessControlTarget> {}
496
+
497
+ /**
498
+ * The DatastoreAccessControlEntryStruct represents an ACL on a specific Node (identified by the
499
+ * DatastoreACLEntryStruct) which is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped
500
+ * to the Joint Fabric are managed by the Datastore. As a result, references to nodes and groups are specific to the
501
+ * Joint Fabric.
502
+ *
503
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.12
504
+ */
505
+ export const TlvDatastoreAccessControlEntry = TlvObject({
506
+ privilege: TlvField(1, TlvEnum<DatastoreAccessControlEntryPrivilege>()),
507
+ authMode: TlvField(2, TlvEnum<DatastoreAccessControlEntryAuthMode>()),
508
+ subjects: TlvField(3, TlvNullable(TlvArray(TlvSubjectId))),
509
+ targets: TlvField(4, TlvNullable(TlvArray(TlvDatastoreAccessControlTarget)))
510
+ });
511
+
512
+ /**
513
+ * The DatastoreAccessControlEntryStruct represents an ACL on a specific Node (identified by the
514
+ * DatastoreACLEntryStruct) which is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped
515
+ * to the Joint Fabric are managed by the Datastore. As a result, references to nodes and groups are specific to the
516
+ * Joint Fabric.
517
+ *
518
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.12
519
+ */
520
+ export interface DatastoreAccessControlEntry extends TypeFromSchema<typeof TlvDatastoreAccessControlEntry> {}
327
521
 
522
+ /**
523
+ * The DatastoreACLEntryStruct is a holder for an ACL (DatastoreAccessControlEntryStruct) on a specific Node which
524
+ * is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped to the Joint Fabric are managed
525
+ * by the Datastore. As a result, references to nodes and groups are specific to the Joint Fabric.
526
+ *
527
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13
528
+ */
529
+ export const TlvDatastoreAclEntry = TlvObject({
328
530
  /**
329
- * List of Key Set information for the given Node. Updates to the Group Key List must follow the
330
- * pending→committed workflow with current state reflected in the Status Entry for the corresponding entry in
331
- * the list.
531
+ * The unique identifier for the node.
332
532
  *
333
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.4
533
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13.1
334
534
  */
335
- nodeKeySetList: TlvField(4, TlvArray(TlvDatastoreNodeKeyEntry)),
535
+ nodeId: TlvField(0, TlvNodeId),
336
536
 
337
537
  /**
338
- * List of ACL entries. Group membership for this node is inferred from the ACLs. Client access to a Node
339
- * Information Entry will be determined from the ACL List. Any changes to ACL List (add/remove entry) must
340
- * follow the pending→committed workflow with current state reflected in the Status Entry for the corresponding
341
- * entry in the list.
538
+ * The unique identifier for the ACL entry in the Datastore’s list of DatastoreACLEntry.
342
539
  *
343
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.5
540
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13.2
344
541
  */
345
- aclList: TlvField(5, TlvArray(TlvDatastoreAclEntry)),
542
+ listId: TlvField(1, TlvUInt16),
346
543
 
347
544
  /**
348
- * The list of endpoints for this node. Any changes to Endpoint List (add/remove entry) must follow the
349
- * pending→committed workflow with current state reflected in the Status Entry for the corresponding entry in
350
- * the list.
545
+ * The Access Control Entry structure.
351
546
  *
352
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8.6
547
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13.3
353
548
  */
354
- endpointList: TlvField(6, TlvArray(TlvDatastoreEndpointEntry)),
549
+ aclEntry: TlvField(2, TlvDatastoreAccessControlEntry),
355
550
 
356
- fabricIndex: TlvField(254, TlvFabricIndex)
551
+ /**
552
+ * Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.
553
+ *
554
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13.4
555
+ */
556
+ statusEntry: TlvField(3, TlvDatastoreStatusEntry)
357
557
  });
358
558
 
359
559
  /**
360
- * @see {@link MatterSpecification.v141.Core} § 11.24.5.8
560
+ * The DatastoreACLEntryStruct is a holder for an ACL (DatastoreAccessControlEntryStruct) on a specific Node which
561
+ * is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped to the Joint Fabric are managed
562
+ * by the Datastore. As a result, references to nodes and groups are specific to the Joint Fabric.
563
+ *
564
+ * @see {@link MatterSpecification.v141.Core} § 11.24.5.13
361
565
  */
362
- export interface DatastoreNodeInformationEntry extends TypeFromSchema<typeof TlvDatastoreNodeInformationEntry> {}
566
+ export interface DatastoreAclEntry extends TypeFromSchema<typeof TlvDatastoreAclEntry> {}
363
567
 
364
568
  /**
569
+ * The DatastoreEndpointEntryStruct represents an Endpoint on a specific Node which is managed by the Datastore.
570
+ * Only Nodes on the Joint Fabric are managed by the Datastore. As a result, references to NodeID are specific to
571
+ * the Joint Fabric.
572
+ *
365
573
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9
366
574
  */
367
- export const TlvDatastoreAdministratorInformationEntry = TlvObject({
575
+ export const TlvDatastoreEndpointEntry = TlvObject({
368
576
  /**
369
- * The unique identifier for the node.
577
+ * The unique identifier for the endpoint.
370
578
  *
371
579
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9.1
372
580
  */
373
- nodeId: TlvField(1, TlvNodeId),
581
+ endpointId: TlvField(0, TlvEndpointNumber),
374
582
 
375
583
  /**
376
- * Friendly name for this node which is not propagated to nodes.
584
+ * The unique identifier for the node.
377
585
  *
378
586
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9.2
379
587
  */
380
- friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
588
+ nodeId: TlvField(1, TlvNodeId),
381
589
 
382
590
  /**
383
- * The Vendor ID for the node.
591
+ * Friendly name for this endpoint which is propagated to nodes. Any changes to Friendly Name or Group Id List
592
+ * (add/remove entry) must follow the pending→committed workflow with current state reflected in the Status
593
+ * Entry.
384
594
  *
385
595
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9.3
386
596
  */
387
- vendorId: TlvField(3, TlvVendorId),
597
+ friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
388
598
 
389
599
  /**
390
- * The ICAC used to issue the NOC.
600
+ * Indicates whether changes to Friendly Name are pending, committed, or commit-failed.
391
601
  *
392
602
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9.4
393
603
  */
394
- icac: TlvField(4, TlvByteString.bound({ maxLength: 400 })),
395
-
396
- fabricIndex: TlvField(254, TlvFabricIndex)
604
+ statusEntry: TlvField(3, TlvDatastoreStatusEntry)
397
605
  });
398
606
 
399
607
  /**
608
+ * The DatastoreEndpointEntryStruct represents an Endpoint on a specific Node which is managed by the Datastore.
609
+ * Only Nodes on the Joint Fabric are managed by the Datastore. As a result, references to NodeID are specific to
610
+ * the Joint Fabric.
611
+ *
400
612
  * @see {@link MatterSpecification.v141.Core} § 11.24.5.9
401
613
  */
402
- export interface DatastoreAdministratorInformationEntry extends TypeFromSchema<typeof TlvDatastoreAdministratorInformationEntry> {}
614
+ export interface DatastoreEndpointEntry extends TypeFromSchema<typeof TlvDatastoreEndpointEntry> {}
403
615
 
404
616
  /**
405
- * @see {@link Cluster}
617
+ * Input to the JointFabricDatastore addKeySet command
618
+ *
619
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.1
406
620
  */
407
- export const ClusterInstance = MutableCluster({
408
- id: 0x752,
409
- name: "JointFabricDatastore",
410
- revision: 1,
621
+ export const TlvAddKeySetRequest = TlvObject({ groupKeySet: TlvField(0, TlvDatastoreGroupKeySet) });
411
622
 
412
- attributes: {
413
- /**
414
- * This shall indicate the Anchor Root CA used to sign all NOC Issuers in the Joint Fabric. A null value
415
- * indicates that the Joint Fabric is not yet formed.
416
- *
417
- * @see {@link MatterSpecification.v141.Core} § 11.24.6.1
418
- */
419
- anchorRootCa: FabricScopedAttribute(
420
- 0x0,
421
- TlvByteString,
422
- { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
423
- ),
623
+ /**
624
+ * Input to the JointFabricDatastore addKeySet command
625
+ *
626
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.1
627
+ */
628
+ export interface AddKeySetRequest extends TypeFromSchema<typeof TlvAddKeySetRequest> {}
424
629
 
425
- /**
426
- * This shall indicate the Node identifier of the Joint Fabric Anchor Root CA.
427
- *
428
- * @see {@link MatterSpecification.v141.Core} § 11.24.6.2
429
- */
430
- anchorNodeId: FabricScopedAttribute(
630
+ /**
631
+ * Input to the JointFabricDatastore updateKeySet command
632
+ *
633
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.2
634
+ */
635
+ export const TlvUpdateKeySetRequest = TlvObject({ groupKeySet: TlvField(0, TlvDatastoreGroupKeySet) });
636
+
637
+ /**
638
+ * Input to the JointFabricDatastore updateKeySet command
639
+ *
640
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.2
641
+ */
642
+ export interface UpdateKeySetRequest extends TypeFromSchema<typeof TlvUpdateKeySetRequest> {}
643
+
644
+ /**
645
+ * Input to the JointFabricDatastore removeKeySet command
646
+ *
647
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.3
648
+ */
649
+ export const TlvRemoveKeySetRequest = TlvObject({ groupKeySetId: TlvField(0, TlvUInt16) });
650
+
651
+ /**
652
+ * Input to the JointFabricDatastore removeKeySet command
653
+ *
654
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.3
655
+ */
656
+ export interface RemoveKeySetRequest extends TypeFromSchema<typeof TlvRemoveKeySetRequest> {}
657
+
658
+ /**
659
+ * Input to the JointFabricDatastore addGroup command
660
+ *
661
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.4
662
+ */
663
+ export const TlvAddGroupRequest = TlvObject({
664
+ groupId: TlvField(0, TlvGroupId),
665
+ friendlyName: TlvField(1, TlvString.bound({ maxLength: 32 })),
666
+ groupKeySetId: TlvField(2, TlvNullable(TlvUInt16.bound({ min: 1, max: 65534 }))),
667
+ groupCat: TlvField(3, TlvNullable(TlvUInt16)),
668
+ groupCatVersion: TlvField(4, TlvNullable(TlvUInt16.bound({ min: 1, max: 65534 }))),
669
+ groupPermission: TlvField(5, TlvEnum<DatastoreAccessControlEntryPrivilege>())
670
+ });
671
+
672
+ /**
673
+ * Input to the JointFabricDatastore addGroup command
674
+ *
675
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.4
676
+ */
677
+ export interface AddGroupRequest extends TypeFromSchema<typeof TlvAddGroupRequest> {}
678
+
679
+ /**
680
+ * Input to the JointFabricDatastore updateGroup command
681
+ *
682
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.5
683
+ */
684
+ export const TlvUpdateGroupRequest = TlvObject({
685
+ groupId: TlvField(0, TlvGroupId),
686
+ friendlyName: TlvField(1, TlvNullable(TlvString.bound({ maxLength: 32 }))),
687
+ groupKeySetId: TlvField(2, TlvNullable(TlvUInt16.bound({ min: 1 }))),
688
+ groupCat: TlvField(3, TlvNullable(TlvUInt16)),
689
+ groupCatVersion: TlvField(4, TlvNullable(TlvUInt16.bound({ min: 1 }))),
690
+ groupPermission: TlvField(5, TlvEnum<DatastoreAccessControlEntryPrivilege>())
691
+ });
692
+
693
+ /**
694
+ * Input to the JointFabricDatastore updateGroup command
695
+ *
696
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.5
697
+ */
698
+ export interface UpdateGroupRequest extends TypeFromSchema<typeof TlvUpdateGroupRequest> {}
699
+
700
+ /**
701
+ * Input to the JointFabricDatastore removeGroup command
702
+ *
703
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.6
704
+ */
705
+ export const TlvRemoveGroupRequest = TlvObject({ groupId: TlvField(0, TlvGroupId) });
706
+
707
+ /**
708
+ * Input to the JointFabricDatastore removeGroup command
709
+ *
710
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.6
711
+ */
712
+ export interface RemoveGroupRequest extends TypeFromSchema<typeof TlvRemoveGroupRequest> {}
713
+
714
+ /**
715
+ * Input to the JointFabricDatastore addAdmin command
716
+ *
717
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.7
718
+ */
719
+ export const TlvAddAdminRequest = TlvObject({
720
+ nodeId: TlvField(1, TlvNodeId),
721
+ friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 })),
722
+ vendorId: TlvField(3, TlvVendorId),
723
+ icac: TlvField(4, TlvByteString.bound({ maxLength: 400 }))
724
+ });
725
+
726
+ /**
727
+ * Input to the JointFabricDatastore addAdmin command
728
+ *
729
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.7
730
+ */
731
+ export interface AddAdminRequest extends TypeFromSchema<typeof TlvAddAdminRequest> {}
732
+
733
+ /**
734
+ * Input to the JointFabricDatastore updateAdmin command
735
+ *
736
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.8
737
+ */
738
+ export const TlvUpdateAdminRequest = TlvObject({
739
+ nodeId: TlvField(0, TlvNullable(TlvNodeId)),
740
+ friendlyName: TlvField(1, TlvNullable(TlvString.bound({ maxLength: 32 }))),
741
+ icac: TlvField(2, TlvNullable(TlvByteString.bound({ maxLength: 400 })))
742
+ });
743
+
744
+ /**
745
+ * Input to the JointFabricDatastore updateAdmin command
746
+ *
747
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.8
748
+ */
749
+ export interface UpdateAdminRequest extends TypeFromSchema<typeof TlvUpdateAdminRequest> {}
750
+
751
+ /**
752
+ * Input to the JointFabricDatastore removeAdmin command
753
+ *
754
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.9
755
+ */
756
+ export const TlvRemoveAdminRequest = TlvObject({ nodeId: TlvField(0, TlvNodeId) });
757
+
758
+ /**
759
+ * Input to the JointFabricDatastore removeAdmin command
760
+ *
761
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.9
762
+ */
763
+ export interface RemoveAdminRequest extends TypeFromSchema<typeof TlvRemoveAdminRequest> {}
764
+
765
+ /**
766
+ * Input to the JointFabricDatastore addPendingNode command
767
+ *
768
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.10
769
+ */
770
+ export const TlvAddPendingNodeRequest = TlvObject({
771
+ nodeId: TlvField(0, TlvNodeId),
772
+ friendlyName: TlvField(1, TlvString.bound({ maxLength: 32 }))
773
+ });
774
+
775
+ /**
776
+ * Input to the JointFabricDatastore addPendingNode command
777
+ *
778
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.10
779
+ */
780
+ export interface AddPendingNodeRequest extends TypeFromSchema<typeof TlvAddPendingNodeRequest> {}
781
+
782
+ /**
783
+ * Input to the JointFabricDatastore refreshNode command
784
+ *
785
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.11
786
+ */
787
+ export const TlvRefreshNodeRequest = TlvObject({ nodeId: TlvField(0, TlvNodeId) });
788
+
789
+ /**
790
+ * Input to the JointFabricDatastore refreshNode command
791
+ *
792
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.11
793
+ */
794
+ export interface RefreshNodeRequest extends TypeFromSchema<typeof TlvRefreshNodeRequest> {}
795
+
796
+ /**
797
+ * Input to the JointFabricDatastore updateNode command
798
+ *
799
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.12
800
+ */
801
+ export const TlvUpdateNodeRequest = TlvObject({
802
+ nodeId: TlvField(0, TlvNodeId),
803
+ friendlyName: TlvField(1, TlvString.bound({ maxLength: 32 }))
804
+ });
805
+
806
+ /**
807
+ * Input to the JointFabricDatastore updateNode command
808
+ *
809
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.12
810
+ */
811
+ export interface UpdateNodeRequest extends TypeFromSchema<typeof TlvUpdateNodeRequest> {}
812
+
813
+ /**
814
+ * Input to the JointFabricDatastore removeNode command
815
+ *
816
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.13
817
+ */
818
+ export const TlvRemoveNodeRequest = TlvObject({ nodeId: TlvField(0, TlvNodeId) });
819
+
820
+ /**
821
+ * Input to the JointFabricDatastore removeNode command
822
+ *
823
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.13
824
+ */
825
+ export interface RemoveNodeRequest extends TypeFromSchema<typeof TlvRemoveNodeRequest> {}
826
+
827
+ /**
828
+ * Input to the JointFabricDatastore updateEndpointForNode command
829
+ *
830
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.14
831
+ */
832
+ export const TlvUpdateEndpointForNodeRequest = TlvObject({
833
+ endpointId: TlvField(0, TlvEndpointNumber),
834
+ nodeId: TlvField(1, TlvNodeId),
835
+ friendlyName: TlvField(2, TlvString.bound({ maxLength: 32 }))
836
+ });
837
+
838
+ /**
839
+ * Input to the JointFabricDatastore updateEndpointForNode command
840
+ *
841
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.14
842
+ */
843
+ export interface UpdateEndpointForNodeRequest extends TypeFromSchema<typeof TlvUpdateEndpointForNodeRequest> {}
844
+
845
+ /**
846
+ * Input to the JointFabricDatastore addGroupIdToEndpointForNode command
847
+ *
848
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.15
849
+ */
850
+ export const TlvAddGroupIdToEndpointForNodeRequest = TlvObject({
851
+ nodeId: TlvField(0, TlvNodeId),
852
+ endpointId: TlvField(1, TlvEndpointNumber),
853
+ groupId: TlvField(2, TlvGroupId)
854
+ });
855
+
856
+ /**
857
+ * Input to the JointFabricDatastore addGroupIdToEndpointForNode command
858
+ *
859
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.15
860
+ */
861
+ export interface AddGroupIdToEndpointForNodeRequest extends TypeFromSchema<typeof TlvAddGroupIdToEndpointForNodeRequest> {}
862
+
863
+ /**
864
+ * Input to the JointFabricDatastore removeGroupIdFromEndpointForNode command
865
+ *
866
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.16
867
+ */
868
+ export const TlvRemoveGroupIdFromEndpointForNodeRequest = TlvObject({
869
+ nodeId: TlvField(0, TlvNodeId),
870
+ endpointId: TlvField(1, TlvEndpointNumber),
871
+ groupId: TlvField(2, TlvGroupId)
872
+ });
873
+
874
+ /**
875
+ * Input to the JointFabricDatastore removeGroupIdFromEndpointForNode command
876
+ *
877
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.16
878
+ */
879
+ export interface RemoveGroupIdFromEndpointForNodeRequest extends TypeFromSchema<typeof TlvRemoveGroupIdFromEndpointForNodeRequest> {}
880
+
881
+ /**
882
+ * Input to the JointFabricDatastore addBindingToEndpointForNode command
883
+ *
884
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.17
885
+ */
886
+ export const TlvAddBindingToEndpointForNodeRequest = TlvObject({
887
+ nodeId: TlvField(0, TlvNodeId),
888
+ endpointId: TlvField(1, TlvEndpointNumber),
889
+ binding: TlvField(2, TlvDatastoreBindingTarget)
890
+ });
891
+
892
+ /**
893
+ * Input to the JointFabricDatastore addBindingToEndpointForNode command
894
+ *
895
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.17
896
+ */
897
+ export interface AddBindingToEndpointForNodeRequest extends TypeFromSchema<typeof TlvAddBindingToEndpointForNodeRequest> {}
898
+
899
+ /**
900
+ * Input to the JointFabricDatastore removeBindingFromEndpointForNode command
901
+ *
902
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.18
903
+ */
904
+ export const TlvRemoveBindingFromEndpointForNodeRequest = TlvObject({
905
+ listId: TlvField(0, TlvUInt16),
906
+ endpointId: TlvField(1, TlvEndpointNumber),
907
+ nodeId: TlvField(2, TlvNodeId)
908
+ });
909
+
910
+ /**
911
+ * Input to the JointFabricDatastore removeBindingFromEndpointForNode command
912
+ *
913
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.18
914
+ */
915
+ export interface RemoveBindingFromEndpointForNodeRequest extends TypeFromSchema<typeof TlvRemoveBindingFromEndpointForNodeRequest> {}
916
+
917
+ /**
918
+ * Input to the JointFabricDatastore addAclToNode command
919
+ *
920
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.19
921
+ */
922
+ export const TlvAddAclToNodeRequest = TlvObject({
923
+ nodeId: TlvField(0, TlvNodeId),
924
+ aclEntry: TlvField(1, TlvDatastoreAccessControlEntry)
925
+ });
926
+
927
+ /**
928
+ * Input to the JointFabricDatastore addAclToNode command
929
+ *
930
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.19
931
+ */
932
+ export interface AddAclToNodeRequest extends TypeFromSchema<typeof TlvAddAclToNodeRequest> {}
933
+
934
+ /**
935
+ * Input to the JointFabricDatastore removeAclFromNode command
936
+ *
937
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.20
938
+ */
939
+ export const TlvRemoveAclFromNodeRequest = TlvObject({
940
+ listId: TlvField(0, TlvUInt16),
941
+ nodeId: TlvField(1, TlvNodeId)
942
+ });
943
+
944
+ /**
945
+ * Input to the JointFabricDatastore removeAclFromNode command
946
+ *
947
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.20
948
+ */
949
+ export interface RemoveAclFromNodeRequest extends TypeFromSchema<typeof TlvRemoveAclFromNodeRequest> {}
950
+
951
+ /**
952
+ * @see {@link Cluster}
953
+ */
954
+ export const ClusterInstance = MutableCluster({
955
+ id: 0x752,
956
+ name: "JointFabricDatastore",
957
+ revision: 1,
958
+
959
+ attributes: {
960
+ /**
961
+ * This shall indicate the Anchor Root CA used to sign all NOC Issuers in the Joint Fabric for the accessing
962
+ * fabric. A null value indicates that the Joint Fabric is not yet formed.
963
+ *
964
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.1
965
+ */
966
+ anchorRootCa: Attribute(
967
+ 0x0,
968
+ TlvByteString,
969
+ { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
970
+ ),
971
+
972
+ /**
973
+ * This shall indicate the Node identifier of the Joint Fabric Anchor Root CA for the accessing fabric.
974
+ *
975
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.2
976
+ */
977
+ anchorNodeId: Attribute(
431
978
  0x1,
432
979
  TlvNodeId,
433
980
  { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
434
981
  ),
435
982
 
436
983
  /**
437
- * This shall indicate the Vendor identifier of the Joint Fabric Anchor Root CA.
984
+ * This shall indicate the Vendor identifier of the Joint Fabric Anchor Root CA for the accessing fabric.
438
985
  *
439
986
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.3
440
987
  */
441
- anchorVendorId: FabricScopedAttribute(
988
+ anchorVendorId: Attribute(
442
989
  0x2,
443
990
  TlvVendorId,
444
991
  { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
445
992
  ),
446
993
 
447
994
  /**
448
- * Friendly name for this fabric which can be propagated to nodes.
995
+ * Friendly name for the accessing fabric which can be propagated to nodes.
449
996
  *
450
997
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.4
451
998
  */
452
- friendlyName: FabricScopedAttribute(
999
+ friendlyName: Attribute(
453
1000
  0x3,
454
1001
  TlvString.bound({ maxLength: 32 }),
455
1002
  { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
456
1003
  ),
457
1004
 
458
1005
  /**
459
- * This shall indicate the list of GroupKeySetStruct used in the Joint Fabric.
1006
+ * This shall indicate the list of DatastoreGroupKeySetStruct used in the Joint Fabric for the accessing
1007
+ * fabric.
460
1008
  *
461
1009
  * This attribute shall contain at least one entry, the IPK, which has GroupKeySetID of 0.
462
1010
  *
463
1011
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.5
464
1012
  */
465
- groupKeySetList: FabricScopedAttribute(
1013
+ groupKeySetList: Attribute(
466
1014
  0x4,
467
- TlvArray(GroupKeyManagement.TlvGroupKeySet),
1015
+ TlvArray(TlvDatastoreGroupKeySet),
468
1016
  { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
469
1017
  ),
470
1018
 
471
1019
  /**
472
- * This shall indicate the list of groups in the Joint Fabric.
1020
+ * This shall indicate the list of groups in the Joint Fabric for the accessing fabric.
1021
+ *
1022
+ * This list must include, at a minimum, one group with GroupCAT value set to Administrator CAT and one
1023
+ * group with GroupCAT value set to Anchor CAT.
473
1024
  *
474
1025
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.6
475
1026
  */
476
- groupList: FabricScopedAttribute(
1027
+ groupList: Attribute(
477
1028
  0x5,
478
1029
  TlvArray(TlvDatastoreGroupInformationEntry),
479
1030
  { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
480
1031
  ),
481
1032
 
482
1033
  /**
483
- * This shall indicate the list of nodes in the Joint Fabric.
1034
+ * This shall indicate the list of nodes in the Joint Fabric for the accessing fabric.
484
1035
  *
485
1036
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.7
486
1037
  */
487
- nodeList: FabricScopedAttribute(
1038
+ nodeList: Attribute(
488
1039
  0x6,
489
1040
  TlvArray(TlvDatastoreNodeInformationEntry),
490
1041
  { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
491
1042
  ),
492
1043
 
493
1044
  /**
494
- * This shall indicate the list of administrators in the Joint Fabric.
1045
+ * This shall indicate the list of administrators in the Joint Fabric for the accessing fabric.
495
1046
  *
496
1047
  * Only one Administrator may serve as the Anchor Root CA and Anchor Fabric Administrator and shall have
497
1048
  * index value 0. All other Joint Fabric Administrators shall be referenced at index 1 or greater.
@@ -500,14 +1051,14 @@ export namespace JointFabricDatastore {
500
1051
  *
501
1052
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.8
502
1053
  */
503
- adminList: FabricScopedAttribute(
1054
+ adminList: Attribute(
504
1055
  0x7,
505
1056
  TlvArray(TlvDatastoreAdministratorInformationEntry),
506
1057
  { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
507
1058
  ),
508
1059
 
509
1060
  /**
510
- * This shall indicate the current state of the Joint Fabric Datastore Cluster.
1061
+ * This shall indicate the current state of the Joint Fabric Datastore Cluster for the accessing fabric.
511
1062
  *
512
1063
  * The Committed status indicates the DataStore is ready for use. The Pending status indicates that the
513
1064
  * DataStore is not yet ready for use. The DeletePending status indicates that the DataStore is in the
@@ -515,113 +1066,770 @@ export namespace JointFabricDatastore {
515
1066
  *
516
1067
  * @see {@link MatterSpecification.v141.Core} § 11.24.6.9
517
1068
  */
518
- statusEntry: FabricScopedAttribute(
1069
+ status: Attribute(
519
1070
  0x8,
520
- TlvDatastoreAdministratorInformationEntry,
1071
+ TlvDatastoreStatusEntry,
521
1072
  { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
1073
+ ),
1074
+
1075
+ /**
1076
+ * This shall indicate the group membership of endpoints in the accessing fabric.
1077
+ *
1078
+ * Any changes to this List (add/remove entry) must follow the pending→committed workflow with current state
1079
+ * reflected in the Status Entry.
1080
+ *
1081
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.10
1082
+ */
1083
+ endpointGroupIdList: Attribute(
1084
+ 0x9,
1085
+ TlvArray(TlvDatastoreEndpointGroupIdEntry),
1086
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
1087
+ ),
1088
+
1089
+ /**
1090
+ * This shall indicate the binding list for endpoints in the accessing fabric.
1091
+ *
1092
+ * Any changes to this List (add/remove entry) must follow the pending→committed workflow with current state
1093
+ * reflected in the Status Entry.
1094
+ *
1095
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.11
1096
+ */
1097
+ endpointBindingList: Attribute(
1098
+ 0xa,
1099
+ TlvArray(TlvDatastoreEndpointBindingEntry),
1100
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
1101
+ ),
1102
+
1103
+ /**
1104
+ * This shall indicate the KeySet entries for nodes in the accessing fabric.
1105
+ *
1106
+ * Any changes to this List (add/remove entry) must follow the pending→committed workflow with current state
1107
+ * reflected in the Status Entry.
1108
+ *
1109
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.12
1110
+ */
1111
+ nodeKeySetList: Attribute(
1112
+ 0xb,
1113
+ TlvArray(TlvDatastoreNodeKeySetEntry),
1114
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
1115
+ ),
1116
+
1117
+ /**
1118
+ * This shall indicate the ACL entries for nodes in the accessing fabric.
1119
+ *
1120
+ * Any changes to this List (add/remove entry) must follow the pending→committed workflow with current state
1121
+ * reflected in the Status Entry.
1122
+ *
1123
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.13
1124
+ */
1125
+ nodeAclList: Attribute(
1126
+ 0xc,
1127
+ TlvArray(TlvDatastoreAclEntry),
1128
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
1129
+ ),
1130
+
1131
+ /**
1132
+ * This shall indicate the Endpoint entries for nodes in the accessing fabric.
1133
+ *
1134
+ * Any changes to this List (add/remove entry) must follow the pending→committed workflow with current state
1135
+ * reflected in the Status Entry.
1136
+ *
1137
+ * @see {@link MatterSpecification.v141.Core} § 11.24.6.14
1138
+ */
1139
+ nodeEndpointList: Attribute(
1140
+ 0xd,
1141
+ TlvArray(TlvDatastoreEndpointEntry),
1142
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
522
1143
  )
523
1144
  },
524
1145
 
525
1146
  commands: {
526
1147
  /**
527
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1148
+ * This command shall be used to add a KeySet to the Joint Fabric Datastore Cluster of the accessing fabric.
1149
+ *
1150
+ * GroupKeySet represents the KeySet to be added to the Joint Fabric Datastore Cluster. Upon receipt of this
1151
+ * command, the Datastore shall:
1152
+ *
1153
+ * 1. Ensure there are no KeySets in the KeySetList attribute with the given GroupKeySetID.
1154
+ *
1155
+ * 2. If a match is found, return CONSTRAINT_ERROR.
1156
+ *
1157
+ * 3. Add the Epoch Key Entry for the KeySet to the KeySetList attribute.
1158
+ *
1159
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.1
528
1160
  */
529
- section112471: Command(0x0, TlvNoArguments, 0x0, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1161
+ addKeySet: Command(0x0, TlvAddKeySetRequest, 0x0, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
530
1162
 
531
1163
  /**
532
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1164
+ * This command shall be used to update a KeySet in the Joint Fabric Datastore Cluster of the accessing
1165
+ * fabric.
1166
+ *
1167
+ * GroupKeySet represents the KeySet to be updated in the Joint Fabric Datastore Cluster. Upon receipt of
1168
+ * this command, the Datastore shall:
1169
+ *
1170
+ * 1. Find the Epoch Key Entry for the KeySet in the KeySetList attribute with the given GroupKeySetID,
1171
+ * and update any changed fields.
1172
+ *
1173
+ * 2. If entry is not found, return NOT_FOUND.
1174
+ *
1175
+ * 3. If any fields are changed as a result of this command:
1176
+ *
1177
+ * a. Iterate through each Node Information Entry:
1178
+ *
1179
+ * i. If the NodeKeySetList contains an entry with the given GroupKeySetID:
1180
+ *
1181
+ * A. Update the Status on the given DatastoreNodeKeySetEntryStruct tp Pending.
1182
+ *
1183
+ * B. Update the GroupKeySet on the given Node with the new values.
1184
+ *
1185
+ * I. If successful, update the Status on this DatastoreNodeKeySetEntryStruct to Committed.
1186
+ *
1187
+ * II. If not successful, update the State field of the StatusEntry on this
1188
+ * DatastoreNodeKeySetEntryStruct to CommitFailed and FailureCode code to the returned error.
1189
+ * The pending change shall be applied in a subsequent Node Refresh.
1190
+ *
1191
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.2
533
1192
  */
534
- section112472: Command(0x1, TlvNoArguments, 0x1, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1193
+ updateKeySet: Command(
1194
+ 0x1,
1195
+ TlvUpdateKeySetRequest,
1196
+ 0x1,
1197
+ TlvNoResponse,
1198
+ { invokeAcl: AccessLevel.Administer }
1199
+ ),
535
1200
 
536
1201
  /**
537
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1202
+ * This command shall be used to remove a KeySet from the Joint Fabric Datastore Cluster of the accessing
1203
+ * fabric.
1204
+ *
1205
+ * GroupKeySetID represents the unique identifier for the KeySet to be removed from the Joint Fabric
1206
+ * Datastore Cluster.
1207
+ *
1208
+ * Attempt to remove the IPK, which has GroupKeySetID of 0, shall fail with response CONSTRAINT_ERROR.
1209
+ *
1210
+ * Upon receipt of this command, the Datastore shall:
1211
+ *
1212
+ * 1. If entry is not found, return NOT_FOUND.
1213
+ *
1214
+ * 2. Ensure there are no Nodes using this KeySet. To do this:
1215
+ *
1216
+ * a. Iterate through each Node Information Entry:
1217
+ *
1218
+ * i. If the NodeKeySetList list contains an entry with the given GroupKeySetID, and the entry does
1219
+ * NOT have Status DeletePending, then return CONSTRAINT_ERROR.
1220
+ *
1221
+ * 3. Remove the DatastoreGroupKeySetStruct for the given GroupKeySetID from the GroupKeySetList
1222
+ * attribute.
1223
+ *
1224
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.3
538
1225
  */
539
- section112473: Command(0x2, TlvNoArguments, 0x2, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1226
+ removeKeySet: Command(
1227
+ 0x2,
1228
+ TlvRemoveKeySetRequest,
1229
+ 0x2,
1230
+ TlvNoResponse,
1231
+ { invokeAcl: AccessLevel.Administer }
1232
+ ),
540
1233
 
541
1234
  /**
542
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1235
+ * This command shall be used to add a group to the Joint Fabric Datastore Cluster of the accessing fabric.
1236
+ *
1237
+ * GroupInformationEntry represents the group to be added to the Joint Fabric Datastore Cluster.
1238
+ *
1239
+ * GroupCAT values shall fall within the range 1 to 65534. Attempts to add a group with a GroupCAT value of
1240
+ * Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.
1241
+ *
1242
+ * Upon receipt of this command, the Datastore shall:
1243
+ *
1244
+ * 1. Ensure there are no Groups in the GroupList attribute with the given GroupID. If a match is found,
1245
+ * return CONSTRAINT_ERROR.
1246
+ *
1247
+ * 2. Add the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to the GroupList
1248
+ * attribute.
1249
+ *
1250
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.4
543
1251
  */
544
- section112474: Command(0x3, TlvNoArguments, 0x3, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1252
+ addGroup: Command(0x3, TlvAddGroupRequest, 0x3, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
545
1253
 
546
1254
  /**
547
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1255
+ * This command shall be used to update a group in the Joint Fabric Datastore Cluster of the accessing
1256
+ * fabric.
1257
+ *
1258
+ * GroupID represents the group to be updated in the Joint Fabric Datastore Cluster. NULL values for the
1259
+ * additional parameters will be ignored (not updated).
1260
+ *
1261
+ * GroupCAT values shall fall within the range 1 to 65534. Attempts to update the GroupCAT on an existing
1262
+ * group which has a GroupCAT value of Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.
1263
+ *
1264
+ * Attempts to set the GroupCAT to Administrator CAT or Anchor CAT shall fail with CONSTRAINT_ERROR.
1265
+ *
1266
+ * Upon receipt of this command, the Datastore shall:
1267
+ *
1268
+ * 1. If entry is not found, return NOT_FOUND.
1269
+ *
1270
+ * 2. Update the DatastoreGroupInformationEntryStruct for the Group with the given GroupID to match the
1271
+ * non-NULL fields passed in.
1272
+ *
1273
+ * 3. If any fields are changed as a result of this command:
1274
+ *
1275
+ * a. Iterate through each Node Information Entry:
1276
+ *
1277
+ * i. If the GroupKeySetID changed:
1278
+ *
1279
+ * I. Add a DatastoreNodeKeySetEntryStruct with the new GroupKeySetID, and Status set to Pending.
1280
+ *
1281
+ * II. Add this KeySet to the Node.
1282
+ *
1283
+ * 1. If successful, Set the Status to Committed for this entry in the NodeKeySetList.
1284
+ *
1285
+ * 2. If not successful, Set the Status to CommitFailed and the FailureCode to the returned error. The
1286
+ * pending change shall be applied in a subsequent Node Refresh.
1287
+ *
1288
+ * A. If the NodeKeySetList list contains an entry with the previous GroupKeySetID:
1289
+ *
1290
+ * III. Set the Status set to DeletePending.
1291
+ *
1292
+ * IV. Remove this KeySet from the Node.
1293
+ *
1294
+ * 1. If successful, Remove this entry from the NodeKeySetList.
1295
+ *
1296
+ * 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.
1297
+ *
1298
+ * ii. If the GroupCAT, GroupCATVersion or GroupPermission changed:
1299
+ *
1300
+ * A. If the ACLList contains an entry for this Group, update the ACL List Entry in the Datastore with the
1301
+ * new values and Status Pending, update the ACL attribute on the given Node with the new values. If
1302
+ * the update succeeds, set the Status to Committed on the ACLList Entry in the Datastore.
1303
+ *
1304
+ * iii. If the FriendlyName changed:
1305
+ *
1306
+ * A. Iterate through each Endpoint Information Entry:
1307
+ *
1308
+ * I. If the GroupIDList contains an entry with the given GroupID:
1309
+ *
1310
+ * 1. Update the GroupIDList Entry in the Datastore with the new values and Status
1311
+ *
1312
+ * ### Pending
1313
+ *
1314
+ * 2. Update the Groups on the given Node with the new values.
1315
+ *
1316
+ * 1. If the update succeeds, set the Status to Committed on the GroupIDList Entry in the Datastore.
1317
+ *
1318
+ * 2. If not successful, the pending change shall be applied in a subsequent Node Refresh.
1319
+ *
1320
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.5
548
1321
  */
549
- section112475: Command(0x4, TlvNoArguments, 0x4, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1322
+ updateGroup: Command(0x4, TlvUpdateGroupRequest, 0x4, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
550
1323
 
551
1324
  /**
552
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1325
+ * This command shall be used to remove a group from the Joint Fabric Datastore Cluster of the accessing
1326
+ * fabric.
1327
+ *
1328
+ * GroupID represents the unique identifier for the group to be removed from the Joint Fabric Datastore
1329
+ * Cluster.
1330
+ *
1331
+ * Attempts to remove a group with GroupCAT value set to Administrator CAT or Anchor CAT shall fail with
1332
+ * CONSTRAINT_ERROR.
1333
+ *
1334
+ * Upon receipt of this command, the Datastore shall:
1335
+ *
1336
+ * 1. If entry is not found, return NOT_FOUND.
1337
+ *
1338
+ * 2. Ensure there are no Nodes in this group. To do this:
1339
+ *
1340
+ * a. Iterate through each Node Information Entry:
1341
+ *
1342
+ * i. If the GroupIDList contains an entry with the given GroupID, and the entry does NOT have Status
1343
+ * DeletePending, then return CONSTRAINT_ERROR.
1344
+ *
1345
+ * 3. Remove the DatastoreGroupInformationEntryStruct for the Group with the given GroupID from the
1346
+ * GroupList attribute.
1347
+ *
1348
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.6
553
1349
  */
554
- section112476: Command(0x5, TlvNoArguments, 0x5, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1350
+ removeGroup: Command(0x5, TlvRemoveGroupRequest, 0x5, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
555
1351
 
556
1352
  /**
557
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1353
+ * This command shall be used to add an admin to the Joint Fabric Datastore Cluster of the accessing fabric.
1354
+ *
1355
+ * NodeID, FriendlyName, VendorID and ICAC represent the admin to be added to the Joint Fabric Datastore
1356
+ * Cluster.
1357
+ *
1358
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.7
558
1359
  */
559
- section112477: Command(0x6, TlvNoArguments, 0x6, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1360
+ addAdmin: Command(0x6, TlvAddAdminRequest, 0x6, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
560
1361
 
561
1362
  /**
562
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1363
+ * This command shall be used to update an admin in the Joint Fabric Datastore Cluster of the accessing
1364
+ * fabric.
1365
+ *
1366
+ * NodeID represents the admin to be updated in the Joint Fabric Datastore Cluster. NULL values for the
1367
+ * additional parameters will be ignored (not updated).
1368
+ *
1369
+ * If entry is not found, return NOT_FOUND.
1370
+ *
1371
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.8
563
1372
  */
564
- section112478: Command(0x7, TlvNoArguments, 0x7, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1373
+ updateAdmin: Command(0x7, TlvUpdateAdminRequest, 0x7, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
565
1374
 
566
1375
  /**
567
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1376
+ * This command shall be used to remove an admin from the Joint Fabric Datastore Cluster of the accessing
1377
+ * fabric.
1378
+ *
1379
+ * NodeID represents the unique identifier for the admin to be removed from the Joint Fabric Datastore
1380
+ * Cluster.
1381
+ *
1382
+ * If entry is not found, return NOT_FOUND.
1383
+ *
1384
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.9
568
1385
  */
569
- section112479: Command(0x8, TlvNoArguments, 0x8, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1386
+ removeAdmin: Command(0x8, TlvRemoveAdminRequest, 0x8, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
570
1387
 
571
1388
  /**
572
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1389
+ * The command shall be used to add a node to the Joint Fabric Datastore Cluster of the accessing fabric.
1390
+ *
1391
+ * NodeID represents the node to be added to the Joint Fabric Datastore Cluster. Upon receipt of this
1392
+ * command, the Datastore shall:
1393
+ *
1394
+ * 1. Update CommissioningStatusEntry of the Node Information Entry with the given NodeID to Pending.
1395
+ *
1396
+ * If a Node Information Entry exists for the given NodeID, this command shall return INVALID_CONSTRAINT.
1397
+ *
1398
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.10
573
1399
  */
574
- section1124710: Command(0x9, TlvNoArguments, 0x9, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1400
+ addPendingNode: Command(
1401
+ 0x9,
1402
+ TlvAddPendingNodeRequest,
1403
+ 0x9,
1404
+ TlvNoResponse,
1405
+ { invokeAcl: AccessLevel.Administer }
1406
+ ),
575
1407
 
576
1408
  /**
577
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1409
+ * The command shall be used to request that Datastore information relating to a Node of the accessing
1410
+ * fabric is refreshed.
1411
+ *
1412
+ * Upon receipt of this command, the Datastore shall:
1413
+ *
1414
+ * 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, return NOT_FOUND.
1415
+ *
1416
+ * 2. Update the CommissioningStatusEntry for the Node Information Entry to Pending.
1417
+ *
1418
+ * 3. Ensure the Endpoint List for the Node Information Entry with the given NodeID matches Endpoint list
1419
+ * on the given Node. This involves the following steps:
1420
+ *
1421
+ * a. Read the PartsList of the Descriptor cluster from the Node.
1422
+ *
1423
+ * b. For each Endpoint Information Entry in the Endpoint List of the Node Information Entry that does
1424
+ * not match an Endpoint ID in the PartsList, remove the Endpoint Information Entry.
1425
+ *
1426
+ * c. For each Endpoint Information Entry in the Endpoint List of the Node Information Entry that
1427
+ * matches an Endpoint ID in the PartsList:
1428
+ *
1429
+ * i. Check that each entry in Node’s Group List occurs in the GroupIDList of the Endpoint Information
1430
+ * Entry.
1431
+ *
1432
+ * A. Add any missing entries to the GroupIDList of the Endpoint Information Entry.
1433
+ *
1434
+ * B. For any entries in the GroupIDList with Status of Pending:
1435
+ *
1436
+ * I. Add the corresponding change to the Node’s Group List.
1437
+ *
1438
+ * 1. If successful, mark the Status to Committed.
1439
+ *
1440
+ * 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The
1441
+ * error shall be handled in a subsequent Node Refresh.
1442
+ *
1443
+ * C. For any entries in the GroupIDList with Status of DeletePending:
1444
+ *
1445
+ * 1. If successful, remove the corresponding entry from the Node’s Group List.
1446
+ *
1447
+ * 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error. The
1448
+ * error shall be handled in a subsequent Node Refresh.
1449
+ *
1450
+ * D. For any entries in the GroupIDList with Status of CommitFailure:
1451
+ *
1452
+ * I. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the
1453
+ * GroupIDList.
1454
+ *
1455
+ * II. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a subsequent
1456
+ * Node Refresh.
1457
+ *
1458
+ * ii. Check that each entry in Node’s Binding List occurs in the BindingList of the Endpoint Information
1459
+ * Entry.
1460
+ *
1461
+ * A. Add any missing entries to the BindingList of the Endpoint Information Entry.
1462
+ *
1463
+ * B. For any entries in the BindingList with Status of Pending:
1464
+ *
1465
+ * I. Add the corresponding change to the Node’s Binding List.
1466
+ *
1467
+ * 1. If successful, mark the Status to Committed.
1468
+ *
1469
+ * 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1470
+ * The error shall be handled in a subsequent Node Refresh.
1471
+ *
1472
+ * C. For any entries in the BindingList with Status of DeletePending:
1473
+ *
1474
+ * 1. If successful, remove the corresponding entry from the Node’s BindingList.
1475
+ *
1476
+ * 2. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1477
+ * The error shall be handled in a subsequent Node Refresh.
1478
+ *
1479
+ * D. For any entries in the BindingList with Status of CommitFailure:
1480
+ *
1481
+ * I. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the
1482
+ * BindingList.
1483
+ *
1484
+ * II. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a
1485
+ * subsequent Node Refresh.
1486
+ *
1487
+ * 4. Ensure the GroupKeySetList for the Node Information Entry with the given NodeID matches the Group Keys
1488
+ * on the given Node. This involves the following steps:
1489
+ *
1490
+ * a. Read the Group Keys from the Node.
1491
+ *
1492
+ * b. For each GroupKeySetEntry in the GroupKeySetList of the Node Information Entry with a Pending
1493
+ * Status:
1494
+ *
1495
+ * i. Add the corresponding DatastoreGroupKeySetStruct to the Node’s Group Key list.
1496
+ *
1497
+ * A. If successful, mark the Status to Committed.
1498
+ *
1499
+ * B. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1500
+ * The error shall be handled in a subsequent Node Refresh.
1501
+ *
1502
+ * c. For each GroupKeySetEntry in the GroupKeySetList of the Node Information Entry with a CommitFailure
1503
+ * Status:
1504
+ *
1505
+ * i. A CommitFailure with an unrecoverable FailureCode shall be handled by removing the entry from the
1506
+ * GroupKeySetList.
1507
+ *
1508
+ * ii. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a
1509
+ * subsequent Node Refresh.
1510
+ *
1511
+ * d. All remaining entries in the GroupKeySetList should be replaced by the remaining entries on the
1512
+ * Node.
1513
+ *
1514
+ * 5. Ensure the ACLList for the Node Information Entry with the given NodeID matches the ACL attribute on
1515
+ * the given Node. This involves the following steps:
1516
+ *
1517
+ * a. Read the ACL attribute on the Node.
1518
+ *
1519
+ * b. For each DatastoreACLEntryStruct in the ACLList of the Node Information Entry with a Pending Status:
1520
+ *
1521
+ * i. Add the corresponding DatastoreACLEntryStruct to the Node’s ACL attribute.
1522
+ *
1523
+ * A. If successful, mark the Status to Committed.
1524
+ *
1525
+ * B. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1526
+ * The error shall be handled in a subsequent Node Refresh.
1527
+ *
1528
+ * c. For each DatastoreACLEntryStruct in the ACLList of the Node Information Entry with a CommitFailure
1529
+ * Status:
1530
+ *
1531
+ * i. A CommitFailure with an unrecoverable FailureCode (i.e. RESOURCE_EXHAUSTED, CONSTRAINT_ERROR)
1532
+ * shall be handled by removing the entry from the ACLList.
1533
+ *
1534
+ * ii. A CommitFailure with a recoverable FailureCode (i.e. TIMEOUT, BUSY) shall be handle in a
1535
+ * subsequent Node Refresh.
1536
+ *
1537
+ * d. All remaining entries in the ACLList should be replaced by the remaining entries on the Node.
1538
+ *
1539
+ * 6. Update the CommissioningStatusEntry for the Node Information Entry to Committed.
1540
+ *
1541
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.11
578
1542
  */
579
- section1124711: Command(0xa, TlvNoArguments, 0xa, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1543
+ refreshNode: Command(0xa, TlvRefreshNodeRequest, 0xa, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
580
1544
 
581
1545
  /**
582
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1546
+ * The command shall be used to update the friendly name for a node in the Joint Fabric Datastore Cluster of
1547
+ * the accessing fabric.
1548
+ *
1549
+ * NodeID represents the node to be updated in the Joint Fabric Datastore Cluster.
1550
+ *
1551
+ * If a Node Information Entry does not exist for the given NodeID, this command shall return NOT_FOUND.
1552
+ *
1553
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.12
583
1554
  */
584
- section1124712: Command(0xb, TlvNoArguments, 0xb, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1555
+ updateNode: Command(0xb, TlvUpdateNodeRequest, 0xb, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
585
1556
 
586
1557
  /**
587
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1558
+ * This command shall be used to remove a node from the Joint Fabric Datastore Cluster of the accessing
1559
+ * fabric.
1560
+ *
1561
+ * NodeID represents the unique identifier for the node to be removed from the Joint Fabric Datastore
1562
+ * Cluster.
1563
+ *
1564
+ * If a Node Information Entry does not exist for the given NodeID, this command shall return NOT_FOUND.
1565
+ *
1566
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.13
588
1567
  */
589
- section1124713: Command(0xc, TlvNoArguments, 0xc, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1568
+ removeNode: Command(0xc, TlvRemoveNodeRequest, 0xc, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
590
1569
 
591
1570
  /**
592
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1571
+ * This command shall be used to update the state of an endpoint for a node in the Joint Fabric Datastore
1572
+ * Cluster of the accessing fabric.
1573
+ *
1574
+ * EndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore
1575
+ * Cluster.
1576
+ *
1577
+ * NodeID represents the unique identifier for the node to which the endpoint belongs.
1578
+ *
1579
+ * If an Endpoint Information Entry does not exist for the given NodeID and EndpointID, this command shall
1580
+ * return NOT_FOUND.
1581
+ *
1582
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.14
593
1583
  */
594
- section1124714: Command(0xd, TlvNoArguments, 0xd, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1584
+ updateEndpointForNode: Command(
1585
+ 0xd,
1586
+ TlvUpdateEndpointForNodeRequest,
1587
+ 0xd,
1588
+ TlvNoResponse,
1589
+ { invokeAcl: AccessLevel.Administer }
1590
+ ),
595
1591
 
596
1592
  /**
597
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1593
+ * This command shall be used to add a Group ID to an endpoint for a node in the Joint Fabric Datastore
1594
+ * Cluster of the accessing fabric.
1595
+ *
1596
+ * GroupID represents the unique identifier for the group to be added to the endpoint.
1597
+ *
1598
+ * EndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore
1599
+ * Cluster.
1600
+ *
1601
+ * NodeID represents the unique identifier for the node to which the endpoint belongs. Upon receipt of this
1602
+ * command, the Datastore shall:
1603
+ *
1604
+ * 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not,
1605
+ * return NOT_FOUND.
1606
+ *
1607
+ * 2. Ensure the Group Key List for the Node Information Entry with the given NodeID includes the KeySet
1608
+ * for the given Group ID. If it does not:
1609
+ *
1610
+ * a. Add an entry for the KeySet of the given Group ID to the Group Key List for the Node. The new
1611
+ * entry’s status shall be set to Pending.
1612
+ *
1613
+ * b. Add a Group Key Entry for this KeySet to the given Node ID.
1614
+ *
1615
+ * i. If this succeeds, update the new KeySet entry in the Datastore to Committed.
1616
+ *
1617
+ * ii. If not successful, the pending change shall be applied in a subsequent Node Refresh.
1618
+ *
1619
+ * 3. Ensure the Group List for the Endpoint Information Entry with the given NodeID and EndpointID
1620
+ * includes an entry for the given Group. If it does not:
1621
+ *
1622
+ * a. Add a Group entry for the given Group ID to the Group List for the Endpoint and Node. The new
1623
+ * entry’s status shall be set to Pending.
1624
+ *
1625
+ * b. Add this Group entry to the given Endpoint ID on the given Node ID.
1626
+ *
1627
+ * i. If this succeeds, update the new Group entry in the Datastore to Committed.
1628
+ *
1629
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1630
+ * The error shall be handled in a subsequent Node Refresh.
1631
+ *
1632
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.15
598
1633
  */
599
- section1124715: Command(0xe, TlvNoArguments, 0xe, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1634
+ addGroupIdToEndpointForNode: Command(
1635
+ 0xe,
1636
+ TlvAddGroupIdToEndpointForNodeRequest,
1637
+ 0xe,
1638
+ TlvNoResponse,
1639
+ { invokeAcl: AccessLevel.Administer }
1640
+ ),
600
1641
 
601
1642
  /**
602
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1643
+ * This command shall be used to remove a Group ID from an endpoint for a node in the Joint Fabric Datastore
1644
+ * Cluster of the accessing fabric.
1645
+ *
1646
+ * GroupID represents the unique identifier for the group to be removed from the endpoint.
1647
+ *
1648
+ * EndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore
1649
+ * Cluster.
1650
+ *
1651
+ * NodeID represents the unique identifier for the node to which the endpoint belongs. Upon receipt of this
1652
+ * command, the Datastore shall:
1653
+ *
1654
+ * 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not,
1655
+ * return NOT_FOUND.
1656
+ *
1657
+ * 2. Ensure the Group List for the Endpoint Information Entry with the given NodeID and EndpointID does
1658
+ * not include an entry for the given Group. If it does:
1659
+ *
1660
+ * a. Update the status to DeletePending of the Group entry for the given Group ID in the Group List.
1661
+ *
1662
+ * b. Remove this Group entry for the given Endpoint ID on the given Node ID.
1663
+ *
1664
+ * i. If this succeeds, remove the Group entry for the given Group ID in the Group List for this
1665
+ * NodeID and EndpointID in the Datastore.
1666
+ *
1667
+ * ii. If not successful, the pending change shall be applied in a subsequent Node Refresh.
1668
+ *
1669
+ * 3. Ensure the Group Key List for the Node Information Entry with the given NodeID does not include the
1670
+ * KeySet for the given Group ID. If it does:
1671
+ *
1672
+ * a. Update the status to DeletePending for the entry for the KeySet of the given Group ID in the Node
1673
+ * Group Key List.
1674
+ *
1675
+ * b. Remove the Group Key Entry for this KeySet from the given Node ID.
1676
+ *
1677
+ * i. If this succeeds, remove the KeySet entry for the given Node ID.
1678
+ *
1679
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1680
+ * The error shall be handled in a subsequent Node Refresh.
1681
+ *
1682
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.16
603
1683
  */
604
- section1124716: Command(0xf, TlvNoArguments, 0xf, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1684
+ removeGroupIdFromEndpointForNode: Command(
1685
+ 0xf,
1686
+ TlvRemoveGroupIdFromEndpointForNodeRequest,
1687
+ 0xf,
1688
+ TlvNoResponse,
1689
+ { invokeAcl: AccessLevel.Administer }
1690
+ ),
605
1691
 
606
1692
  /**
607
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1693
+ * This command shall be used to add a binding to an endpoint for a node in the Joint Fabric Datastore
1694
+ * Cluster of the accessing fabric.
1695
+ *
1696
+ * Binding represents the binding to be added to the endpoint.
1697
+ *
1698
+ * EndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore
1699
+ * Cluster.
1700
+ *
1701
+ * NodeID represents the unique identifier for the node to which the endpoint belongs. Upon receipt of this
1702
+ * command, the Datastore shall:
1703
+ *
1704
+ * 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not,
1705
+ * return NOT_FOUND.
1706
+ *
1707
+ * 2. Ensure the Binding List for the Node Information Entry with the given NodeID includes the given
1708
+ * Binding. If it does not:
1709
+ *
1710
+ * a. Add the Binding to the Binding List for the Node Information Entry for the given NodeID. The new
1711
+ * entry’s status shall be set to Pending.
1712
+ *
1713
+ * b. Add this Binding to the given Node ID.
1714
+ *
1715
+ * i. If this succeeds, update the new Binding in the Datastore to Committed.
1716
+ *
1717
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1718
+ * The error shall be handled in a subsequent Node Refresh.
1719
+ *
1720
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.17
608
1721
  */
609
- section1124717: Command(0x10, TlvNoArguments, 0x10, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1722
+ addBindingToEndpointForNode: Command(
1723
+ 0x10,
1724
+ TlvAddBindingToEndpointForNodeRequest,
1725
+ 0x10,
1726
+ TlvNoResponse,
1727
+ { invokeAcl: AccessLevel.Administer }
1728
+ ),
610
1729
 
611
1730
  /**
612
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1731
+ * This command shall be used to remove a binding from an endpoint for a node in the Joint Fabric Datastore
1732
+ * Cluster of the accessing fabric.
1733
+ *
1734
+ * ListID represents the unique identifier for the binding entry in the Datastore’s EndpointBindingList
1735
+ * attribute to be removed from the endpoint.
1736
+ *
1737
+ * EndpointID represents the unique identifier for the endpoint to be updated in the Joint Fabric Datastore
1738
+ * Cluster.
1739
+ *
1740
+ * NodeID represents the unique identifier for the node to which the endpoint belongs. Upon receipt of this
1741
+ * command, the Datastore shall:
1742
+ *
1743
+ * 1. Confirm that an Endpoint Information Entry exists for the given NodeID and EndpointID, and if not,
1744
+ * return NOT_FOUND.
1745
+ *
1746
+ * 2. Ensure the Binding List for the Node Information Entry with the given NodeID does not include an
1747
+ * entry with the given ListID. If it does:
1748
+ *
1749
+ * a. Update the status to DeletePending for the given Binding in the Binding List.
1750
+ *
1751
+ * b. Remove this Binding from the given Node ID.
1752
+ *
1753
+ * i. If this succeeds, remove the given Binding from the Binding List.
1754
+ *
1755
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1756
+ * The error shall be handled in a subsequent Node Refresh.
1757
+ *
1758
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.18
613
1759
  */
614
- section1124718: Command(0x11, TlvNoArguments, 0x11, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1760
+ removeBindingFromEndpointForNode: Command(
1761
+ 0x11,
1762
+ TlvRemoveBindingFromEndpointForNodeRequest,
1763
+ 0x11,
1764
+ TlvNoResponse,
1765
+ { invokeAcl: AccessLevel.Administer }
1766
+ ),
615
1767
 
616
1768
  /**
617
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1769
+ * This command shall be used to add an ACL to a node in the Joint Fabric Datastore Cluster of the accessing
1770
+ * fabric.
1771
+ *
1772
+ * NodeID represents the unique identifier for the node to which the ACL is to be added. ACLEntry represents
1773
+ * the ACL to be added to the Joint Fabric Datastore Cluster.
1774
+ *
1775
+ * Upon receipt of this command, the Datastore shall:
1776
+ *
1777
+ * 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, return NOT_FOUND.
1778
+ *
1779
+ * 2. Ensure the ACL List for the given NodeID includes the given ACLEntry. If it does not:
1780
+ *
1781
+ * a. Add the ACLEntry to the ACL List for the given NodeID. The new entry’s status shall be set to
1782
+ * Pending.
1783
+ *
1784
+ * b. Add this ACLEntry to the given Node ID.
1785
+ *
1786
+ * i. If this succeeds, update the new ACLEntry in the Datastore to Committed.
1787
+ *
1788
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1789
+ * The error shall be handled in a subsequent Node Refresh.
1790
+ *
1791
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.19
618
1792
  */
619
- section1124719: Command(0x12, TlvNoArguments, 0x12, TlvNoResponse, { invokeAcl: AccessLevel.Administer }),
1793
+ addAclToNode: Command(
1794
+ 0x12,
1795
+ TlvAddAclToNodeRequest,
1796
+ 0x12,
1797
+ TlvNoResponse,
1798
+ { invokeAcl: AccessLevel.Administer }
1799
+ ),
620
1800
 
621
1801
  /**
622
- * @see {@link MatterSpecification.v141.Core} § 11.24.7
1802
+ * This command shall be used to remove an ACL from a node in the Joint Fabric Datastore Cluster of the
1803
+ * accessing fabric.
1804
+ *
1805
+ * ListID represents the unique identifier for the DatastoreACLEntryStruct to be removed from the
1806
+ * Datastore’s list of DatastoreACLEntry.
1807
+ *
1808
+ * NodeID represents the unique identifier for the node from which the ACL is to be removed. Upon receipt of
1809
+ * this command, the Datastore shall:
1810
+ *
1811
+ * 1. Confirm that a Node Information Entry exists for the given NodeID, and if not, return NOT_FOUND.
1812
+ *
1813
+ * 2. Ensure the ACL List for the given NodeID does not include the given ACLEntry. If it does:
1814
+ *
1815
+ * a. Update the status to DeletePending for the given ACLEntry in the ACL List.
1816
+ *
1817
+ * b. Remove this ACLEntry from the given Node ID.
1818
+ *
1819
+ * i. If this succeeds, remove the given ACLEntry from the Node ACL List.
1820
+ *
1821
+ * ii. If not successful, update the Status to CommitFailed and the FailureCode to the returned error.
1822
+ * The error shall be handled in a subsequent Node Refresh.
1823
+ *
1824
+ * @see {@link MatterSpecification.v141.Core} § 11.24.7.20
623
1825
  */
624
- section1124720: Command(0x13, TlvNoArguments, 0x13, TlvNoResponse, { invokeAcl: AccessLevel.Administer })
1826
+ removeAclFromNode: Command(
1827
+ 0x13,
1828
+ TlvRemoveAclFromNodeRequest,
1829
+ 0x13,
1830
+ TlvNoResponse,
1831
+ { invokeAcl: AccessLevel.Administer }
1832
+ )
625
1833
  }
626
1834
  });
627
1835
 
@@ -642,6 +1850,8 @@ export namespace JointFabricDatastore {
642
1850
  * The Admin level of access to the Joint Fabric Datastore cluster server shall be limited to JF Administrator Nodes
643
1851
  * identified using the Administrator CAT.
644
1852
  *
1853
+ * NOTE Support for Joint Fabric Datastore cluster is provisional.
1854
+ *
645
1855
  * @see {@link MatterSpecification.v141.Core} § 11.24
646
1856
  */
647
1857
  export interface Cluster extends Identity<typeof ClusterInstance> {}