@matter/types 0.13.0-alpha.0-20250304-d4a7592a4 → 0.13.0-alpha.0-20250311-3eb0af5f2
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.
- package/dist/cjs/clusters/access-control.d.ts +3972 -522
- package/dist/cjs/clusters/access-control.d.ts.map +1 -1
- package/dist/cjs/clusters/access-control.js +640 -116
- package/dist/cjs/clusters/access-control.js.map +2 -2
- package/dist/cjs/clusters/actions.d.ts +10 -9
- package/dist/cjs/clusters/actions.d.ts.map +1 -1
- package/dist/cjs/clusters/actions.js +4 -4
- package/dist/cjs/clusters/actions.js.map +1 -1
- package/dist/cjs/clusters/administrator-commissioning.d.ts +156 -129
- package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
- package/dist/cjs/clusters/administrator-commissioning.js +40 -35
- package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
- package/dist/cjs/clusters/alarm-base.d.ts +9 -12
- package/dist/cjs/clusters/alarm-base.d.ts.map +1 -1
- package/dist/cjs/clusters/alarm-base.js +3 -4
- package/dist/cjs/clusters/alarm-base.js.map +1 -1
- package/dist/cjs/clusters/application-launcher.d.ts +27 -15
- package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
- package/dist/cjs/clusters/application-launcher.js +7 -4
- package/dist/cjs/clusters/application-launcher.js.map +1 -1
- package/dist/cjs/clusters/ballast-configuration.d.ts +7 -7
- package/dist/cjs/clusters/ballast-configuration.js +7 -7
- package/dist/cjs/clusters/basic-information.d.ts +29 -21
- package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
- package/dist/cjs/clusters/basic-information.js +29 -21
- package/dist/cjs/clusters/basic-information.js.map +1 -1
- package/dist/cjs/clusters/bridged-device-basic-information.d.ts +816 -34
- package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
- package/dist/cjs/clusters/bridged-device-basic-information.js +182 -29
- package/dist/cjs/clusters/bridged-device-basic-information.js.map +2 -2
- package/dist/cjs/clusters/channel.d.ts +115 -124
- package/dist/cjs/clusters/channel.d.ts.map +1 -1
- package/dist/cjs/clusters/channel.js +15 -16
- package/dist/cjs/clusters/channel.js.map +1 -1
- package/dist/cjs/clusters/color-control.d.ts +3076 -1366
- package/dist/cjs/clusters/color-control.d.ts.map +1 -1
- package/dist/cjs/clusters/color-control.js +423 -357
- package/dist/cjs/clusters/color-control.js.map +2 -2
- package/dist/cjs/clusters/commissioner-control.d.ts +268 -0
- package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -0
- package/dist/cjs/clusters/commissioner-control.js +194 -0
- package/dist/cjs/clusters/commissioner-control.js.map +6 -0
- package/dist/cjs/clusters/content-control.d.ts +497 -221
- package/dist/cjs/clusters/content-control.d.ts.map +1 -1
- package/dist/cjs/clusters/content-control.js +59 -41
- package/dist/cjs/clusters/content-control.js.map +2 -2
- package/dist/cjs/clusters/content-launcher.d.ts +248 -215
- package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
- package/dist/cjs/clusters/content-launcher.js +16 -15
- package/dist/cjs/clusters/content-launcher.js.map +1 -1
- package/dist/cjs/clusters/device-energy-management-mode.d.ts +76 -333
- package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/device-energy-management-mode.js +26 -73
- package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
- package/dist/cjs/clusters/device-energy-management.d.ts +1299 -930
- package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
- package/dist/cjs/clusters/device-energy-management.js +189 -160
- package/dist/cjs/clusters/device-energy-management.js.map +2 -2
- package/dist/cjs/clusters/dishwasher-alarm.d.ts +14 -17
- package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
- package/dist/cjs/clusters/dishwasher-alarm.js +3 -4
- package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
- package/dist/cjs/clusters/dishwasher-mode.d.ts +65 -105
- package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/dishwasher-mode.js +12 -24
- package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
- package/dist/cjs/clusters/door-lock.d.ts +2751 -5427
- package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
- package/dist/cjs/clusters/door-lock.js +480 -802
- package/dist/cjs/clusters/door-lock.js.map +2 -2
- package/dist/cjs/clusters/ecosystem-information.d.ts +186 -0
- package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -0
- package/dist/cjs/clusters/ecosystem-information.js +154 -0
- package/dist/cjs/clusters/ecosystem-information.js.map +6 -0
- package/dist/cjs/clusters/electrical-energy-measurement.d.ts +363 -368
- package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
- package/dist/cjs/clusters/electrical-energy-measurement.js +15 -16
- package/dist/cjs/clusters/electrical-energy-measurement.js.map +1 -1
- package/dist/cjs/clusters/energy-evse-mode.d.ts +92 -330
- package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/energy-evse-mode.js +25 -72
- package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
- package/dist/cjs/clusters/energy-evse.d.ts +557 -273
- package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
- package/dist/cjs/clusters/energy-evse.js +107 -55
- package/dist/cjs/clusters/energy-evse.js.map +1 -1
- package/dist/cjs/clusters/energy-preference.d.ts +76 -76
- package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
- package/dist/cjs/clusters/energy-preference.js +15 -18
- package/dist/cjs/clusters/energy-preference.js.map +1 -1
- package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +3 -9
- package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
- package/dist/cjs/clusters/ethernet-network-diagnostics.js +1 -3
- package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
- package/dist/cjs/clusters/fan-control.d.ts +12 -12
- package/dist/cjs/clusters/fan-control.js +4 -4
- package/dist/cjs/clusters/fixed-label.d.ts +7 -2
- package/dist/cjs/clusters/fixed-label.d.ts.map +1 -1
- package/dist/cjs/clusters/fixed-label.js.map +1 -1
- package/dist/cjs/clusters/flow-measurement.d.ts +4 -4
- package/dist/cjs/clusters/flow-measurement.d.ts.map +1 -1
- package/dist/cjs/clusters/flow-measurement.js +6 -6
- package/dist/cjs/clusters/flow-measurement.js.map +1 -1
- package/dist/cjs/clusters/general-commissioning.d.ts +1416 -111
- package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
- package/dist/cjs/clusters/general-commissioning.js +272 -54
- package/dist/cjs/clusters/general-commissioning.js.map +2 -2
- package/dist/cjs/clusters/general-diagnostics.d.ts +115 -122
- package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
- package/dist/cjs/clusters/general-diagnostics.js +31 -33
- package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
- package/dist/cjs/clusters/group-key-management.d.ts +72 -82
- package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
- package/dist/cjs/clusters/group-key-management.js +19 -22
- package/dist/cjs/clusters/group-key-management.js.map +1 -1
- package/dist/cjs/clusters/groups.d.ts +9 -6
- package/dist/cjs/clusters/groups.d.ts.map +1 -1
- package/dist/cjs/clusters/groups.js +3 -2
- package/dist/cjs/clusters/groups.js.map +1 -1
- package/dist/cjs/clusters/icd-management.d.ts +223 -66
- package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
- package/dist/cjs/clusters/icd-management.js +61 -23
- package/dist/cjs/clusters/icd-management.js.map +2 -2
- package/dist/cjs/clusters/identify.d.ts +12 -13
- package/dist/cjs/clusters/identify.d.ts.map +1 -1
- package/dist/cjs/clusters/identify.js +9 -10
- package/dist/cjs/clusters/identify.js.map +1 -1
- package/dist/cjs/clusters/illuminance-measurement.d.ts +7 -8
- package/dist/cjs/clusters/illuminance-measurement.d.ts.map +1 -1
- package/dist/cjs/clusters/illuminance-measurement.js +9 -10
- package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
- package/dist/cjs/clusters/index.d.ts +11 -1
- package/dist/cjs/clusters/index.d.ts.map +1 -1
- package/dist/cjs/clusters/index.js +33 -3
- package/dist/cjs/clusters/index.js.map +1 -1
- package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
- package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
- package/dist/cjs/clusters/joint-fabric-datastore-cluster.js +490 -0
- package/dist/cjs/clusters/joint-fabric-datastore-cluster.js.map +6 -0
- package/dist/cjs/clusters/joint-fabric-pki.d.ts +174 -0
- package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +1 -0
- package/dist/cjs/clusters/joint-fabric-pki.js +120 -0
- package/dist/cjs/clusters/joint-fabric-pki.js.map +6 -0
- package/dist/cjs/clusters/keypad-input.d.ts +2 -2
- package/dist/cjs/clusters/laundry-dryer-controls.d.ts +6 -7
- package/dist/cjs/clusters/laundry-dryer-controls.d.ts.map +1 -1
- package/dist/cjs/clusters/laundry-dryer-controls.js +5 -9
- package/dist/cjs/clusters/laundry-dryer-controls.js.map +1 -1
- package/dist/cjs/clusters/laundry-washer-controls.d.ts +74 -62
- package/dist/cjs/clusters/laundry-washer-controls.d.ts.map +1 -1
- package/dist/cjs/clusters/laundry-washer-controls.js +26 -25
- package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
- package/dist/cjs/clusters/laundry-washer-mode.d.ts +69 -109
- package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/laundry-washer-mode.js +13 -25
- package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
- package/dist/cjs/clusters/level-control.d.ts +209 -70
- package/dist/cjs/clusters/level-control.d.ts.map +1 -1
- package/dist/cjs/clusters/level-control.js +45 -12
- package/dist/cjs/clusters/level-control.js.map +1 -1
- package/dist/cjs/clusters/localization-configuration.d.ts +5 -6
- package/dist/cjs/clusters/localization-configuration.d.ts.map +1 -1
- package/dist/cjs/clusters/localization-configuration.js +5 -6
- package/dist/cjs/clusters/localization-configuration.js.map +1 -1
- package/dist/cjs/clusters/media-input.d.ts +9 -6
- package/dist/cjs/clusters/media-input.d.ts.map +1 -1
- package/dist/cjs/clusters/media-input.js +3 -2
- package/dist/cjs/clusters/media-input.js.map +1 -1
- package/dist/cjs/clusters/media-playback.d.ts +29 -24
- package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
- package/dist/cjs/clusters/media-playback.js +5 -4
- package/dist/cjs/clusters/media-playback.js.map +1 -1
- package/dist/cjs/clusters/microwave-oven-control.d.ts +54 -48
- package/dist/cjs/clusters/microwave-oven-control.d.ts.map +1 -1
- package/dist/cjs/clusters/microwave-oven-control.js +19 -17
- package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
- package/dist/cjs/clusters/microwave-oven-mode.d.ts +63 -69
- package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/microwave-oven-mode.js +14 -11
- package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
- package/dist/cjs/clusters/mode-base.d.ts +27 -46
- package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
- package/dist/cjs/clusters/mode-base.js +9 -10
- package/dist/cjs/clusters/mode-base.js.map +1 -1
- package/dist/cjs/clusters/mode-select.d.ts +33 -27
- package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
- package/dist/cjs/clusters/mode-select.js +14 -13
- package/dist/cjs/clusters/mode-select.js.map +1 -1
- package/dist/cjs/clusters/network-commissioning.d.ts +263 -240
- package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
- package/dist/cjs/clusters/network-commissioning.js +46 -39
- package/dist/cjs/clusters/network-commissioning.js.map +1 -1
- package/dist/cjs/clusters/occupancy-sensing.d.ts +1002 -63
- package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
- package/dist/cjs/clusters/occupancy-sensing.js +278 -63
- package/dist/cjs/clusters/occupancy-sensing.js.map +2 -2
- package/dist/cjs/clusters/on-off.d.ts +18 -24
- package/dist/cjs/clusters/on-off.d.ts.map +1 -1
- package/dist/cjs/clusters/on-off.js +3 -4
- package/dist/cjs/clusters/on-off.js.map +1 -1
- package/dist/cjs/clusters/operational-credentials.d.ts +98 -85
- package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
- package/dist/cjs/clusters/operational-credentials.js +56 -49
- package/dist/cjs/clusters/operational-credentials.js.map +1 -1
- package/dist/cjs/clusters/operational-state.d.ts +136 -57
- package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
- package/dist/cjs/clusters/operational-state.js +62 -36
- package/dist/cjs/clusters/operational-state.js.map +2 -2
- package/dist/cjs/clusters/ota-software-update-provider.d.ts +43 -42
- package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
- package/dist/cjs/clusters/ota-software-update-provider.js +20 -19
- package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
- package/dist/cjs/clusters/ota-software-update-requestor.d.ts +6 -10
- package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
- package/dist/cjs/clusters/ota-software-update-requestor.js +4 -6
- package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
- package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +44 -154
- package/dist/cjs/clusters/oven-cavity-operational-state.d.ts.map +1 -1
- package/dist/cjs/clusters/oven-cavity-operational-state.js +39 -156
- package/dist/cjs/clusters/oven-cavity-operational-state.js.map +1 -1
- package/dist/cjs/clusters/oven-mode.d.ts +79 -349
- package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/oven-mode.js +26 -82
- package/dist/cjs/clusters/oven-mode.js.map +1 -1
- package/dist/cjs/clusters/power-source.d.ts +169 -44
- package/dist/cjs/clusters/power-source.d.ts.map +1 -1
- package/dist/cjs/clusters/power-source.js +40 -16
- package/dist/cjs/clusters/power-source.js.map +1 -1
- package/dist/cjs/clusters/pressure-measurement.js +2 -2
- package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
- package/dist/cjs/clusters/pump-configuration-and-control.d.ts +73 -63
- package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
- package/dist/cjs/clusters/pump-configuration-and-control.js +19 -20
- package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
- package/dist/cjs/clusters/refrigerator-alarm.d.ts +2 -1
- package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
- package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +11 -19
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
- package/dist/cjs/clusters/relative-humidity-measurement.js +1 -1
- package/dist/cjs/clusters/relative-humidity-measurement.js.map +1 -1
- package/dist/cjs/clusters/rvc-clean-mode.d.ts +59 -103
- package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-clean-mode.js +11 -15
- package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
- package/dist/cjs/clusters/rvc-operational-state.d.ts +81 -25
- package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-operational-state.js +49 -20
- package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
- package/dist/cjs/clusters/rvc-run-mode.d.ts +85 -129
- package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-run-mode.js +16 -15
- package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
- package/dist/cjs/clusters/scenes-management.d.ts +328 -181
- package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
- package/dist/cjs/clusters/scenes-management.js +37 -22
- package/dist/cjs/clusters/scenes-management.js.map +1 -1
- package/dist/cjs/clusters/service-area.d.ts +2052 -0
- package/dist/cjs/clusters/service-area.d.ts.map +1 -0
- package/dist/cjs/clusters/service-area.js +582 -0
- package/dist/cjs/clusters/service-area.js.map +6 -0
- package/dist/cjs/clusters/smoke-co-alarm.d.ts +10 -18
- package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
- package/dist/cjs/clusters/smoke-co-alarm.js +2 -3
- package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
- package/dist/cjs/clusters/switch.d.ts +478 -191
- package/dist/cjs/clusters/switch.d.ts.map +1 -1
- package/dist/cjs/clusters/switch.js +145 -57
- package/dist/cjs/clusters/switch.js.map +1 -1
- package/dist/cjs/clusters/target-navigator.d.ts +1 -1
- package/dist/cjs/clusters/target-navigator.js +1 -1
- package/dist/cjs/clusters/thermostat.d.ts +3877 -830
- package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
- package/dist/cjs/clusters/thermostat.js +841 -159
- package/dist/cjs/clusters/thermostat.js.map +2 -2
- package/dist/cjs/clusters/thread-border-router-management.d.ts +711 -0
- package/dist/cjs/clusters/thread-border-router-management.d.ts.map +1 -0
- package/dist/cjs/clusters/thread-border-router-management.js +265 -0
- package/dist/cjs/clusters/thread-border-router-management.js.map +6 -0
- package/dist/cjs/clusters/thread-network-diagnostics.d.ts +81 -55
- package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
- package/dist/cjs/clusters/thread-network-diagnostics.js +32 -21
- package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
- package/dist/cjs/clusters/thread-network-directory.d.ts +250 -0
- package/dist/cjs/clusters/thread-network-directory.d.ts.map +1 -0
- package/dist/cjs/clusters/thread-network-directory.js +187 -0
- package/dist/cjs/clusters/thread-network-directory.js.map +6 -0
- package/dist/cjs/clusters/time-synchronization.d.ts +101 -76
- package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
- package/dist/cjs/clusters/time-synchronization.js +30 -23
- package/dist/cjs/clusters/time-synchronization.js.map +1 -1
- package/dist/cjs/clusters/unit-localization.d.ts +3 -4
- package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
- package/dist/cjs/clusters/unit-localization.js.map +1 -1
- package/dist/cjs/clusters/user-label.d.ts +2 -1
- package/dist/cjs/clusters/user-label.d.ts.map +1 -1
- package/dist/cjs/clusters/user-label.js.map +1 -1
- package/dist/cjs/clusters/water-heater-management.d.ts +1371 -0
- package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -0
- package/dist/cjs/clusters/water-heater-management.js +336 -0
- package/dist/cjs/clusters/water-heater-management.js.map +6 -0
- package/dist/cjs/clusters/water-heater-mode.d.ts +491 -0
- package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -0
- package/dist/cjs/clusters/water-heater-mode.js +195 -0
- package/dist/cjs/clusters/water-heater-mode.js.map +6 -0
- package/dist/cjs/clusters/water-tank-level-monitoring.d.ts +162 -0
- package/dist/cjs/clusters/water-tank-level-monitoring.d.ts.map +1 -0
- package/dist/cjs/clusters/water-tank-level-monitoring.js +47 -0
- package/dist/cjs/clusters/water-tank-level-monitoring.js.map +6 -0
- package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +20 -27
- package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
- package/dist/cjs/clusters/wi-fi-network-diagnostics.js +6 -8
- package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
- package/dist/cjs/clusters/wi-fi-network-management.d.ts +91 -0
- package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -0
- package/dist/cjs/clusters/wi-fi-network-management.js +122 -0
- package/dist/cjs/clusters/wi-fi-network-management.js.map +6 -0
- package/dist/cjs/clusters/window-covering.d.ts +66 -78
- package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
- package/dist/cjs/clusters/window-covering.js +26 -37
- package/dist/cjs/clusters/window-covering.js.map +1 -1
- package/dist/cjs/globals/AtomicAttributeStatus.d.ts +34 -0
- package/dist/cjs/globals/AtomicAttributeStatus.d.ts.map +1 -0
- package/dist/cjs/globals/AtomicAttributeStatus.js +46 -0
- package/dist/cjs/globals/AtomicAttributeStatus.js.map +6 -0
- package/dist/cjs/globals/AtomicRequestType.d.ts +24 -0
- package/dist/cjs/globals/AtomicRequestType.d.ts.map +1 -0
- package/dist/cjs/globals/AtomicRequestType.js +35 -0
- package/dist/cjs/globals/AtomicRequestType.js.map +6 -0
- package/dist/cjs/globals/Locationdesc.d.ts +79 -0
- package/dist/cjs/globals/Locationdesc.d.ts.map +1 -0
- package/dist/cjs/globals/Locationdesc.js +89 -0
- package/dist/cjs/globals/Locationdesc.js.map +6 -0
- package/dist/cjs/globals/Priority.d.ts +1 -1
- package/dist/cjs/globals/Semtag.d.ts +6 -6
- package/dist/cjs/globals/Semtag.js +4 -4
- package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
- package/dist/cjs/globals/Status.d.ts +18 -3
- package/dist/cjs/globals/Status.d.ts.map +1 -1
- package/dist/cjs/globals/Status.js +3 -1
- package/dist/cjs/globals/Status.js.map +1 -1
- package/dist/cjs/globals/Tod.d.ts +2 -2
- package/dist/cjs/globals/index.d.ts +3 -0
- package/dist/cjs/globals/index.d.ts.map +1 -1
- package/dist/cjs/globals/index.js +3 -0
- package/dist/cjs/globals/index.js.map +1 -1
- package/dist/cjs/schema/QrCodeSchema.d.ts.map +1 -1
- package/dist/cjs/schema/QrCodeSchema.js +4 -1
- package/dist/cjs/schema/QrCodeSchema.js.map +1 -1
- package/dist/esm/clusters/access-control.d.ts +3972 -522
- package/dist/esm/clusters/access-control.d.ts.map +1 -1
- package/dist/esm/clusters/access-control.js +645 -120
- package/dist/esm/clusters/access-control.js.map +2 -2
- package/dist/esm/clusters/actions.d.ts +10 -9
- package/dist/esm/clusters/actions.d.ts.map +1 -1
- package/dist/esm/clusters/actions.js +4 -4
- package/dist/esm/clusters/actions.js.map +1 -1
- package/dist/esm/clusters/administrator-commissioning.d.ts +156 -129
- package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
- package/dist/esm/clusters/administrator-commissioning.js +40 -35
- package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
- package/dist/esm/clusters/alarm-base.d.ts +9 -12
- package/dist/esm/clusters/alarm-base.d.ts.map +1 -1
- package/dist/esm/clusters/alarm-base.js +3 -4
- package/dist/esm/clusters/alarm-base.js.map +1 -1
- package/dist/esm/clusters/application-launcher.d.ts +27 -15
- package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
- package/dist/esm/clusters/application-launcher.js +7 -4
- package/dist/esm/clusters/application-launcher.js.map +1 -1
- package/dist/esm/clusters/ballast-configuration.d.ts +7 -7
- package/dist/esm/clusters/ballast-configuration.js +7 -7
- package/dist/esm/clusters/basic-information.d.ts +29 -21
- package/dist/esm/clusters/basic-information.d.ts.map +1 -1
- package/dist/esm/clusters/basic-information.js +29 -21
- package/dist/esm/clusters/basic-information.js.map +1 -1
- package/dist/esm/clusters/bridged-device-basic-information.d.ts +816 -34
- package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
- package/dist/esm/clusters/bridged-device-basic-information.js +188 -32
- package/dist/esm/clusters/bridged-device-basic-information.js.map +2 -2
- package/dist/esm/clusters/channel.d.ts +115 -124
- package/dist/esm/clusters/channel.d.ts.map +1 -1
- package/dist/esm/clusters/channel.js +15 -16
- package/dist/esm/clusters/channel.js.map +1 -1
- package/dist/esm/clusters/color-control.d.ts +3076 -1366
- package/dist/esm/clusters/color-control.d.ts.map +1 -1
- package/dist/esm/clusters/color-control.js +424 -358
- package/dist/esm/clusters/color-control.js.map +2 -2
- package/dist/esm/clusters/commissioner-control.d.ts +268 -0
- package/dist/esm/clusters/commissioner-control.d.ts.map +1 -0
- package/dist/esm/clusters/commissioner-control.js +174 -0
- package/dist/esm/clusters/commissioner-control.js.map +6 -0
- package/dist/esm/clusters/content-control.d.ts +497 -221
- package/dist/esm/clusters/content-control.d.ts.map +1 -1
- package/dist/esm/clusters/content-control.js +60 -42
- package/dist/esm/clusters/content-control.js.map +2 -2
- package/dist/esm/clusters/content-launcher.d.ts +248 -215
- package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
- package/dist/esm/clusters/content-launcher.js +16 -15
- package/dist/esm/clusters/content-launcher.js.map +1 -1
- package/dist/esm/clusters/device-energy-management-mode.d.ts +76 -333
- package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
- package/dist/esm/clusters/device-energy-management-mode.js +26 -80
- package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
- package/dist/esm/clusters/device-energy-management.d.ts +1299 -930
- package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
- package/dist/esm/clusters/device-energy-management.js +189 -160
- package/dist/esm/clusters/device-energy-management.js.map +2 -2
- package/dist/esm/clusters/dishwasher-alarm.d.ts +14 -17
- package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
- package/dist/esm/clusters/dishwasher-alarm.js +3 -4
- package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
- package/dist/esm/clusters/dishwasher-mode.d.ts +65 -105
- package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
- package/dist/esm/clusters/dishwasher-mode.js +13 -25
- package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
- package/dist/esm/clusters/door-lock.d.ts +2751 -5427
- package/dist/esm/clusters/door-lock.d.ts.map +1 -1
- package/dist/esm/clusters/door-lock.js +482 -804
- package/dist/esm/clusters/door-lock.js.map +2 -2
- package/dist/esm/clusters/ecosystem-information.d.ts +186 -0
- package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -0
- package/dist/esm/clusters/ecosystem-information.js +134 -0
- package/dist/esm/clusters/ecosystem-information.js.map +6 -0
- package/dist/esm/clusters/electrical-energy-measurement.d.ts +363 -368
- package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
- package/dist/esm/clusters/electrical-energy-measurement.js +15 -16
- package/dist/esm/clusters/electrical-energy-measurement.js.map +1 -1
- package/dist/esm/clusters/energy-evse-mode.d.ts +92 -330
- package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
- package/dist/esm/clusters/energy-evse-mode.js +25 -79
- package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
- package/dist/esm/clusters/energy-evse.d.ts +557 -273
- package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
- package/dist/esm/clusters/energy-evse.js +107 -55
- package/dist/esm/clusters/energy-evse.js.map +1 -1
- package/dist/esm/clusters/energy-preference.d.ts +76 -76
- package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
- package/dist/esm/clusters/energy-preference.js +15 -18
- package/dist/esm/clusters/energy-preference.js.map +1 -1
- package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +3 -9
- package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
- package/dist/esm/clusters/ethernet-network-diagnostics.js +1 -3
- package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
- package/dist/esm/clusters/fan-control.d.ts +12 -12
- package/dist/esm/clusters/fan-control.js +4 -4
- package/dist/esm/clusters/fixed-label.d.ts +7 -2
- package/dist/esm/clusters/fixed-label.d.ts.map +1 -1
- package/dist/esm/clusters/fixed-label.js.map +1 -1
- package/dist/esm/clusters/flow-measurement.d.ts +4 -4
- package/dist/esm/clusters/flow-measurement.d.ts.map +1 -1
- package/dist/esm/clusters/flow-measurement.js +6 -6
- package/dist/esm/clusters/flow-measurement.js.map +1 -1
- package/dist/esm/clusters/general-commissioning.d.ts +1416 -111
- package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
- package/dist/esm/clusters/general-commissioning.js +274 -56
- package/dist/esm/clusters/general-commissioning.js.map +2 -2
- package/dist/esm/clusters/general-diagnostics.d.ts +115 -122
- package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
- package/dist/esm/clusters/general-diagnostics.js +31 -33
- package/dist/esm/clusters/general-diagnostics.js.map +1 -1
- package/dist/esm/clusters/group-key-management.d.ts +72 -82
- package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
- package/dist/esm/clusters/group-key-management.js +19 -22
- package/dist/esm/clusters/group-key-management.js.map +1 -1
- package/dist/esm/clusters/groups.d.ts +9 -6
- package/dist/esm/clusters/groups.d.ts.map +1 -1
- package/dist/esm/clusters/groups.js +3 -2
- package/dist/esm/clusters/groups.js.map +1 -1
- package/dist/esm/clusters/icd-management.d.ts +223 -66
- package/dist/esm/clusters/icd-management.d.ts.map +1 -1
- package/dist/esm/clusters/icd-management.js +61 -23
- package/dist/esm/clusters/icd-management.js.map +2 -2
- package/dist/esm/clusters/identify.d.ts +12 -13
- package/dist/esm/clusters/identify.d.ts.map +1 -1
- package/dist/esm/clusters/identify.js +9 -10
- package/dist/esm/clusters/identify.js.map +1 -1
- package/dist/esm/clusters/illuminance-measurement.d.ts +7 -8
- package/dist/esm/clusters/illuminance-measurement.d.ts.map +1 -1
- package/dist/esm/clusters/illuminance-measurement.js +9 -10
- package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
- package/dist/esm/clusters/index.d.ts +11 -1
- package/dist/esm/clusters/index.d.ts.map +1 -1
- package/dist/esm/clusters/index.js +36 -3
- package/dist/esm/clusters/index.js.map +1 -1
- package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
- package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
- package/dist/esm/clusters/joint-fabric-datastore-cluster.js +470 -0
- package/dist/esm/clusters/joint-fabric-datastore-cluster.js.map +6 -0
- package/dist/esm/clusters/joint-fabric-pki.d.ts +174 -0
- package/dist/esm/clusters/joint-fabric-pki.d.ts.map +1 -0
- package/dist/esm/clusters/joint-fabric-pki.js +100 -0
- package/dist/esm/clusters/joint-fabric-pki.js.map +6 -0
- package/dist/esm/clusters/keypad-input.d.ts +2 -2
- package/dist/esm/clusters/laundry-dryer-controls.d.ts +6 -7
- package/dist/esm/clusters/laundry-dryer-controls.d.ts.map +1 -1
- package/dist/esm/clusters/laundry-dryer-controls.js +6 -10
- package/dist/esm/clusters/laundry-dryer-controls.js.map +1 -1
- package/dist/esm/clusters/laundry-washer-controls.d.ts +74 -62
- package/dist/esm/clusters/laundry-washer-controls.d.ts.map +1 -1
- package/dist/esm/clusters/laundry-washer-controls.js +26 -25
- package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
- package/dist/esm/clusters/laundry-washer-mode.d.ts +69 -109
- package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
- package/dist/esm/clusters/laundry-washer-mode.js +14 -26
- package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
- package/dist/esm/clusters/level-control.d.ts +209 -70
- package/dist/esm/clusters/level-control.d.ts.map +1 -1
- package/dist/esm/clusters/level-control.js +45 -12
- package/dist/esm/clusters/level-control.js.map +1 -1
- package/dist/esm/clusters/localization-configuration.d.ts +5 -6
- package/dist/esm/clusters/localization-configuration.d.ts.map +1 -1
- package/dist/esm/clusters/localization-configuration.js +5 -6
- package/dist/esm/clusters/localization-configuration.js.map +1 -1
- package/dist/esm/clusters/media-input.d.ts +9 -6
- package/dist/esm/clusters/media-input.d.ts.map +1 -1
- package/dist/esm/clusters/media-input.js +3 -2
- package/dist/esm/clusters/media-input.js.map +1 -1
- package/dist/esm/clusters/media-playback.d.ts +29 -24
- package/dist/esm/clusters/media-playback.d.ts.map +1 -1
- package/dist/esm/clusters/media-playback.js +5 -4
- package/dist/esm/clusters/media-playback.js.map +1 -1
- package/dist/esm/clusters/microwave-oven-control.d.ts +54 -48
- package/dist/esm/clusters/microwave-oven-control.d.ts.map +1 -1
- package/dist/esm/clusters/microwave-oven-control.js +19 -17
- package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
- package/dist/esm/clusters/microwave-oven-mode.d.ts +63 -69
- package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
- package/dist/esm/clusters/microwave-oven-mode.js +14 -11
- package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
- package/dist/esm/clusters/mode-base.d.ts +27 -46
- package/dist/esm/clusters/mode-base.d.ts.map +1 -1
- package/dist/esm/clusters/mode-base.js +9 -10
- package/dist/esm/clusters/mode-base.js.map +1 -1
- package/dist/esm/clusters/mode-select.d.ts +33 -27
- package/dist/esm/clusters/mode-select.d.ts.map +1 -1
- package/dist/esm/clusters/mode-select.js +14 -13
- package/dist/esm/clusters/mode-select.js.map +1 -1
- package/dist/esm/clusters/network-commissioning.d.ts +263 -240
- package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
- package/dist/esm/clusters/network-commissioning.js +46 -39
- package/dist/esm/clusters/network-commissioning.js.map +1 -1
- package/dist/esm/clusters/occupancy-sensing.d.ts +1002 -63
- package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
- package/dist/esm/clusters/occupancy-sensing.js +287 -65
- package/dist/esm/clusters/occupancy-sensing.js.map +2 -2
- package/dist/esm/clusters/on-off.d.ts +18 -24
- package/dist/esm/clusters/on-off.d.ts.map +1 -1
- package/dist/esm/clusters/on-off.js +3 -4
- package/dist/esm/clusters/on-off.js.map +1 -1
- package/dist/esm/clusters/operational-credentials.d.ts +98 -85
- package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
- package/dist/esm/clusters/operational-credentials.js +56 -49
- package/dist/esm/clusters/operational-credentials.js.map +1 -1
- package/dist/esm/clusters/operational-state.d.ts +136 -57
- package/dist/esm/clusters/operational-state.d.ts.map +1 -1
- package/dist/esm/clusters/operational-state.js +63 -37
- package/dist/esm/clusters/operational-state.js.map +2 -2
- package/dist/esm/clusters/ota-software-update-provider.d.ts +43 -42
- package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
- package/dist/esm/clusters/ota-software-update-provider.js +20 -19
- package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
- package/dist/esm/clusters/ota-software-update-requestor.d.ts +6 -10
- package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
- package/dist/esm/clusters/ota-software-update-requestor.js +4 -6
- package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
- package/dist/esm/clusters/oven-cavity-operational-state.d.ts +44 -154
- package/dist/esm/clusters/oven-cavity-operational-state.d.ts.map +1 -1
- package/dist/esm/clusters/oven-cavity-operational-state.js +41 -166
- package/dist/esm/clusters/oven-cavity-operational-state.js.map +1 -1
- package/dist/esm/clusters/oven-mode.d.ts +79 -349
- package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
- package/dist/esm/clusters/oven-mode.js +26 -89
- package/dist/esm/clusters/oven-mode.js.map +1 -1
- package/dist/esm/clusters/power-source.d.ts +169 -44
- package/dist/esm/clusters/power-source.d.ts.map +1 -1
- package/dist/esm/clusters/power-source.js +40 -16
- package/dist/esm/clusters/power-source.js.map +1 -1
- package/dist/esm/clusters/pressure-measurement.js +2 -2
- package/dist/esm/clusters/pressure-measurement.js.map +1 -1
- package/dist/esm/clusters/pump-configuration-and-control.d.ts +73 -63
- package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
- package/dist/esm/clusters/pump-configuration-and-control.js +19 -20
- package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
- package/dist/esm/clusters/refrigerator-alarm.d.ts +2 -1
- package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
- package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +12 -20
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
- package/dist/esm/clusters/relative-humidity-measurement.js +1 -1
- package/dist/esm/clusters/relative-humidity-measurement.js.map +1 -1
- package/dist/esm/clusters/rvc-clean-mode.d.ts +59 -103
- package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-clean-mode.js +11 -15
- package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
- package/dist/esm/clusters/rvc-operational-state.d.ts +81 -25
- package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-operational-state.js +49 -20
- package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
- package/dist/esm/clusters/rvc-run-mode.d.ts +85 -129
- package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-run-mode.js +16 -15
- package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
- package/dist/esm/clusters/scenes-management.d.ts +328 -181
- package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
- package/dist/esm/clusters/scenes-management.js +37 -22
- package/dist/esm/clusters/scenes-management.js.map +1 -1
- package/dist/esm/clusters/service-area.d.ts +2052 -0
- package/dist/esm/clusters/service-area.d.ts.map +1 -0
- package/dist/esm/clusters/service-area.js +562 -0
- package/dist/esm/clusters/service-area.js.map +6 -0
- package/dist/esm/clusters/smoke-co-alarm.d.ts +10 -18
- package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
- package/dist/esm/clusters/smoke-co-alarm.js +2 -3
- package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
- package/dist/esm/clusters/switch.d.ts +478 -191
- package/dist/esm/clusters/switch.d.ts.map +1 -1
- package/dist/esm/clusters/switch.js +145 -57
- package/dist/esm/clusters/switch.js.map +1 -1
- package/dist/esm/clusters/target-navigator.d.ts +1 -1
- package/dist/esm/clusters/target-navigator.js +1 -1
- package/dist/esm/clusters/thermostat.d.ts +3877 -830
- package/dist/esm/clusters/thermostat.d.ts.map +1 -1
- package/dist/esm/clusters/thermostat.js +842 -160
- package/dist/esm/clusters/thermostat.js.map +2 -2
- package/dist/esm/clusters/thread-border-router-management.d.ts +711 -0
- package/dist/esm/clusters/thread-border-router-management.d.ts.map +1 -0
- package/dist/esm/clusters/thread-border-router-management.js +245 -0
- package/dist/esm/clusters/thread-border-router-management.js.map +6 -0
- package/dist/esm/clusters/thread-network-diagnostics.d.ts +81 -55
- package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
- package/dist/esm/clusters/thread-network-diagnostics.js +32 -21
- package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
- package/dist/esm/clusters/thread-network-directory.d.ts +250 -0
- package/dist/esm/clusters/thread-network-directory.d.ts.map +1 -0
- package/dist/esm/clusters/thread-network-directory.js +167 -0
- package/dist/esm/clusters/thread-network-directory.js.map +6 -0
- package/dist/esm/clusters/time-synchronization.d.ts +101 -76
- package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
- package/dist/esm/clusters/time-synchronization.js +30 -23
- package/dist/esm/clusters/time-synchronization.js.map +1 -1
- package/dist/esm/clusters/unit-localization.d.ts +3 -4
- package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
- package/dist/esm/clusters/unit-localization.js.map +1 -1
- package/dist/esm/clusters/user-label.d.ts +2 -1
- package/dist/esm/clusters/user-label.d.ts.map +1 -1
- package/dist/esm/clusters/user-label.js.map +1 -1
- package/dist/esm/clusters/water-heater-management.d.ts +1371 -0
- package/dist/esm/clusters/water-heater-management.d.ts.map +1 -0
- package/dist/esm/clusters/water-heater-management.js +325 -0
- package/dist/esm/clusters/water-heater-management.js.map +6 -0
- package/dist/esm/clusters/water-heater-mode.d.ts +491 -0
- package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -0
- package/dist/esm/clusters/water-heater-mode.js +175 -0
- package/dist/esm/clusters/water-heater-mode.js.map +6 -0
- package/dist/esm/clusters/water-tank-level-monitoring.d.ts +162 -0
- package/dist/esm/clusters/water-tank-level-monitoring.d.ts.map +1 -0
- package/dist/esm/clusters/water-tank-level-monitoring.js +27 -0
- package/dist/esm/clusters/water-tank-level-monitoring.js.map +6 -0
- package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +20 -27
- package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
- package/dist/esm/clusters/wi-fi-network-diagnostics.js +6 -8
- package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
- package/dist/esm/clusters/wi-fi-network-management.d.ts +91 -0
- package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -0
- package/dist/esm/clusters/wi-fi-network-management.js +102 -0
- package/dist/esm/clusters/wi-fi-network-management.js.map +6 -0
- package/dist/esm/clusters/window-covering.d.ts +66 -78
- package/dist/esm/clusters/window-covering.d.ts.map +1 -1
- package/dist/esm/clusters/window-covering.js +26 -37
- package/dist/esm/clusters/window-covering.js.map +1 -1
- package/dist/esm/globals/AtomicAttributeStatus.d.ts +34 -0
- package/dist/esm/globals/AtomicAttributeStatus.d.ts.map +1 -0
- package/dist/esm/globals/AtomicAttributeStatus.js +26 -0
- package/dist/esm/globals/AtomicAttributeStatus.js.map +6 -0
- package/dist/esm/globals/AtomicRequestType.d.ts +24 -0
- package/dist/esm/globals/AtomicRequestType.d.ts.map +1 -0
- package/dist/esm/globals/AtomicRequestType.js +15 -0
- package/dist/esm/globals/AtomicRequestType.js.map +6 -0
- package/dist/esm/globals/Locationdesc.d.ts +79 -0
- package/dist/esm/globals/Locationdesc.d.ts.map +1 -0
- package/dist/esm/globals/Locationdesc.js +69 -0
- package/dist/esm/globals/Locationdesc.js.map +6 -0
- package/dist/esm/globals/Priority.d.ts +1 -1
- package/dist/esm/globals/Semtag.d.ts +6 -6
- package/dist/esm/globals/Semtag.js +4 -4
- package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
- package/dist/esm/globals/Status.d.ts +18 -3
- package/dist/esm/globals/Status.d.ts.map +1 -1
- package/dist/esm/globals/Status.js +3 -1
- package/dist/esm/globals/Status.js.map +1 -1
- package/dist/esm/globals/Tod.d.ts +2 -2
- package/dist/esm/globals/index.d.ts +3 -0
- package/dist/esm/globals/index.d.ts.map +1 -1
- package/dist/esm/globals/index.js +3 -0
- package/dist/esm/globals/index.js.map +1 -1
- package/dist/esm/schema/QrCodeSchema.d.ts.map +1 -1
- package/dist/esm/schema/QrCodeSchema.js +4 -1
- package/dist/esm/schema/QrCodeSchema.js.map +1 -1
- package/package.json +5 -5
- package/src/clusters/access-control.ts +926 -171
- package/src/clusters/actions.ts +12 -11
- package/src/clusters/administrator-commissioning.ts +54 -35
- package/src/clusters/alarm-base.ts +3 -4
- package/src/clusters/application-launcher.ts +22 -7
- package/src/clusters/ballast-configuration.ts +7 -7
- package/src/clusters/basic-information.ts +29 -21
- package/src/clusters/bridged-device-basic-information.ts +264 -41
- package/src/clusters/channel.ts +20 -17
- package/src/clusters/color-control.ts +589 -426
- package/src/clusters/commissioner-control.ts +282 -0
- package/src/clusters/content-control.ts +48 -54
- package/src/clusters/content-launcher.ts +16 -15
- package/src/clusters/device-energy-management-mode.ts +63 -161
- package/src/clusters/device-energy-management.ts +246 -193
- package/src/clusters/dishwasher-alarm.ts +5 -5
- package/src/clusters/dishwasher-mode.ts +46 -87
- package/src/clusters/door-lock.ts +786 -1235
- package/src/clusters/ecosystem-information.ts +200 -0
- package/src/clusters/electrical-energy-measurement.ts +15 -16
- package/src/clusters/energy-evse-mode.ts +81 -158
- package/src/clusters/energy-evse.ts +138 -72
- package/src/clusters/energy-preference.ts +34 -28
- package/src/clusters/ethernet-network-diagnostics.ts +1 -3
- package/src/clusters/fan-control.ts +5 -5
- package/src/clusters/fixed-label.ts +7 -2
- package/src/clusters/flow-measurement.ts +6 -6
- package/src/clusters/general-commissioning.ts +396 -96
- package/src/clusters/general-diagnostics.ts +31 -33
- package/src/clusters/group-key-management.ts +22 -24
- package/src/clusters/groups.ts +3 -2
- package/src/clusters/icd-management.ts +88 -31
- package/src/clusters/identify.ts +9 -10
- package/src/clusters/illuminance-measurement.ts +9 -10
- package/src/clusters/index.ts +14 -1
- package/src/clusters/joint-fabric-datastore-cluster.ts +657 -0
- package/src/clusters/joint-fabric-pki.ts +202 -0
- package/src/clusters/keypad-input.ts +2 -2
- package/src/clusters/laundry-dryer-controls.ts +6 -10
- package/src/clusters/laundry-washer-controls.ts +28 -27
- package/src/clusters/laundry-washer-mode.ts +49 -90
- package/src/clusters/level-control.ts +45 -12
- package/src/clusters/localization-configuration.ts +5 -6
- package/src/clusters/media-input.ts +3 -2
- package/src/clusters/media-playback.ts +9 -7
- package/src/clusters/microwave-oven-control.ts +19 -17
- package/src/clusters/microwave-oven-mode.ts +42 -61
- package/src/clusters/mode-base.ts +16 -33
- package/src/clusters/mode-select.ts +17 -14
- package/src/clusters/network-commissioning.ts +47 -40
- package/src/clusters/occupancy-sensing.ts +433 -72
- package/src/clusters/on-off.ts +6 -8
- package/src/clusters/operational-credentials.ts +54 -47
- package/src/clusters/operational-state.ts +136 -58
- package/src/clusters/ota-software-update-provider.ts +23 -23
- package/src/clusters/ota-software-update-requestor.ts +4 -6
- package/src/clusters/oven-cavity-operational-state.ts +43 -171
- package/src/clusters/oven-mode.ts +76 -178
- package/src/clusters/power-source.ts +45 -21
- package/src/clusters/pressure-measurement.ts +2 -2
- package/src/clusters/pump-configuration-and-control.ts +35 -23
- package/src/clusters/refrigerator-alarm.ts +2 -1
- package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +41 -78
- package/src/clusters/relative-humidity-measurement.ts +1 -1
- package/src/clusters/rvc-clean-mode.ts +42 -101
- package/src/clusters/rvc-operational-state.ts +87 -25
- package/src/clusters/rvc-run-mode.ts +62 -126
- package/src/clusters/scenes-management.ts +38 -23
- package/src/clusters/service-area.ts +904 -0
- package/src/clusters/smoke-co-alarm.ts +6 -12
- package/src/clusters/switch.ts +177 -78
- package/src/clusters/target-navigator.ts +1 -1
- package/src/clusters/thermostat.ts +1245 -214
- package/src/clusters/thread-border-router-management.ts +355 -0
- package/src/clusters/thread-network-diagnostics.ts +34 -21
- package/src/clusters/thread-network-directory.ts +256 -0
- package/src/clusters/time-synchronization.ts +30 -23
- package/src/clusters/unit-localization.ts +3 -4
- package/src/clusters/user-label.ts +2 -1
- package/src/clusters/water-heater-management.ts +457 -0
- package/src/clusters/water-heater-mode.ts +301 -0
- package/src/clusters/water-tank-level-monitoring.ts +50 -0
- package/src/clusters/wi-fi-network-diagnostics.ts +6 -8
- package/src/clusters/wi-fi-network-management.ts +119 -0
- package/src/clusters/window-covering.ts +26 -37
- package/src/globals/AtomicAttributeStatus.ts +41 -0
- package/src/globals/AtomicRequestType.ts +27 -0
- package/src/globals/Locationdesc.ts +88 -0
- package/src/globals/Priority.ts +1 -1
- package/src/globals/Semtag.ts +6 -6
- package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
- package/src/globals/Status.ts +20 -3
- package/src/globals/Tod.ts +2 -2
- package/src/globals/index.ts +3 -0
- package/src/schema/QrCodeSchema.ts +7 -2
- package/dist/cjs/clusters/pulse-width-modulation.d.ts +0 -2023
- package/dist/cjs/clusters/pulse-width-modulation.d.ts.map +0 -1
- package/dist/cjs/clusters/pulse-width-modulation.js +0 -51
- package/dist/cjs/clusters/pulse-width-modulation.js.map +0 -6
- package/dist/esm/clusters/pulse-width-modulation.d.ts +0 -2023
- package/dist/esm/clusters/pulse-width-modulation.d.ts.map +0 -1
- package/dist/esm/clusters/pulse-width-modulation.js +0 -31
- package/dist/esm/clusters/pulse-width-modulation.js.map +0 -6
- package/src/clusters/pulse-width-modulation.ts +0 -54
|
@@ -9,34 +9,629 @@
|
|
|
9
9
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
10
10
|
import {
|
|
11
11
|
WritableFabricScopedAttribute,
|
|
12
|
-
OptionalWritableFabricScopedAttribute,
|
|
13
|
-
FixedAttribute,
|
|
14
12
|
Event,
|
|
15
|
-
EventPriority
|
|
13
|
+
EventPriority,
|
|
14
|
+
FixedAttribute,
|
|
15
|
+
FabricScopedAttribute,
|
|
16
|
+
Command
|
|
16
17
|
} from "../cluster/Cluster.js";
|
|
17
18
|
import { TlvArray } from "../tlv/TlvArray.js";
|
|
18
|
-
import { TlvField, TlvObject } from "../tlv/TlvObject.js";
|
|
19
|
-
import {
|
|
20
|
-
import { TlvSubjectId } from "../datatype/SubjectId.js";
|
|
21
|
-
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
22
|
-
import { TlvClusterId } from "../datatype/ClusterId.js";
|
|
23
|
-
import { TlvEndpointNumber } from "../datatype/EndpointNumber.js";
|
|
24
|
-
import { TlvDeviceTypeId } from "../datatype/DeviceTypeId.js";
|
|
25
|
-
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
19
|
+
import { TlvField, TlvObject, TlvOptionalField } from "../tlv/TlvObject.js";
|
|
20
|
+
import { TlvByteString, TlvString } from "../tlv/TlvString.js";
|
|
26
21
|
import { TlvFabricIndex } from "../datatype/FabricIndex.js";
|
|
22
|
+
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
27
23
|
import { AccessLevel } from "#model";
|
|
28
|
-
import { TlvByteString } from "../tlv/TlvString.js";
|
|
29
24
|
import { TlvNodeId } from "../datatype/NodeId.js";
|
|
25
|
+
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
26
|
+
import { TlvUInt16, TlvEnum, TlvUInt32, TlvUInt64 } from "../tlv/TlvNumber.js";
|
|
27
|
+
import { TlvEndpointNumber } from "../datatype/EndpointNumber.js";
|
|
28
|
+
import { TlvClusterId } from "../datatype/ClusterId.js";
|
|
29
|
+
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
30
|
+
import { TlvSubjectId } from "../datatype/SubjectId.js";
|
|
31
|
+
import { TlvDeviceTypeId } from "../datatype/DeviceTypeId.js";
|
|
30
32
|
import { Identity } from "#general";
|
|
31
33
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
32
34
|
|
|
33
|
-
export namespace AccessControl {
|
|
35
|
+
export namespace AccessControl {
|
|
36
|
+
/**
|
|
37
|
+
* These are optional features supported by AccessControlCluster.
|
|
38
|
+
*
|
|
39
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.4
|
|
40
|
+
*/
|
|
41
|
+
export enum Feature {
|
|
42
|
+
/**
|
|
43
|
+
* Extension (EXTS)
|
|
44
|
+
*
|
|
45
|
+
* This feature indicates the device supports ACL Extension attribute.
|
|
46
|
+
*
|
|
47
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.4.1
|
|
48
|
+
*/
|
|
49
|
+
Extension = "Extension",
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* ManagedDevice (MNGD)
|
|
53
|
+
*
|
|
54
|
+
* This feature is for a device that is managed by a service associated with the device vendor and which
|
|
55
|
+
* imposes default access restrictions upon each new fabric added to it. This could arise, for example, if the
|
|
56
|
+
* device is managed by a service provider under contract to an end-user, in such a way that the manager of the
|
|
57
|
+
* device does not unconditionally grant universal access to all of a device’s functionality, even for fabric
|
|
58
|
+
* administrators. For example, many Home Routers are managed by an Internet Service Provider (a service), and
|
|
59
|
+
* these services often have a policy that requires them to obtain user consent before certain administrative
|
|
60
|
+
* functions can be delegated to a third party (e.g., a fabric Administrator). These restrictions are expressed
|
|
61
|
+
* using an Access Restriction List (ARL).
|
|
62
|
+
*
|
|
63
|
+
* The purpose of this feature on the Access Control cluster is to indicate to a fabric Administrator that
|
|
64
|
+
* access by it to specific attributes, commands and/or events for specific clusters is currently prohibited.
|
|
65
|
+
* Attempts to access these restricted data model elements shall result in an error of ACCESS_RESTRICTED.
|
|
66
|
+
*
|
|
67
|
+
* A device that implements this feature shall have a mechanism to honor the ReviewFabricRestrictions command,
|
|
68
|
+
* such as user interfaces or service interactions associated with a service provider or the device
|
|
69
|
+
* manufacturer, which allows the owner (or subscriber) to manage access restrictions for each fabric. The user
|
|
70
|
+
* interface design, which includes the way restrictions are organized and presented to the user, is not
|
|
71
|
+
* specified, but SHOULD be usable by non-expert end-users from common mobile devices, personal computers, or
|
|
72
|
+
* an on-device user interface.
|
|
73
|
+
*
|
|
74
|
+
* Controllers and clients SHOULD incorporate generic handling of the ACCESS_RESTRICTED error code, when it
|
|
75
|
+
* appears in allowed contexts, in order to gracefully handle situations where this feature is encountered.
|
|
76
|
+
* Device vendors that adopt this feature SHOULD be judicious in its use given the risk of unexpected behavior
|
|
77
|
+
* in controllers and clients.
|
|
78
|
+
*
|
|
79
|
+
* For certification testing, a device that implements this feature shall provide a way for all restrictions to
|
|
80
|
+
* be removed.
|
|
81
|
+
*
|
|
82
|
+
* The ARL attribute provides the set of restrictions currently applied to this fabric.
|
|
83
|
+
*
|
|
84
|
+
* The ReviewFabricRestrictions command provides a way for the fabric Administrator to request that the server
|
|
85
|
+
* triggers a review of the current fabric restrictions, by involving external entities such as end-users, or
|
|
86
|
+
* other services associated with the manager of the device hosting the server. This review process may involve
|
|
87
|
+
* communication between external services and the user, and may take an unpredictable amount of time to
|
|
88
|
+
* complete since an end-user may need to visit some resources, such as a mobile application or web site. A
|
|
89
|
+
* FabricRestrictionReviewUpdate event will be generated by the device within a predictable time period of the
|
|
90
|
+
* ReviewFabricRestrictionsResponse (see ReviewFabricRestrictions for specification of this time period), and
|
|
91
|
+
* this event can be correlated with the ReviewFabricRestrictionsResponse using a token provided in both. The
|
|
92
|
+
* device may provide instructions or a Redirect URL in the FabricRestrictionReviewUpdate event in order to
|
|
93
|
+
* help the user access the features required for managing per-fabric restrictions.
|
|
94
|
+
*
|
|
95
|
+
* See Section 6.6.2, “Model” for a description of how access control is impacted by the ARL attribute.
|
|
96
|
+
*
|
|
97
|
+
* ### Managed Device Feature Usage Restrictions
|
|
98
|
+
*
|
|
99
|
+
* Use of this feature shall be limited to the mandatory clusters of endpoints having a device type that
|
|
100
|
+
* explicitly permits its use in the Device Library Specification. As a reminder, the device types associated
|
|
101
|
+
* with an endpoint are listed in the Descriptor cluster of the endpoint.
|
|
102
|
+
*
|
|
103
|
+
* In addition, use of this feature shall NOT restrict the following clusters on any endpoint:
|
|
104
|
+
*
|
|
105
|
+
* 1. the Descriptor Cluster (0x001D)
|
|
106
|
+
*
|
|
107
|
+
* 2. the Binding Cluster (0x001E)
|
|
108
|
+
*
|
|
109
|
+
* 3. the Network Commissioning Cluster (0x0031)
|
|
110
|
+
*
|
|
111
|
+
* 4. the Identify Cluster (0x0003)
|
|
112
|
+
*
|
|
113
|
+
* 5. the Groups Cluster (0x0004)
|
|
114
|
+
*
|
|
115
|
+
* In addition, use of this feature shall NOT restrict the global attributes of any cluster.
|
|
116
|
+
*
|
|
117
|
+
* Because ARLs cannot be used to restrict root node access or access to any clusters required for
|
|
118
|
+
* commissioning, administrators may determine the current restrictions of the ARL at any point, including
|
|
119
|
+
* during commissioning after joining the fabric.
|
|
120
|
+
*
|
|
121
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.4.2
|
|
122
|
+
*/
|
|
123
|
+
ManagedDevice = "ManagedDevice"
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.7
|
|
128
|
+
*/
|
|
129
|
+
export const TlvAccessControlExtension = TlvObject({
|
|
130
|
+
/**
|
|
131
|
+
* This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s
|
|
132
|
+
*
|
|
133
|
+
* Access Control Entries.
|
|
134
|
+
*
|
|
135
|
+
* The contents shall consist of a top-level anonymous list; each list element shall include a profile-specific
|
|
136
|
+
* tag encoded in fully-qualified form.
|
|
137
|
+
*
|
|
138
|
+
* Administrators may iterate over this list of elements, and interpret selected elements at their discretion.
|
|
139
|
+
* The content of each element is not specified, but may be coordinated among manufacturers at their discretion.
|
|
140
|
+
*
|
|
141
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.7.1
|
|
142
|
+
*/
|
|
143
|
+
data: TlvField(1, TlvByteString.bound({ maxLength: 128 })),
|
|
144
|
+
|
|
145
|
+
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.7
|
|
150
|
+
*/
|
|
151
|
+
export interface AccessControlExtension extends TypeFromSchema<typeof TlvAccessControlExtension> {}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.1
|
|
155
|
+
*/
|
|
156
|
+
export enum ChangeType {
|
|
157
|
+
/**
|
|
158
|
+
* Entry or extension was changed
|
|
159
|
+
*/
|
|
160
|
+
Changed = 0,
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Entry or extension was added
|
|
164
|
+
*/
|
|
165
|
+
Added = 1,
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Entry or extension was removed
|
|
169
|
+
*/
|
|
170
|
+
Removed = 2
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Body of the AccessControl accessControlExtensionChanged event
|
|
175
|
+
*
|
|
176
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2
|
|
177
|
+
*/
|
|
178
|
+
export const TlvAccessControlExtensionChangedEvent = TlvObject({
|
|
179
|
+
/**
|
|
180
|
+
* The Node ID of the Administrator that made the change, if the change occurred via a CASE session.
|
|
181
|
+
*
|
|
182
|
+
* Exactly one of AdminNodeID and AdminPasscodeID shall be set, depending on whether the change occurred via a
|
|
183
|
+
* CASE or PASE session; the other shall be null.
|
|
184
|
+
*
|
|
185
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2.1
|
|
186
|
+
*/
|
|
187
|
+
adminNodeId: TlvField(1, TlvNullable(TlvNodeId)),
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* The Passcode ID of the Administrator that made the change, if the change occurred via a PASE session.
|
|
191
|
+
* Non-zero values are reserved for future use (see PasscodeId generation in PBKDFParamRequest).
|
|
192
|
+
*
|
|
193
|
+
* Exactly one of AdminNodeID and AdminPasscodeID shall be set, depending on whether the change occurred via a
|
|
194
|
+
* CASE or PASE session; the other shall be null.
|
|
195
|
+
*
|
|
196
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2.2
|
|
197
|
+
*/
|
|
198
|
+
adminPasscodeId: TlvField(2, TlvNullable(TlvUInt16)),
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* The type of change as appropriate.
|
|
202
|
+
*
|
|
203
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2.3
|
|
204
|
+
*/
|
|
205
|
+
changeType: TlvField(3, TlvEnum<ChangeType>()),
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* The latest value of the changed extension.
|
|
209
|
+
*
|
|
210
|
+
* This field SHOULD be set if resources are adequate for it; otherwise it shall be set to NULL if resources
|
|
211
|
+
* are scarce.
|
|
212
|
+
*
|
|
213
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2.4
|
|
214
|
+
*/
|
|
215
|
+
latestValue: TlvField(4, TlvNullable(TlvAccessControlExtension)),
|
|
216
|
+
|
|
217
|
+
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Body of the AccessControl accessControlExtensionChanged event
|
|
222
|
+
*
|
|
223
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2
|
|
224
|
+
*/
|
|
225
|
+
export interface AccessControlExtensionChangedEvent extends TypeFromSchema<typeof TlvAccessControlExtensionChangedEvent> {}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.3
|
|
229
|
+
*/
|
|
230
|
+
export enum AccessRestrictionType {
|
|
231
|
+
/**
|
|
232
|
+
* Clients on this fabric are currently forbidden from reading and writing an attribute
|
|
233
|
+
*/
|
|
234
|
+
AttributeAccessForbidden = 0,
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Clients on this fabric are currently forbidden from writing an attribute
|
|
238
|
+
*/
|
|
239
|
+
AttributeWriteForbidden = 1,
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Clients on this fabric are currently forbidden from invoking a command
|
|
243
|
+
*/
|
|
244
|
+
CommandForbidden = 2,
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Clients on this fabric are currently forbidden from reading an event
|
|
248
|
+
*/
|
|
249
|
+
EventForbidden = 3
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* This structure describes an access restriction that would be applied to a specific data model element on a given
|
|
254
|
+
* endpoint/cluster pair (see AccessRestrictionEntryStruct).
|
|
255
|
+
*
|
|
256
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.8
|
|
257
|
+
*/
|
|
258
|
+
export const TlvAccessRestriction = TlvObject({
|
|
259
|
+
/**
|
|
260
|
+
* This field shall indicate the type of restriction, for example, AttributeAccessForbidden.
|
|
261
|
+
*
|
|
262
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.8.1
|
|
263
|
+
*/
|
|
264
|
+
type: TlvField(0, TlvEnum<AccessRestrictionType>()),
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* This field shall indicate the element Manufacturer Extensible Identifier (MEI) associated with the element
|
|
268
|
+
* type subject to the access restriction, based upon the AccessRestrictionTypeEnum. When the Type is
|
|
269
|
+
* AttributeAccessForbidden or AttributeWriteForbidden, this value shall be considered of type attrib-id (i.e.
|
|
270
|
+
* an attribute identifier). When the Type is CommandForbidden, this value shall be considered of type
|
|
271
|
+
* command-id (i.e. an attribute identifier). When the Type is EventForbidden, this value shall be considered
|
|
272
|
+
* of type event-id (i.e. an event identifier).
|
|
273
|
+
*
|
|
274
|
+
* A null value shall indicate the wildcard value for the given value of Type (i.e. all elements associated
|
|
275
|
+
* with the Type under the associated endpoint and cluster for the containing AccessRestrictionEntryStruct).
|
|
276
|
+
*
|
|
277
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.8.2
|
|
278
|
+
*/
|
|
279
|
+
id: TlvField(1, TlvNullable(TlvUInt32))
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* This structure describes an access restriction that would be applied to a specific data model element on a given
|
|
284
|
+
* endpoint/cluster pair (see AccessRestrictionEntryStruct).
|
|
285
|
+
*
|
|
286
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.8
|
|
287
|
+
*/
|
|
288
|
+
export interface AccessRestriction extends TypeFromSchema<typeof TlvAccessRestriction> {}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* This structure describes a current access restriction when there is no accessing fabric.
|
|
292
|
+
*
|
|
293
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.10
|
|
294
|
+
*/
|
|
295
|
+
export const TlvCommissioningAccessRestrictionEntry = TlvObject({
|
|
296
|
+
/**
|
|
297
|
+
* This field shall indicate the endpoint having associated access restrictions scoped to the associated fabric
|
|
298
|
+
* of the list containing the entry.
|
|
299
|
+
*
|
|
300
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.10.1
|
|
301
|
+
*/
|
|
302
|
+
endpoint: TlvField(0, TlvEndpointNumber),
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* This field shall indicate the cluster having associated access restrictions under the entry’s Endpoint,
|
|
306
|
+
* scoped to the associated fabric of the list containing the entry.
|
|
307
|
+
*
|
|
308
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.10.2
|
|
309
|
+
*/
|
|
310
|
+
cluster: TlvField(1, TlvClusterId),
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* This field shall indicate the set of restrictions applying to the Cluster under the given Endpoint, scoped
|
|
314
|
+
* to the associated fabric of the list containing the entry.
|
|
315
|
+
*
|
|
316
|
+
* This list shall NOT be empty.
|
|
317
|
+
*
|
|
318
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.10.3
|
|
319
|
+
*/
|
|
320
|
+
restrictions: TlvField(2, TlvArray(TlvAccessRestriction, { minLength: 1 }))
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* This structure describes a current access restriction when there is no accessing fabric.
|
|
325
|
+
*
|
|
326
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.10
|
|
327
|
+
*/
|
|
328
|
+
export interface CommissioningAccessRestrictionEntry extends TypeFromSchema<typeof TlvCommissioningAccessRestrictionEntry> {}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* This structure describes a current access restriction on the fabric.
|
|
332
|
+
*
|
|
333
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.9
|
|
334
|
+
*/
|
|
335
|
+
export const TlvAccessRestrictionEntry = TlvObject({
|
|
336
|
+
/**
|
|
337
|
+
* This field shall indicate the endpoint having associated access restrictions scoped to the associated fabric
|
|
338
|
+
* of the list containing the entry.
|
|
339
|
+
*
|
|
340
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.9.1
|
|
341
|
+
*/
|
|
342
|
+
endpoint: TlvField(0, TlvEndpointNumber),
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* This field shall indicate the cluster having associated access restrictions under the entry’s Endpoint,
|
|
346
|
+
* scoped to the associated fabric of the list containing the entry.
|
|
347
|
+
*
|
|
348
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.9.2
|
|
349
|
+
*/
|
|
350
|
+
cluster: TlvField(1, TlvClusterId),
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* This field shall indicate the set of restrictions applying to the Cluster under the given Endpoint, scoped
|
|
354
|
+
* to the associated fabric of the list containing the entry.
|
|
355
|
+
*
|
|
356
|
+
* This list shall NOT be empty.
|
|
357
|
+
*
|
|
358
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.9.3
|
|
359
|
+
*/
|
|
360
|
+
restrictions: TlvField(2, TlvArray(TlvAccessRestriction, { minLength: 1 })),
|
|
361
|
+
|
|
362
|
+
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* This structure describes a current access restriction on the fabric.
|
|
367
|
+
*
|
|
368
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.9
|
|
369
|
+
*/
|
|
370
|
+
export interface AccessRestrictionEntry extends TypeFromSchema<typeof TlvAccessRestrictionEntry> {}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Input to the AccessControl reviewFabricRestrictions command
|
|
374
|
+
*
|
|
375
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.1
|
|
376
|
+
*/
|
|
377
|
+
export const TlvReviewFabricRestrictionsRequest = TlvObject({
|
|
378
|
+
/**
|
|
379
|
+
* When the ARL field is provided, it indicates the specific restrictions that are requested for review. An
|
|
380
|
+
* empty list represents a generic request for review of all restrictions.
|
|
381
|
+
*
|
|
382
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.1.1
|
|
383
|
+
*/
|
|
384
|
+
arl: TlvField(0, TlvArray(TlvCommissioningAccessRestrictionEntry))
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Input to the AccessControl reviewFabricRestrictions command
|
|
389
|
+
*
|
|
390
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.1
|
|
391
|
+
*/
|
|
392
|
+
export interface ReviewFabricRestrictionsRequest extends TypeFromSchema<typeof TlvReviewFabricRestrictionsRequest> {}
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Returns the review token for the request, which can be used to correlate with a FabricRestrictionReviewUpdate
|
|
396
|
+
* event.
|
|
397
|
+
*
|
|
398
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.2
|
|
399
|
+
*/
|
|
400
|
+
export const TlvReviewFabricRestrictionsResponse = TlvObject({
|
|
401
|
+
/**
|
|
402
|
+
* This field shall specify a Token that can be used to correlate a ReviewFabricRestrictionsResponse with a
|
|
403
|
+
* FabricRestrictionReviewUpdate event.
|
|
404
|
+
*
|
|
405
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.2.1
|
|
406
|
+
*/
|
|
407
|
+
token: TlvField(0, TlvUInt64)
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Returns the review token for the request, which can be used to correlate with a FabricRestrictionReviewUpdate
|
|
412
|
+
* event.
|
|
413
|
+
*
|
|
414
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.2
|
|
415
|
+
*/
|
|
416
|
+
export interface ReviewFabricRestrictionsResponse extends TypeFromSchema<typeof TlvReviewFabricRestrictionsResponse> {}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Body of the AccessControl fabricRestrictionReviewUpdate event
|
|
420
|
+
*
|
|
421
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3
|
|
422
|
+
*/
|
|
423
|
+
export const TlvFabricRestrictionReviewUpdateEvent = TlvObject({
|
|
424
|
+
/**
|
|
425
|
+
* This field shall indicate the Token that can be used to correlate a ReviewFabricRestrictionsResponse with a
|
|
426
|
+
* FabricRestrictionReviewUpdate event.
|
|
427
|
+
*
|
|
428
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3.1
|
|
429
|
+
*/
|
|
430
|
+
token: TlvField(0, TlvUInt64),
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* This field shall provide human readable text that may be displayed to the user to help them locate the user
|
|
434
|
+
* interface for managing access restrictions for each fabric.
|
|
435
|
+
*
|
|
436
|
+
* A device SHOULD implement the Localization Configuration Cluster when it has no other means to determine the
|
|
437
|
+
* locale to use for this text.
|
|
438
|
+
*
|
|
439
|
+
* Examples include "Please try again and immediately access device display for further instructions." or
|
|
440
|
+
* "Please check email associated with your Acme account."
|
|
441
|
+
*
|
|
442
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3.2
|
|
443
|
+
*/
|
|
444
|
+
instruction: TlvOptionalField(1, TlvString.bound({ maxLength: 512 })),
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* This field shall indicate the URL for the service associated with the device maker which the user can visit
|
|
448
|
+
* to manage fabric limitations. The syntax of this field shall follow the syntax as specified in RFC 1738 and
|
|
449
|
+
* shall use the https scheme for internet-hosted URLs.
|
|
450
|
+
*
|
|
451
|
+
* • The URL may embed the token, fabric index, fabric vendor, or other information transparently in order to
|
|
452
|
+
* pass context about the originating ReviewFabricRestrictions command to the service associated with the
|
|
453
|
+
* URL. The service associated with the device vendor may perform vendor ID verification on the fabric from
|
|
454
|
+
* which the ReviewFabricRestrictions command originated.
|
|
455
|
+
*
|
|
456
|
+
* • If the device grants the request, the ARL attribute in the Access Control Cluster shall be updated to
|
|
457
|
+
* reflect the new access rights and a successful response shall be returned to the device making the
|
|
458
|
+
* request using the MTaer field of the callbackUrl. If the request is denied, the ARL attribute shall
|
|
459
|
+
* remain unchanged and a failure response shall be returned to the device making the request using the
|
|
460
|
+
* MTaer field of the callbackUrl.
|
|
461
|
+
*
|
|
462
|
+
* • The device using this mechanism shall provide a service at the URL that can accept requests for
|
|
463
|
+
* additional access and return responses indicating whether the requests were granted or denied.
|
|
464
|
+
*
|
|
465
|
+
* • This URL will typically lead to a server which (e.g. by looking at the User-Agent) redirects the user to
|
|
466
|
+
* allow viewing, downloading, installing or using a manufacturer-provided means for guiding the user
|
|
467
|
+
* through the process to review and approve or deny the request. The device manufacturer may choose to use
|
|
468
|
+
* a constructed URL which is valid in a HTTP GET request (i.e. dedicated for the product) such as, for
|
|
469
|
+
* example, https://domain.example/arl-app?vid=FFF1& pid=1234. If a client follows or launches the
|
|
470
|
+
* ARLRequestFlowUrl, it shall expand it as described in Section 9.10.9.3.4, “ARLRequestFlowUrl format”.
|
|
471
|
+
*
|
|
472
|
+
* • A manufacturer contemplating using this flow should realize that
|
|
473
|
+
*
|
|
474
|
+
* ◦ This flow typically requires internet access to access the URL, and access extension may fail when
|
|
475
|
+
* internet connectivity is not available.
|
|
476
|
+
*
|
|
477
|
+
* ◦ If the flow prefers to redirect the user to an app which is available on popular platforms, it SHOULD
|
|
478
|
+
* also provide a fallback option such as a web browser interface to ensure users can complete access
|
|
479
|
+
* extension.
|
|
480
|
+
*
|
|
481
|
+
* ### ARLRequestFlowUrl format
|
|
482
|
+
*
|
|
483
|
+
* The ARLRequestFlowUrl shall contain a query component (see RFC 3986 section 3.4) composed of one or more
|
|
484
|
+
* key-value pairs:
|
|
485
|
+
*
|
|
486
|
+
* • The query shall use the & delimiter between key/value pairs.
|
|
487
|
+
*
|
|
488
|
+
* • The key-value pairs shall in the format name=<value> where name is the key name, and <value>
|
|
489
|
+
*
|
|
490
|
+
* is the contents of the value encoded with proper URL-encoded escaping.
|
|
491
|
+
*
|
|
492
|
+
* • If key MTcu is present, it shall have a value of "_" (i.e. MTcu=_). This is the "callback URL
|
|
493
|
+
*
|
|
494
|
+
* backUrl) placeholder".
|
|
495
|
+
*
|
|
496
|
+
* • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for future use
|
|
497
|
+
* by this specification. Manufacturers shall NOT include query keys starting with MT in the
|
|
498
|
+
* ARLRequestFlowUrl unless they are referenced by a version of this specification.
|
|
499
|
+
*
|
|
500
|
+
* Any other element in the ARLRequestFlowUrl query field not covered by the above rules, as well as the
|
|
501
|
+
* fragment field (if present), shall remain including the order of query key/value pairs present.
|
|
502
|
+
*
|
|
503
|
+
* Expansion of ARLRequestFlowUrl by client
|
|
504
|
+
*
|
|
505
|
+
* Once the URL is obtained, it shall be expanded to form a final URL (ExpandedARLRequestFlowUrl) by proceeding
|
|
506
|
+
* with the following substitution algorithm on the original ARLRequestFlowUrl:
|
|
507
|
+
*
|
|
508
|
+
* 1. If key MTcu is present, compute the CallbackUrl desired (see Section 9.10.9.3.5, “CallbackUrl format
|
|
509
|
+
* for ARL Request Flow response”), and substitute the placeholder value "_" (i.e. in MTcu=_) in the
|
|
510
|
+
* ARLRequestFlowUrl with the desired contents, encoded with proper URL-encoded escaping (see RFC 3986
|
|
511
|
+
* section 2).
|
|
512
|
+
*
|
|
513
|
+
* The final URL after expansion (ExpandedARLRequestFlowUrl) shall be the one to follow, rather than the
|
|
514
|
+
* original value obtained from the FabricRestrictionReviewUpdate event.
|
|
515
|
+
*
|
|
516
|
+
* ### CallbackUrl format for ARL Request Flow response
|
|
517
|
+
*
|
|
518
|
+
* If a CallbackUrl field (i.e. MTcu=) query field placeholder is present in the ARLRequestFlowUrl, the client
|
|
519
|
+
* may replace the placeholder value "_" in the ExpandedARLRequestFlowUrl with a URL that the manufacturer flow
|
|
520
|
+
* can use to make a smooth return to the client when the ARL flow has terminated.
|
|
521
|
+
*
|
|
522
|
+
* This URL field may contain a query component (see RFC 3986 section 3.4). If a query is present, it shall be
|
|
523
|
+
* composed of one or more key-value pairs:
|
|
524
|
+
*
|
|
525
|
+
* • The query shall use the & delimiter between key/value pairs.
|
|
526
|
+
*
|
|
527
|
+
* • The key-value pairs shall follow the format name=<value> where name is the key name, and
|
|
528
|
+
*
|
|
529
|
+
* <value> is the contents of the value encoded with proper URL-encoded escaping.
|
|
530
|
+
*
|
|
531
|
+
* • If key MTaer is present, it shall have a value of "_" (i.e. MTaer=_). This is the placeholder for a
|
|
532
|
+
* "access extension response" provided by the manufacturer flow to the client. The manufacturer flow shall
|
|
533
|
+
* replace this placeholder with the final status of the access extension request, which shall be formatted
|
|
534
|
+
* following Expansion of CallbackUrl by the manufacturer custom flow and encoded with proper URL-encoded
|
|
535
|
+
* escaping.
|
|
536
|
+
*
|
|
537
|
+
* • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for future use
|
|
538
|
+
* by this specification.
|
|
539
|
+
*
|
|
540
|
+
* Any other element in the CallbackUrl query field not covered by the above rules, as well as the frag
|
|
541
|
+
*
|
|
542
|
+
* ment field (if present), shall remain as provided by the client through embedding within the
|
|
543
|
+
*
|
|
544
|
+
* ExpandedARLRequestFlowUrl, including the order of query key/value pairs present.
|
|
545
|
+
*
|
|
546
|
+
* ### Expansion of CallbackUrl by the manufacturer custom flow
|
|
547
|
+
*
|
|
548
|
+
* Once the CallbackUrl is obtained by the manufacturer flow, it may be expanded to form a final
|
|
549
|
+
* ExpandedARLRequestCallbackUrl URL to be used by proceeding with the following substitution algorithm on the
|
|
550
|
+
* provided CallbackUrl:
|
|
551
|
+
*
|
|
552
|
+
* • If key MTaer is present, the manufacturer custom flow having received the initial query containing the
|
|
553
|
+
* CallbackUrl shall substitute the placeholder value "_" (i.e. in MTaer=_) in the CallbackUrl with the
|
|
554
|
+
* final status of the access extension request flow which shall be one of the following. Any value
|
|
555
|
+
* returned in the MTaer field not listed above shall be considered an error and shall be treated as
|
|
556
|
+
* GeneralFailure.
|
|
557
|
+
*
|
|
558
|
+
* ◦ Success - The flow completed successfully and the ARL attribute was updated. The client may now read
|
|
559
|
+
* the ARL attribute to determine the new access restrictions.
|
|
560
|
+
*
|
|
561
|
+
* ◦ NoChange - The ARL attribute was already listing minimum restrictions for the requesting fabric.
|
|
562
|
+
*
|
|
563
|
+
* ◦ GeneralFailure - The flow failed for an unspecified reason.
|
|
564
|
+
*
|
|
565
|
+
* ◦ FlowAuthFailure - The user failed to authenticate to the flow.
|
|
566
|
+
*
|
|
567
|
+
* ◦ NotFound - Access extension failed because the target fabric was not found.
|
|
568
|
+
*
|
|
569
|
+
* A manufacturer custom flow having received an ExpandedARLRequestFlowUrl SHOULD attempt to open the
|
|
570
|
+
* ExpandedARLRequestCallbackUrl, on completion of the request, if an ExpandedARLRequestCallbackUrl was
|
|
571
|
+
* computed from the CallbackUrl and opening such a URL is supported.
|
|
572
|
+
*
|
|
573
|
+
* Examples of ARLRequestFlowUrl URLs
|
|
574
|
+
*
|
|
575
|
+
* Below are some examples of valid ExpandedARLRequestFlowUrl for several valid values of ARLRequestFlowUrl, as
|
|
576
|
+
* well as some examples of invalid values of ARLRequestFlowUrl:
|
|
577
|
+
*
|
|
578
|
+
* • Invalid URL with no query string: http scheme is not allowed:
|
|
579
|
+
*
|
|
580
|
+
* ◦ http://company.domain.example/matter/arl/vFFF1p1234
|
|
581
|
+
*
|
|
582
|
+
* • Valid URL :
|
|
583
|
+
*
|
|
584
|
+
* ◦ https://company.domain.example/matter/arl/vFFF1p1234
|
|
585
|
+
*
|
|
586
|
+
* • Valid URL, CallbackUrl requested:
|
|
587
|
+
*
|
|
588
|
+
* ◦ Before expansion:
|
|
589
|
+
*
|
|
590
|
+
* https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=_
|
|
591
|
+
*
|
|
592
|
+
* ◦ After expansion:
|
|
593
|
+
*
|
|
594
|
+
* https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=https%3A%2F%2Fc
|
|
595
|
+
* lient.domain.example%2Fcb%3Ftoken%3DmAsJ6_vqbr-vjDiG_w%253D%253D%26MTaer%3D_
|
|
596
|
+
*
|
|
597
|
+
* ◦ The ExpandedARLRequestFlowUrl URL contains:
|
|
598
|
+
*
|
|
599
|
+
* ▪ A CallbackUrl with a client-provided arbitrary token= key/value pair and the MTaer= key/value pair
|
|
600
|
+
* place-holder to indicate support for a return access extension completion status:
|
|
601
|
+
* https://client.domain.example/cb?token=mAsJ6_vqbr-vjDiG_w%3D%3D&MTaer=_
|
|
602
|
+
*
|
|
603
|
+
* ▪ After expansion of the CallbackUrl (MTcu key) into an ExpandedCallbackUrl, with an example return
|
|
604
|
+
* access extension completion status of Success, the ExpandedARLRequestCallbackUrl would be:
|
|
605
|
+
*
|
|
606
|
+
* https://client.domain.example/cb?token=mAsJ6_vqbr- vjDiG_w%3D%3D&MTaer=Success
|
|
607
|
+
*
|
|
608
|
+
* Note that the MTcu key/value pair was initially provided URL-encoded within the ExpandedARLRequestFlowUrl
|
|
609
|
+
* URL and the MTaer=_ key/value pair placeholder now contains a substituted returned completion status.
|
|
610
|
+
*
|
|
611
|
+
* • Invalid URL, due to MTza=79 key/value pair in reserved MT-prefixed keys reserved for future use:
|
|
612
|
+
*
|
|
613
|
+
* ◦ https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTop=_&MTza=79
|
|
614
|
+
*
|
|
615
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3.3
|
|
616
|
+
*/
|
|
617
|
+
arlRequestFlowUrl: TlvOptionalField(2, TlvString.bound({ maxLength: 256 })),
|
|
618
|
+
|
|
619
|
+
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
620
|
+
});
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* Body of the AccessControl fabricRestrictionReviewUpdate event
|
|
624
|
+
*
|
|
625
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3
|
|
626
|
+
*/
|
|
627
|
+
export interface FabricRestrictionReviewUpdateEvent extends TypeFromSchema<typeof TlvFabricRestrictionReviewUpdateEvent> {}
|
|
628
|
+
|
|
34
629
|
/**
|
|
35
630
|
* Proxy View Value
|
|
36
631
|
*
|
|
37
632
|
* This value implicitly grants View privileges
|
|
38
633
|
*
|
|
39
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
634
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.2
|
|
40
635
|
*/
|
|
41
636
|
export enum AccessControlEntryPrivilege {
|
|
42
637
|
/**
|
|
@@ -54,7 +649,7 @@ export namespace AccessControl {
|
|
|
54
649
|
*
|
|
55
650
|
* This value implicitly grants View privileges
|
|
56
651
|
*
|
|
57
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
652
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.2.1
|
|
58
653
|
*/
|
|
59
654
|
Operate = 3,
|
|
60
655
|
|
|
@@ -63,7 +658,7 @@ export namespace AccessControl {
|
|
|
63
658
|
*
|
|
64
659
|
* This value implicitly grants Operate & View privileges
|
|
65
660
|
*
|
|
66
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
661
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.2.2
|
|
67
662
|
*/
|
|
68
663
|
Manage = 4,
|
|
69
664
|
|
|
@@ -72,13 +667,13 @@ export namespace AccessControl {
|
|
|
72
667
|
*
|
|
73
668
|
* This value implicitly grants Manage, Operate, Proxy View & View privileges
|
|
74
669
|
*
|
|
75
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
670
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.2.3
|
|
76
671
|
*/
|
|
77
672
|
Administer = 5
|
|
78
673
|
}
|
|
79
674
|
|
|
80
675
|
/**
|
|
81
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.4
|
|
676
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.4
|
|
82
677
|
*/
|
|
83
678
|
export enum AccessControlEntryAuthMode {
|
|
84
679
|
/**
|
|
@@ -98,7 +693,7 @@ export namespace AccessControl {
|
|
|
98
693
|
}
|
|
99
694
|
|
|
100
695
|
/**
|
|
101
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
696
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.5
|
|
102
697
|
*/
|
|
103
698
|
export const TlvAccessControlTarget = TlvObject({
|
|
104
699
|
cluster: TlvField(0, TlvNullable(TlvClusterId)),
|
|
@@ -107,12 +702,12 @@ export namespace AccessControl {
|
|
|
107
702
|
});
|
|
108
703
|
|
|
109
704
|
/**
|
|
110
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
705
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.5
|
|
111
706
|
*/
|
|
112
707
|
export interface AccessControlTarget extends TypeFromSchema<typeof TlvAccessControlTarget> {}
|
|
113
708
|
|
|
114
709
|
/**
|
|
115
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
710
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6
|
|
116
711
|
*/
|
|
117
712
|
export const TlvAccessControlEntry = TlvObject({
|
|
118
713
|
/**
|
|
@@ -128,7 +723,7 @@ export namespace AccessControl {
|
|
|
128
723
|
* levels as well. The following diagram illustrates how the higher privilege levels subsume the lower
|
|
129
724
|
* privilege levels:
|
|
130
725
|
*
|
|
131
|
-
* Figure
|
|
726
|
+
* Figure 46. Access Control Privilege Levels
|
|
132
727
|
*
|
|
133
728
|
* Individual clusters shall define whether attributes are readable, writable, or both readable and writable.
|
|
134
729
|
* Clusters also shall define which privilege is minimally required to be able to perform a particular read or
|
|
@@ -139,14 +734,14 @@ export namespace AccessControl {
|
|
|
139
734
|
* Cluster itself. The Administer privilege shall NOT be used on Access Control Entries which use the Group
|
|
140
735
|
* auth mode.
|
|
141
736
|
*
|
|
142
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
737
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6.1
|
|
143
738
|
*/
|
|
144
739
|
privilege: TlvField(1, TlvEnum<AccessControlEntryPrivilege>()),
|
|
145
740
|
|
|
146
741
|
/**
|
|
147
742
|
* The AuthMode field shall specify the authentication mode required by this Access Control Entry.
|
|
148
743
|
*
|
|
149
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
744
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6.2
|
|
150
745
|
*/
|
|
151
746
|
authMode: TlvField(2, TlvEnum<AccessControlEntryAuthMode>()),
|
|
152
747
|
|
|
@@ -166,7 +761,7 @@ export namespace AccessControl {
|
|
|
166
761
|
* successfully authenticates via AuthMode. The subjects list shall NOT be empty if the entry’s AuthMode is
|
|
167
762
|
* PASE.
|
|
168
763
|
*
|
|
169
|
-
* The PASE AuthMode is reserved for future use (see Section 6.6.2.
|
|
764
|
+
* The PASE AuthMode is reserved for future use (see Section 6.6.2.9, “Bootstrapping of the Access Control
|
|
170
765
|
* Cluster”). An attempt to write an entry with AuthMode set to PASE shall fail with a status code of
|
|
171
766
|
* CONSTRAINT_ERROR.
|
|
172
767
|
*
|
|
@@ -183,7 +778,7 @@ export namespace AccessControl {
|
|
|
183
778
|
* For Group authentication, the Group ID identifies the required group, as defined in the Group Key Management
|
|
184
779
|
* Cluster.
|
|
185
780
|
*
|
|
186
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
781
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6.3
|
|
187
782
|
*/
|
|
188
783
|
subjects: TlvField(3, TlvNullable(TlvArray(TlvSubjectId))),
|
|
189
784
|
|
|
@@ -206,7 +801,7 @@ export namespace AccessControl {
|
|
|
206
801
|
* An empty targets list indicates a wildcard: that is, this entry shall grant access to all cluster instances
|
|
207
802
|
* on all endpoints on this Node.
|
|
208
803
|
*
|
|
209
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
804
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6.4
|
|
210
805
|
*/
|
|
211
806
|
targets: TlvField(4, TlvNullable(TlvArray(TlvAccessControlTarget))),
|
|
212
807
|
|
|
@@ -214,60 +809,14 @@ export namespace AccessControl {
|
|
|
214
809
|
});
|
|
215
810
|
|
|
216
811
|
/**
|
|
217
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
812
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.5.6
|
|
218
813
|
*/
|
|
219
814
|
export interface AccessControlEntry extends TypeFromSchema<typeof TlvAccessControlEntry> {}
|
|
220
815
|
|
|
221
|
-
/**
|
|
222
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.4.6
|
|
223
|
-
*/
|
|
224
|
-
export const TlvAccessControlExtension = TlvObject({
|
|
225
|
-
/**
|
|
226
|
-
* This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s Access
|
|
227
|
-
* Control Entries.
|
|
228
|
-
*
|
|
229
|
-
* The contents shall consist of a top-level anonymous list; each list element shall include a profile-specific
|
|
230
|
-
* tag encoded in fully-qualified form.
|
|
231
|
-
*
|
|
232
|
-
* Administrators may iterate over this list of elements, and interpret selected elements at their discretion.
|
|
233
|
-
* The content of each element is not specified, but may be coordinated among manufacturers at their discretion.
|
|
234
|
-
*
|
|
235
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.4.6.1
|
|
236
|
-
*/
|
|
237
|
-
data: TlvField(1, TlvByteString.bound({ maxLength: 128 })),
|
|
238
|
-
|
|
239
|
-
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.4.6
|
|
244
|
-
*/
|
|
245
|
-
export interface AccessControlExtension extends TypeFromSchema<typeof TlvAccessControlExtension> {}
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.4.1
|
|
249
|
-
*/
|
|
250
|
-
export enum ChangeType {
|
|
251
|
-
/**
|
|
252
|
-
* Entry or extension was changed
|
|
253
|
-
*/
|
|
254
|
-
Changed = 0,
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Entry or extension was added
|
|
258
|
-
*/
|
|
259
|
-
Added = 1,
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Entry or extension was removed
|
|
263
|
-
*/
|
|
264
|
-
Removed = 2
|
|
265
|
-
}
|
|
266
|
-
|
|
267
816
|
/**
|
|
268
817
|
* Body of the AccessControl accessControlEntryChanged event
|
|
269
818
|
*
|
|
270
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
819
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1
|
|
271
820
|
*/
|
|
272
821
|
export const TlvAccessControlEntryChangedEvent = TlvObject({
|
|
273
822
|
/**
|
|
@@ -276,7 +825,7 @@ export namespace AccessControl {
|
|
|
276
825
|
* Exactly one of AdminNodeID and AdminPasscodeID shall be set, depending on whether the change occurred via a
|
|
277
826
|
* CASE or PASE session; the other shall be null.
|
|
278
827
|
*
|
|
279
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
828
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1.1
|
|
280
829
|
*/
|
|
281
830
|
adminNodeId: TlvField(1, TlvNullable(TlvNodeId)),
|
|
282
831
|
|
|
@@ -287,14 +836,14 @@ export namespace AccessControl {
|
|
|
287
836
|
* Exactly one of AdminNodeID and AdminPasscodeID shall be set, depending on whether the change occurred via a
|
|
288
837
|
* CASE or PASE session; the other shall be null.
|
|
289
838
|
*
|
|
290
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
839
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1.2
|
|
291
840
|
*/
|
|
292
841
|
adminPasscodeId: TlvField(2, TlvNullable(TlvUInt16)),
|
|
293
842
|
|
|
294
843
|
/**
|
|
295
844
|
* The type of change as appropriate.
|
|
296
845
|
*
|
|
297
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
846
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1.3
|
|
298
847
|
*/
|
|
299
848
|
changeType: TlvField(3, TlvEnum<ChangeType>()),
|
|
300
849
|
|
|
@@ -304,7 +853,7 @@ export namespace AccessControl {
|
|
|
304
853
|
* This field SHOULD be set if resources are adequate for it; otherwise it shall be set to NULL if resources
|
|
305
854
|
* are scarce.
|
|
306
855
|
*
|
|
307
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
856
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1.4
|
|
308
857
|
*/
|
|
309
858
|
latestValue: TlvField(4, TlvNullable(TlvAccessControlEntry)),
|
|
310
859
|
|
|
@@ -314,71 +863,243 @@ export namespace AccessControl {
|
|
|
314
863
|
/**
|
|
315
864
|
* Body of the AccessControl accessControlEntryChanged event
|
|
316
865
|
*
|
|
317
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
866
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1
|
|
318
867
|
*/
|
|
319
868
|
export interface AccessControlEntryChangedEvent extends TypeFromSchema<typeof TlvAccessControlEntryChangedEvent> {}
|
|
320
869
|
|
|
321
870
|
/**
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2
|
|
871
|
+
* A AccessControlCluster supports these elements if it supports feature Extension.
|
|
325
872
|
*/
|
|
326
|
-
export const
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
* CASE or PASE session; the other shall be null.
|
|
343
|
-
*
|
|
344
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2.2
|
|
345
|
-
*/
|
|
346
|
-
adminPasscodeId: TlvField(2, TlvNullable(TlvUInt16)),
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* The type of change as appropriate.
|
|
350
|
-
*
|
|
351
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2.3
|
|
352
|
-
*/
|
|
353
|
-
changeType: TlvField(3, TlvEnum<ChangeType>()),
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* The latest value of the changed extension.
|
|
357
|
-
*
|
|
358
|
-
* This field SHOULD be set if resources are adequate for it; otherwise it shall be set to NULL if resources
|
|
359
|
-
* are scarce.
|
|
360
|
-
*
|
|
361
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2.4
|
|
362
|
-
*/
|
|
363
|
-
latestValue: TlvField(4, TlvNullable(TlvAccessControlExtension)),
|
|
873
|
+
export const ExtensionComponent = MutableCluster.Component({
|
|
874
|
+
attributes: {
|
|
875
|
+
/**
|
|
876
|
+
* If present, the Access Control Extensions may be used by Administrators to store arbitrary data related
|
|
877
|
+
* to fabric’s Access Control Entries.
|
|
878
|
+
*
|
|
879
|
+
* The Access Control Extension list shall support a single extension entry per supported fabric.
|
|
880
|
+
*
|
|
881
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.4
|
|
882
|
+
*/
|
|
883
|
+
extension: WritableFabricScopedAttribute(
|
|
884
|
+
0x1,
|
|
885
|
+
TlvArray(TlvAccessControlExtension),
|
|
886
|
+
{ default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
|
|
887
|
+
)
|
|
888
|
+
},
|
|
364
889
|
|
|
365
|
-
|
|
890
|
+
events: {
|
|
891
|
+
/**
|
|
892
|
+
* The cluster shall generate AccessControlExtensionChanged events whenever its extension attribute data is
|
|
893
|
+
* changed by an Administrator.
|
|
894
|
+
*
|
|
895
|
+
* • Each added extension shall generate an event with ChangeType Added.
|
|
896
|
+
*
|
|
897
|
+
* • Each changed extension shall generate an event with ChangeType Changed.
|
|
898
|
+
*
|
|
899
|
+
* • Each removed extension shall generate an event with ChangeType Removed.
|
|
900
|
+
*
|
|
901
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.2
|
|
902
|
+
*/
|
|
903
|
+
accessControlExtensionChanged: Event(
|
|
904
|
+
0x1,
|
|
905
|
+
EventPriority.Info,
|
|
906
|
+
TlvAccessControlExtensionChangedEvent,
|
|
907
|
+
{ readAcl: AccessLevel.Administer }
|
|
908
|
+
)
|
|
909
|
+
}
|
|
366
910
|
});
|
|
367
911
|
|
|
368
912
|
/**
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2
|
|
913
|
+
* A AccessControlCluster supports these elements if it supports feature ManagedDevice.
|
|
372
914
|
*/
|
|
373
|
-
export
|
|
915
|
+
export const ManagedDeviceComponent = MutableCluster.Component({
|
|
916
|
+
attributes: {
|
|
917
|
+
/**
|
|
918
|
+
* This attribute shall provide the set of CommissioningAccessRestrictionEntryStruct applied during
|
|
919
|
+
* commissioning on a managed device.
|
|
920
|
+
*
|
|
921
|
+
* When present, the CommissioningARL attribute shall indicate the access restrictions applying during
|
|
922
|
+
* commissioning.
|
|
923
|
+
*
|
|
924
|
+
* Attempts to access data model elements described by an entry in the CommissioningARL attribute during
|
|
925
|
+
* commissioning shall result in an error of ACCESS_RESTRICTED. See Access Control Model for more
|
|
926
|
+
* information about the features related to controlling access to a Node’s Endpoint Clusters ("Targets"
|
|
927
|
+
* hereafter) from other Nodes.
|
|
928
|
+
*
|
|
929
|
+
* See Section 9.10.4.2.1, “Managed Device Feature Usage Restrictions” for limitations on the use of access
|
|
930
|
+
* restrictions.
|
|
931
|
+
*
|
|
932
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.8
|
|
933
|
+
*/
|
|
934
|
+
commissioningArL: FixedAttribute(0x5, TlvArray(TlvCommissioningAccessRestrictionEntry), { default: [] }),
|
|
935
|
+
|
|
936
|
+
/**
|
|
937
|
+
* This attribute shall provide the set of AccessRestrictionEntryStruct applied to the associated fabric on
|
|
938
|
+
* a managed device.
|
|
939
|
+
*
|
|
940
|
+
* When present, the ARL attribute shall indicate the access restrictions applying to the accessing fabric.
|
|
941
|
+
* In contrast, the CommissioningARL attribute indicates the accessing restrictions that apply when there
|
|
942
|
+
* is no accessing fabric, such as during commissioning.
|
|
943
|
+
*
|
|
944
|
+
* The access restrictions are externally added/removed based on the particular relationship the device
|
|
945
|
+
* hosting this server has with external entities such as its owner, external service provider, or end-user.
|
|
946
|
+
*
|
|
947
|
+
* Attempts to access data model elements described by an entry in the ARL attribute for the accessing
|
|
948
|
+
* fabric shall result in an error of ACCESS_RESTRICTED. See Access Control Model for more information
|
|
949
|
+
* about the features related to controlling access to a Node’s Endpoint Clusters ("Targets" hereafter)
|
|
950
|
+
* from other Nodes.
|
|
951
|
+
*
|
|
952
|
+
* See Section 9.10.4.2.1, “Managed Device Feature Usage Restrictions” for limitations on the use of access
|
|
953
|
+
* restrictions.
|
|
954
|
+
*
|
|
955
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.9
|
|
956
|
+
*/
|
|
957
|
+
arl: FabricScopedAttribute(0x6, TlvArray(TlvAccessRestrictionEntry), { default: [] })
|
|
958
|
+
},
|
|
959
|
+
|
|
960
|
+
commands: {
|
|
961
|
+
/**
|
|
962
|
+
* This command signals to the service associated with the device vendor that the fabric administrator
|
|
963
|
+
* would like a review of the current restrictions on the accessing fabric. This command includes an
|
|
964
|
+
* optional list of ARL entries that the fabric administrator would like removed.
|
|
965
|
+
*
|
|
966
|
+
* In response, a ReviewFabricRestrictionsResponse is sent which contains a token that can be used to
|
|
967
|
+
* correlate a review request with a FabricRestrictionReviewUpdate event.
|
|
968
|
+
*
|
|
969
|
+
* Within 1 hour of the ReviewFabricRestrictionsResponse, the FabricRestrictionReviewUpdate event shall be
|
|
970
|
+
* generated, in order to indicate completion of the review and any additional steps required by the user
|
|
971
|
+
* for the review.
|
|
972
|
+
*
|
|
973
|
+
* A review may include obtaining consent from the user, which can take time. For example, the user may
|
|
974
|
+
* need to respond to an email or a push notification.
|
|
975
|
+
*
|
|
976
|
+
* The ARL attribute may change at any time due to actions taken by the user, or the service associated
|
|
977
|
+
* with the device vendor.
|
|
978
|
+
*
|
|
979
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.8.1
|
|
980
|
+
*/
|
|
981
|
+
reviewFabricRestrictions: Command(
|
|
982
|
+
0x0,
|
|
983
|
+
TlvReviewFabricRestrictionsRequest,
|
|
984
|
+
0x1,
|
|
985
|
+
TlvReviewFabricRestrictionsResponse,
|
|
986
|
+
{ invokeAcl: AccessLevel.Administer }
|
|
987
|
+
)
|
|
988
|
+
},
|
|
989
|
+
|
|
990
|
+
events: {
|
|
991
|
+
/**
|
|
992
|
+
* The cluster shall generate a FabricRestrictionReviewUpdate event to indicate completion of a fabric
|
|
993
|
+
* restriction review. Due to the requirement to generate this event within a bound time frame of
|
|
994
|
+
* successful receipt of the ReviewFabricRestrictions command, this event may include additional steps that
|
|
995
|
+
* the client may present to the user in order to help the user locate the user interface for the Managed
|
|
996
|
+
* Device feature.
|
|
997
|
+
*
|
|
998
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.3
|
|
999
|
+
*/
|
|
1000
|
+
fabricRestrictionReviewUpdate: Event(
|
|
1001
|
+
0x2,
|
|
1002
|
+
EventPriority.Info,
|
|
1003
|
+
TlvFabricRestrictionReviewUpdateEvent,
|
|
1004
|
+
{ readAcl: AccessLevel.Administer }
|
|
1005
|
+
)
|
|
1006
|
+
}
|
|
1007
|
+
});
|
|
374
1008
|
|
|
375
1009
|
/**
|
|
376
|
-
*
|
|
1010
|
+
* These elements and properties are present in all AccessControl clusters.
|
|
377
1011
|
*/
|
|
378
|
-
export const
|
|
1012
|
+
export const Base = MutableCluster.Component({
|
|
379
1013
|
id: 0x1f,
|
|
380
1014
|
name: "AccessControl",
|
|
381
|
-
revision:
|
|
1015
|
+
revision: 2,
|
|
1016
|
+
|
|
1017
|
+
features: {
|
|
1018
|
+
/**
|
|
1019
|
+
* Extension
|
|
1020
|
+
*
|
|
1021
|
+
* This feature indicates the device supports ACL Extension attribute.
|
|
1022
|
+
*
|
|
1023
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.4.1
|
|
1024
|
+
*/
|
|
1025
|
+
extension: BitFlag(0),
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* ManagedDevice
|
|
1029
|
+
*
|
|
1030
|
+
* This feature is for a device that is managed by a service associated with the device vendor and which
|
|
1031
|
+
* imposes default access restrictions upon each new fabric added to it. This could arise, for example, if
|
|
1032
|
+
* the device is managed by a service provider under contract to an end-user, in such a way that the
|
|
1033
|
+
* manager of the device does not unconditionally grant universal access to all of a device’s
|
|
1034
|
+
* functionality, even for fabric administrators. For example, many Home Routers are managed by an Internet
|
|
1035
|
+
* Service Provider (a service), and these services often have a policy that requires them to obtain user
|
|
1036
|
+
* consent before certain administrative functions can be delegated to a third party (e.g., a fabric
|
|
1037
|
+
* Administrator). These restrictions are expressed using an Access Restriction List (ARL).
|
|
1038
|
+
*
|
|
1039
|
+
* The purpose of this feature on the Access Control cluster is to indicate to a fabric Administrator that
|
|
1040
|
+
* access by it to specific attributes, commands and/or events for specific clusters is currently
|
|
1041
|
+
* prohibited. Attempts to access these restricted data model elements shall result in an error of
|
|
1042
|
+
* ACCESS_RESTRICTED.
|
|
1043
|
+
*
|
|
1044
|
+
* A device that implements this feature shall have a mechanism to honor the ReviewFabricRestrictions
|
|
1045
|
+
* command, such as user interfaces or service interactions associated with a service provider or the
|
|
1046
|
+
* device manufacturer, which allows the owner (or subscriber) to manage access restrictions for each
|
|
1047
|
+
* fabric. The user interface design, which includes the way restrictions are organized and presented to
|
|
1048
|
+
* the user, is not specified, but SHOULD be usable by non-expert end-users from common mobile devices,
|
|
1049
|
+
* personal computers, or an on-device user interface.
|
|
1050
|
+
*
|
|
1051
|
+
* Controllers and clients SHOULD incorporate generic handling of the ACCESS_RESTRICTED error code, when it
|
|
1052
|
+
* appears in allowed contexts, in order to gracefully handle situations where this feature is encountered.
|
|
1053
|
+
* Device vendors that adopt this feature SHOULD be judicious in its use given the risk of unexpected
|
|
1054
|
+
* behavior in controllers and clients.
|
|
1055
|
+
*
|
|
1056
|
+
* For certification testing, a device that implements this feature shall provide a way for all
|
|
1057
|
+
* restrictions to be removed.
|
|
1058
|
+
*
|
|
1059
|
+
* The ARL attribute provides the set of restrictions currently applied to this fabric.
|
|
1060
|
+
*
|
|
1061
|
+
* The ReviewFabricRestrictions command provides a way for the fabric Administrator to request that the
|
|
1062
|
+
* server triggers a review of the current fabric restrictions, by involving external entities such as
|
|
1063
|
+
* end-users, or other services associated with the manager of the device hosting the server. This review
|
|
1064
|
+
* process may involve communication between external services and the user, and may take an unpredictable
|
|
1065
|
+
* amount of time to complete since an end-user may need to visit some resources, such as a mobile
|
|
1066
|
+
* application or web site. A FabricRestrictionReviewUpdate event will be generated by the device within a
|
|
1067
|
+
* predictable time period of the ReviewFabricRestrictionsResponse (see ReviewFabricRestrictions for
|
|
1068
|
+
* specification of this time period), and this event can be correlated with the
|
|
1069
|
+
* ReviewFabricRestrictionsResponse using a token provided in both. The device may provide instructions or
|
|
1070
|
+
* a Redirect URL in the FabricRestrictionReviewUpdate event in order to help the user access the features
|
|
1071
|
+
* required for managing per-fabric restrictions.
|
|
1072
|
+
*
|
|
1073
|
+
* See Section 6.6.2, “Model” for a description of how access control is impacted by the ARL attribute.
|
|
1074
|
+
*
|
|
1075
|
+
* ### Managed Device Feature Usage Restrictions
|
|
1076
|
+
*
|
|
1077
|
+
* Use of this feature shall be limited to the mandatory clusters of endpoints having a device type that
|
|
1078
|
+
* explicitly permits its use in the Device Library Specification. As a reminder, the device types
|
|
1079
|
+
* associated with an endpoint are listed in the Descriptor cluster of the endpoint.
|
|
1080
|
+
*
|
|
1081
|
+
* In addition, use of this feature shall NOT restrict the following clusters on any endpoint:
|
|
1082
|
+
*
|
|
1083
|
+
* 1. the Descriptor Cluster (0x001D)
|
|
1084
|
+
*
|
|
1085
|
+
* 2. the Binding Cluster (0x001E)
|
|
1086
|
+
*
|
|
1087
|
+
* 3. the Network Commissioning Cluster (0x0031)
|
|
1088
|
+
*
|
|
1089
|
+
* 4. the Identify Cluster (0x0003)
|
|
1090
|
+
*
|
|
1091
|
+
* 5. the Groups Cluster (0x0004)
|
|
1092
|
+
*
|
|
1093
|
+
* In addition, use of this feature shall NOT restrict the global attributes of any cluster.
|
|
1094
|
+
*
|
|
1095
|
+
* Because ARLs cannot be used to restrict root node access or access to any clusters required for
|
|
1096
|
+
* commissioning, administrators may determine the current restrictions of the ARL at any point, including
|
|
1097
|
+
* during commissioning after joining the fabric.
|
|
1098
|
+
*
|
|
1099
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.4.2
|
|
1100
|
+
*/
|
|
1101
|
+
managedDevice: BitFlag(1)
|
|
1102
|
+
},
|
|
382
1103
|
|
|
383
1104
|
attributes: {
|
|
384
1105
|
/**
|
|
@@ -393,7 +1114,7 @@ export namespace AccessControl {
|
|
|
393
1114
|
* Control Privilege Granting algorithm to determine if a subject has privilege to interact with targets on
|
|
394
1115
|
* the Node.
|
|
395
1116
|
*
|
|
396
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
1117
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.3
|
|
397
1118
|
*/
|
|
398
1119
|
acl: WritableFabricScopedAttribute(
|
|
399
1120
|
0x0,
|
|
@@ -401,20 +1122,6 @@ export namespace AccessControl {
|
|
|
401
1122
|
{ default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
|
|
402
1123
|
),
|
|
403
1124
|
|
|
404
|
-
/**
|
|
405
|
-
* If present, the Access Control Extensions may be used by Administrators to store arbitrary data related
|
|
406
|
-
* to fabric’s Access Control Entries.
|
|
407
|
-
*
|
|
408
|
-
* The Access Control Extension list shall support a single extension entry per supported fabric.
|
|
409
|
-
*
|
|
410
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.5.4
|
|
411
|
-
*/
|
|
412
|
-
extension: OptionalWritableFabricScopedAttribute(
|
|
413
|
-
0x1,
|
|
414
|
-
TlvArray(TlvAccessControlExtension),
|
|
415
|
-
{ default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
|
|
416
|
-
),
|
|
417
|
-
|
|
418
1125
|
/**
|
|
419
1126
|
* This attribute shall provide the minimum number of Subjects per entry that are supported by this server.
|
|
420
1127
|
*
|
|
@@ -423,7 +1130,7 @@ export namespace AccessControl {
|
|
|
423
1130
|
* given implementation, it is recommended to only use the minimum value required and avoid reporting a
|
|
424
1131
|
* higher value than the required minimum.
|
|
425
1132
|
*
|
|
426
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
1133
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.5
|
|
427
1134
|
*/
|
|
428
1135
|
subjectsPerAccessControlEntry: FixedAttribute(0x2, TlvUInt16.bound({ min: 4 }), { default: 4 }),
|
|
429
1136
|
|
|
@@ -435,7 +1142,7 @@ export namespace AccessControl {
|
|
|
435
1142
|
* given implementation, it is recommended to only use the minimum value required and avoid reporting a
|
|
436
1143
|
* higher value than the required minimum.
|
|
437
1144
|
*
|
|
438
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
1145
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.6
|
|
439
1146
|
*/
|
|
440
1147
|
targetsPerAccessControlEntry: FixedAttribute(0x3, TlvUInt16.bound({ min: 3 }), { default: 3 }),
|
|
441
1148
|
|
|
@@ -448,15 +1155,15 @@ export namespace AccessControl {
|
|
|
448
1155
|
* given implementation, it is recommended to only use the minimum value required and avoid reporting a
|
|
449
1156
|
* higher value than the required minimum.
|
|
450
1157
|
*
|
|
451
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
1158
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.6.7
|
|
452
1159
|
*/
|
|
453
1160
|
accessControlEntriesPerFabric: FixedAttribute(0x4, TlvUInt16.bound({ min: 4 }), { default: 4 })
|
|
454
1161
|
},
|
|
455
1162
|
|
|
456
1163
|
events: {
|
|
457
1164
|
/**
|
|
458
|
-
* The cluster shall
|
|
459
|
-
* Administrator.
|
|
1165
|
+
* The cluster shall generate AccessControlEntryChanged events whenever its ACL attribute data is changed
|
|
1166
|
+
* by an Administrator.
|
|
460
1167
|
*
|
|
461
1168
|
* • Each added entry shall generate an event with ChangeType Added.
|
|
462
1169
|
*
|
|
@@ -464,36 +1171,31 @@ export namespace AccessControl {
|
|
|
464
1171
|
*
|
|
465
1172
|
* • Each removed entry shall generate an event with ChangeType Removed.
|
|
466
1173
|
*
|
|
467
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.
|
|
1174
|
+
* @see {@link MatterSpecification.v13.Core} § 9.10.9.1
|
|
468
1175
|
*/
|
|
469
1176
|
accessControlEntryChanged: Event(
|
|
470
1177
|
0x0,
|
|
471
1178
|
EventPriority.Info,
|
|
472
1179
|
TlvAccessControlEntryChangedEvent,
|
|
473
1180
|
{ readAcl: AccessLevel.Administer }
|
|
474
|
-
),
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* The cluster shall send AccessControlExtensionChanged events whenever its extension attribute data is
|
|
478
|
-
* changed by an Administrator.
|
|
479
|
-
*
|
|
480
|
-
* • Each added extension shall generate an event with ChangeType Added.
|
|
481
|
-
*
|
|
482
|
-
* • Each changed extension shall generate an event with ChangeType Changed.
|
|
483
|
-
*
|
|
484
|
-
* • Each removed extension shall generate an event with ChangeType Removed.
|
|
485
|
-
*
|
|
486
|
-
* @see {@link MatterSpecification.v13.Core} § 9.10.7.2
|
|
487
|
-
*/
|
|
488
|
-
accessControlExtensionChanged: Event(
|
|
489
|
-
0x1,
|
|
490
|
-
EventPriority.Info,
|
|
491
|
-
TlvAccessControlExtensionChangedEvent,
|
|
492
|
-
{ readAcl: AccessLevel.Administer }
|
|
493
1181
|
)
|
|
494
|
-
}
|
|
1182
|
+
},
|
|
1183
|
+
|
|
1184
|
+
/**
|
|
1185
|
+
* This metadata controls which AccessControlCluster elements matter.js activates for specific feature
|
|
1186
|
+
* combinations.
|
|
1187
|
+
*/
|
|
1188
|
+
extensions: MutableCluster.Extensions(
|
|
1189
|
+
{ flags: { extension: true }, component: ExtensionComponent },
|
|
1190
|
+
{ flags: { managedDevice: true }, component: ManagedDeviceComponent }
|
|
1191
|
+
)
|
|
495
1192
|
});
|
|
496
1193
|
|
|
1194
|
+
/**
|
|
1195
|
+
* @see {@link Cluster}
|
|
1196
|
+
*/
|
|
1197
|
+
export const ClusterInstance = MutableCluster(Base);
|
|
1198
|
+
|
|
497
1199
|
/**
|
|
498
1200
|
* The Access Control Cluster exposes a data model view of a Node’s Access Control List (ACL), which codifies the
|
|
499
1201
|
* rules used to manage and enforce Access Control for the Node’s endpoints and their associated cluster instances.
|
|
@@ -503,12 +1205,65 @@ export namespace AccessControl {
|
|
|
503
1205
|
* The Access Control Cluster shall be present on the root node endpoint of each Node, and shall NOT be present on
|
|
504
1206
|
* any other Endpoint of any Node.
|
|
505
1207
|
*
|
|
1208
|
+
* AccessControlCluster supports optional features that you can enable with the AccessControlCluster.with() factory
|
|
1209
|
+
* method.
|
|
1210
|
+
*
|
|
506
1211
|
* @see {@link MatterSpecification.v13.Core} § 9.10
|
|
507
1212
|
*/
|
|
508
1213
|
export interface Cluster extends Identity<typeof ClusterInstance> {}
|
|
509
1214
|
|
|
510
1215
|
export const Cluster: Cluster = ClusterInstance;
|
|
511
|
-
|
|
1216
|
+
const EXTS = { extension: true };
|
|
1217
|
+
const MNGD = { managedDevice: true };
|
|
1218
|
+
|
|
1219
|
+
/**
|
|
1220
|
+
* @see {@link Complete}
|
|
1221
|
+
*/
|
|
1222
|
+
export const CompleteInstance = MutableCluster({
|
|
1223
|
+
id: Cluster.id,
|
|
1224
|
+
name: Cluster.name,
|
|
1225
|
+
revision: Cluster.revision,
|
|
1226
|
+
features: Cluster.features,
|
|
1227
|
+
|
|
1228
|
+
attributes: {
|
|
1229
|
+
...Cluster.attributes,
|
|
1230
|
+
extension: MutableCluster.AsConditional(ExtensionComponent.attributes.extension, { mandatoryIf: [EXTS] }),
|
|
1231
|
+
commissioningArL: MutableCluster.AsConditional(
|
|
1232
|
+
ManagedDeviceComponent.attributes.commissioningArL,
|
|
1233
|
+
{ mandatoryIf: [MNGD] }
|
|
1234
|
+
),
|
|
1235
|
+
arl: MutableCluster.AsConditional(ManagedDeviceComponent.attributes.arl, { mandatoryIf: [MNGD] })
|
|
1236
|
+
},
|
|
1237
|
+
|
|
1238
|
+
commands: {
|
|
1239
|
+
reviewFabricRestrictions: MutableCluster.AsConditional(
|
|
1240
|
+
ManagedDeviceComponent.commands.reviewFabricRestrictions,
|
|
1241
|
+
{ mandatoryIf: [MNGD] }
|
|
1242
|
+
)
|
|
1243
|
+
},
|
|
1244
|
+
|
|
1245
|
+
events: {
|
|
1246
|
+
...Cluster.events,
|
|
1247
|
+
accessControlExtensionChanged: MutableCluster.AsConditional(
|
|
1248
|
+
ExtensionComponent.events.accessControlExtensionChanged,
|
|
1249
|
+
{ mandatoryIf: [EXTS] }
|
|
1250
|
+
),
|
|
1251
|
+
fabricRestrictionReviewUpdate: MutableCluster.AsConditional(
|
|
1252
|
+
ManagedDeviceComponent.events.fabricRestrictionReviewUpdate,
|
|
1253
|
+
{ mandatoryIf: [MNGD] }
|
|
1254
|
+
)
|
|
1255
|
+
}
|
|
1256
|
+
});
|
|
1257
|
+
|
|
1258
|
+
/**
|
|
1259
|
+
* This cluster supports all AccessControl features. It may support illegal feature combinations.
|
|
1260
|
+
*
|
|
1261
|
+
* If you use this cluster you must manually specify which features are active and ensure the set of active
|
|
1262
|
+
* features is legal per the Matter specification.
|
|
1263
|
+
*/
|
|
1264
|
+
export interface Complete extends Identity<typeof CompleteInstance> {}
|
|
1265
|
+
|
|
1266
|
+
export const Complete: Complete = CompleteInstance;
|
|
512
1267
|
}
|
|
513
1268
|
|
|
514
1269
|
export type AccessControlCluster = AccessControl.Cluster;
|